git @ Cat's Eye Technologies Funicular / d7267f8
Merge pull request #5 from catseye/develop-0.5 Develop 0.5 Chris Pressey authored 4 years ago GitHub committed 4 years ago
20 changed file(s) with 450 addition(s) and 72 deletion(s). Raw diff Collapse all Expand all
00 Funicular
11 =========
22
3 *Version 0.4. Subject to change in backwards-incompatible ways.*
3 *Version 0.5. Work-in-progress. Subject to change in backwards-incompatible ways.*
44
5 **Funicular** is a system that semi-automates the creation of development
5 **Funicular** is a system that semi-automates the creation of computing
66 environments on eclectic architectures.
77
88 "Semi-automate" means it automates what it can, and provides repeatable
99 instructions for you to follow for what it can't.
1010
11 "Development environment" means an environment in which you can build
12 (and perhaps even write) software. Thus it is typically populated with
13 programming language interpreters and compilers, debuggers, text editors,
14 and the like.
11 "Computing environment" could mean a "development environment", i.e.
12 a system in which you can build (and perhaps even write) software,
13 populated with interpreters and compilers, debuggers, text editors,
14 and the like. Or it could mean any other environment that could be
15 set up on a computer system.
1516
1617 "Eclectic architectures" is not terribly-well defined, but it includes
1718 retrocomputing and esoteric architectures. Basically, if you've got an
1819 emulator for it, and installation images for it, you might be able to
1920 install and outfit and run a system for it, using Funicular.
2021
21 It's kind of like a Vagrant for the lunatic fringe, eh?
22
23 It is currently a work in progress. The current released version of
24 Funicular is **version 0.4**, but this means next to nothing.
22 TL;DR it's kind of like a Vagrant, but instead of provisioning VMs, it
23 provisions emulators.
2524
2625 It currently supports:
2726
2827 * i386 running NetBSD under QEMU
2928 * i386 running FreeDOS under QEMU
29 * Amiga 500 (etc) running AmigaDOS under E-UAE
3030 * Commodore 64 with a 1541 floppy drive under VICE
3131 * VIC-20 with a 1541 floppy drive under VICE
32
33 And partially supports:
34
3532 * Apple //e running AppleDOS under Linapple
3633
37 Funicular unifies and replaces the discrete, ad-hoc projects NetBSD-Gondola,
38 FreeDOS-Gondola, and Amiga-Gondola.
34 Funicular unifies and replaces the older, discrete, ad-hoc projects
35 NetBSD-Gondola, FreeDOS-Gondola, and Amiga-Gondola, which are now deprecated.
3936
4037 Quick Start
4138 -----------
4643 * Run `funicular install`.
4744 * Run `funicular init setup`.
4845 * Run `funicular setup`.
49 * ...
46 * You now have a configured Funicular. Run `funicular start` to use it.
5047
5148 Documentation
5249 -------------
0 #
1 # Needs `lha`: on Linux, you can install `lhasa`, e.g. `sudo apt install lhasa`
2 #
3
4 PLATFORM="a500-e-uae"
5 INSTALL_IMAGE='Workbench_1.3.adf'
6 SETUP_IMAGE='setup.adf'
7 SYSTEM_IMAGE='dh0'
8 DIST_IMAGE='df0.adf'
9
10 DISTFILES="
11 http://aminet.net/dev/asm/A68kGibbs.lha
12 http://aminet.net/dev/asm/FixFd.lha
13 http://aminet.net/dev/c/dice-3.15.lha
14 http://aminet.net/dev/c/vbcc_target_m68k-amiga.lha
15 http://aminet.net/dev/lang/Draco.lha
16 http://aminet.net/dev/lang/pcq12b.lzh
17 http://aminet.net/dev/misc/blink67.lzh
18 http://aminet.net/dev/src/ArpRequest.lha
19 http://aminet.net/text/font/FastFonts.lha
20 http://aminet.net/util/batch/Xicon.lha
21 http://aminet.net/util/boot/CLImax.lha
22 http://aminet.net/util/shell/Conman.lha
23 http://www.nic.funet.fi/pub/amiga/fish/001-100/ff048/du.lha
24 http://www.nic.funet.fi/pub/amiga/fish/001-100/ff069/IconType.lha
25 http://www.nic.funet.fi/pub/amiga/fish/001-100/ff092/SmallLib.lha
26 http://www.nic.funet.fi/pub/amiga/fish/101-200/ff113/NoIconPos.lha
27 http://www.nic.funet.fi/pub/amiga/fish/201-300/ff224/Who.lha
28 http://www.nic.funet.fi/pub/amiga/fish/901-1000/ff935/MuchMore.lha
29 "
30
31 if [ "x$DISTREPO_ROOT" = "x" ]; then
32 DISTREPO_ROOT="https://github.com/"
33 fi
34 DISTREPOS="
35 catseye/Befunge-93
36 catseye/Maentwrog
37 catseye/minischeme
38 catseye/Pixley
39 catseye/RUBE
40 catseye/Sally
41 catseye/stringie
42 "
43
44 setup_script() {
45 if [ ! -e kick.rom ]; then
46 echo "Need kick.rom"
47 return 1
48 fi
49
50 if [ ! -e "$INSTALL_IMAGE" ]; then
51 echo "Need $INSTALL_IMAGE"
52 return 1
53 fi
54
55 cp -Rp skel/* dh0/
56
57 #======== Extract the simple and cromulent archives ========#
58
59 ARCHIVES="
60 FastFonts
61 Conman CLImax
62 MuchMore Who du
63 Xicon NoIconPos IconType
64 SmallLib FixFd
65 ArpRequest
66 "
67 for ARCHIVE in $ARCHIVES; do
68 lha xfw=dh0/Distributions distfiles/${ARCHIVE}.lha
69 done
70
71 #======== Now the stronger stuff ========#
72
73 ### DICE 3.15 ###
74 lha xfw=dh0/Distributions distfiles/dice-3.15.lha
75 chmod 755 dh0/Distributions/dice-rel-3.15/abin/*
76 # for lack of a better place to put this
77 cp dh0/Distributions/SmallLib/small.lib dh0/Distributions/dice-rel-3.15/dlib/
78
79 ### vbcc_target_m68k-amiga.lha (...just for amigas.lib...) ###
80 lha xfw=dh0/Distributions distfiles/vbcc_target_m68k-amiga.lha
81 cp dh0/Distributions/vbcc_target_m68k-amigaos/targets/m68k-amigaos/lib/amigas.lib dh0/Distributions/dice-rel-3.15/dlib/
82 # can't stand the ugly...
83 rm dh0/Distributions/vbcc_target_m68k-amigaos.info
84 rm -rf dh0/Distributions/m68k-amigaos/vbcc_target_m68k-amigaos
85 mv dh0/Distributions/vbcc_target_m68k-amigaos dh0/Distributions/m68k-amigaos
86
87 ### A68k ###
88 lha xfw=dh0/Distributions/A68k distfiles/A68kGibbs.lha
89
90 ### Blink ###
91 lha xfw=dh0/Distributions/Blink distfiles/blink67.lzh
92
93 ### PCQ 1.2b ###
94 lha xfw=dh0/Distributions/PCQ-1.2b distfiles/pcq12b.lzh
95
96 ### Draco ###
97 lha xfw=dh0/Distributions distfiles/Draco.lha
98 chmod 755 dh0/Distributions/Draco/c/*
99
100 #======== Now the distrepos ========#
101
102 rm -rf dh0/Shelf
103 mkdir dh0/Shelf
104 cp -Rp distrepos/* dh0/Shelf/
105
106 #======== Drawer icons for Distributions and Shelf ========#
107
108 for DIR in dh0/Distributions/* dh0/Shelf/*; do
109 if [ -d $DIR ]; then
110 cp -p skel/icons/Drawer.info ${DIR}.info
111 fi
112 done
113 cp -p skel/icons/Drawer.info dh0/Distributions.info
114 cp -p skel/icons/Drawer.info dh0/Shelf.info
115
116 #======== Now populate some system directories ========#
117
118 ### C: ###
119
120 cp dh0/Distributions/Xicon/Xicon dh0/c/
121 cp dh0/Distributions/MuchMore/MuchMore dh0/c/ # version 3.6
122 cp dh0/Distributions/MuchMore/MuchMore dh0/c/Less
123 cp dh0/Distributions/MuchMore/MuchMore dh0/c/More # TODO: use Replex?
124 cp dh0/Distributions/NoIconPos/noIconPos dh0/c/
125 cp dh0/Distributions/A68k/A68k dh0/c/
126 cp dh0/Distributions/Blink/Blink dh0/c/
127 cp dh0/Distributions/PCQ-1.2b/Pascal dh0/c/
128 cp dh0/Distributions/PCQ-1.2b/Peep dh0/c/
129 cp dh0/Distributions/Conman/ConMan dh0/c/
130 cp dh0/Distributions/Conman/SetCMan dh0/c/
131 cp dh0/Distributions/Conman/History dh0/c/
132 cp dh0/Distributions/CLImax/CLImax dh0/c/
133 cp dh0/Distributions/FixFd/FixFD dh0/c/
134 cp dh0/Distributions/FastFonts/FastFonts dh0/c/
135 cp dh0/Distributions/Who/Who dh0/c/
136 cp dh0/Distributions/Du/du dh0/c/
137
138 chmod 755 dh0/c/*
139
140 ### L: ###
141 cp dh0/Distributions/Conman/ConHandler dh0/l/
142
143 ### S: ###
144 # just some tweaks to PCQ-1.2b's Make scripts
145 cat >dh0/s/PCQMake <<EOF
146 .key source
147 pascal <source>.p t:<source>.asm
148 a68k t:<source>.asm t:<source>.o
149 delete t:<source>.asm
150 blink t:<source>.o to <source> library PCQ:PCQ.lib
151 delete t:<source>.o
152 EOF
153
154 cat >dh0/s/PCQOMake <<EOF
155 .key source
156 Pascal <source>.p t:<source>.asm
157 Peep t:<source>.asm t:<source>.s
158 delete t:<source>.asm
159 a68k t:<source>.s t:<source>.o
160 delete t:<source>.s
161 blink t:<source>.o to <source> library PCQ:PCQ.lib
162 delete t:<source>.o
163 EOF
164
165 ### LIBS: ###
166 cp dh0/Distributions/Conman/conhandler.library dh0/libs/
167 cp dh0/Distributions/ArpRequest/arp.library dh0/libs/ # ver 39.1
168 }
169
170 setup_instructions() {
171 cat <<EOF
172 ------------------------------------------------------
173 [*] Wait for the Workbench to appear.
174 [*] Double-click the "Funicular" disk icon.
175 You may need to move CLI windows out of the way
176 first, to uncover it.
177 [*] Double-click the "Workbenchize" icon that appears.
178 [*] Wait until it asks you to reboot, then close
179 the window and shut down the emulator.
180 ------------------------------------------------------
181 EOF
182 }
183
184 dist_instructions() {
185 cat <<EOF
186 * Format DF0: by typing:
187 format drive df0 name Burgundy
188 (or pick whatever name you want instead of Burgundy.)
189 * Copy whatever you like onto DF0:
190 * If you want to make the disk bootable, type:
191 install df0:
192 EOF
193 }
0 .k ""
1 echo "** Workbenchizing your Funicular virtual disk!"
2
3 echo "(1/12) Copying C:..."
4 copy C: to Funicular:c all quiet
5
6 echo "(2/12) Copying S:..."
7 copy S: to Funicular:s all quiet
8
9 echo "(3/12) Copying L:..."
10 copy L: to Funicular:l all quiet
11
12 echo "(4/12) Copying DEVS:..."
13 copy DEVS: to Funicular:devs all quiet
14
15 echo "(5/12) Copying LIBS:..."
16 copy LIBS: to Funicular:libs all quiet
17
18 echo "(6/12) Copying FONTS:..."
19 copy FONTS: to Funicular:fonts all quiet
20
21 echo "(7/12) Copying Utilities..."
22 copy SYS:Utilities to Funicular:Utilities all quiet
23 copy SYS:Utilities.info to Funicular:Utilities.info quiet
24
25 echo "(8/12) Copying System..."
26 copy SYS:System to Funicular:System all quiet
27 copy SYS:System.info to Funicular:System.info quiet
28
29 echo "(9/12) Copying Expansion..."
30 copy SYS:Expansion to Funicular:Expansion all quiet
31 copy SYS:Expansion.info to Funicular:Expansion.info quiet
32
33 echo "(10/12) Copying Trashcan..."
34 copy SYS:Trashcan to Funicular:Trashcan all quiet
35 copy SYS:Trashcan.info to Funicular:Trashcan.info quiet
36
37 echo "(11/12) Copying Shell..."
38 copy SYS:Shell to Funicular:Shell all quiet
39 copy SYS:Shell.info to Funicular:Shell.info quiet
40
41 echo "(12/12) Copying Prefs..."
42 copy SYS:Prefs to Funicular:Prefs all quiet
43 copy SYS:Prefs.info to Funicular:Prefs.info quiet
44
45 echo "Replacing startup-sequence..."
46 copy Funicular:s/Startup-Sequence Funicular:s/Startup-Sequence.backup
47 copy Funicular:s/Startup-Sequence.Funicular Funicular:s/Startup-Sequence
48
49 ;echo "Making your icons float..."
50 ;protect Funicular:c/NoIconPos rwed
51 ;Funicular:c/NoIconPos Funicular:AmigaBasic
52 ;Funicular:c/NoIconPos Funicular:Trashcan
53 ;Funicular:c/NoIconPos Funicular:Extras/BasicDemos
54 ;Funicular:c/NoIconPos Funicular:Extras/Tools
55 ;Funicular:c/NoIconPos Funicular:Extras/FD1.3
56
57 echo "Done. You should now:"
58 echo "** EJECT the Workbench and Extras disks, and"
59 echo "** REBOOT your Amiga and see that it boots from Funicular"
(New empty file)
(New empty file)
0 Funicular:c/SetPatch >NIL:
1
2 assign SYS: Funicular:
3 assign C: SYS:c
4 assign S: SYS:s
5 assign L: SYS:l
6 assign FONTS: SYS:fonts
7 assign DEVS: SYS:devs
8 assign LIBS: SYS:libs
9
10 assign Extras: Funicular: ; to let (some) AmigaBasic sources' icons work
11
12 Addbuffers df0: 10
13 cd c:
14 echo "A500/A2000 Workbench disk -- now booting Funicular..."
15 ;
16 Sys:System/FastMemFirst
17 BindDrivers
18 SetClock load
19 ;
20 resident CLI L:Shell-Seg SYSTEM pure add
21 resident c:Execute pure
22 mount newcon:
23 ;
24 failat 11
25 run execute s:StartupII
26 wait >NIL: 5 mins
27 ;
28 path ram: c: sys:utilities sys:system s: sys:prefs add
29 ;
30 ; == DICE == ;
31 ;
32 assign DCC: Funicular:Distributions/dice-rel-3.15
33 assign DLIB: DCC:dlib
34 assign DINCLUDE: DCC:include
35 path DCC:abin/ add
36 ;assign LIBS: DCC:libs add
37 ;
38 ; == PCQ == ;
39 ;
40 assign PCQ: Funicular:Distributions/PCQ-1.2b
41 assign INCLUDE: PCQ:Include
42 ;
43 ; == Draco == ;
44 ;
45 assign DRACO: Funicular:Distributions/Draco
46 assign DRLIB: DRACO:drlib
47 assign DRINC: DRACO:drinc
48 path DRACO:c/ add
49 path DRACO:s/ add
50 ;
51 run execute s:StartupII.Funicular
52 wait >NIL: 5 mins
53 ;
54 fastfonts topaz.8
55 cd Funicular:
56 conman -c
57 climax
58 ;
59 LoadWB delay
60 endcli >NIL:
0 echo "Ensuring your scripts are scripts..."
1 protect S:SPAT srwd
2 spat protect s:#? srwd
3 spat protect DRACO:s/#? srwd
4
5 echo "Removing Workbenchize icon..."
6 delete Funicular:Workbenchize.info quiet
7 echo "Done."
8
9 break 1 C
0 # NOTE: this requires toolshelf and assumes gh:catseye/a2tools has been docked
0 # TODO: let a Funicularfile say simply REQUIRED_TOOLS="linapple a2tools"
1
2 for tool in linapple a2tools; do
3 toolpath=`which $tool`
4 if [ "X$toolpath" = "X" ]; then
5 echo "You will need $tool on your search path to use this Funicular."
6 exit 1
7 fi
8 done
19
210 PLATFORM=apple2plus-linapple
3 INSTALL_IMAGE='blank.dsk'
11 INSTALL_IMAGE='Master.dsk' # This can be retrieved from the linapple repository
412 SETUP_IMAGE='setup.dsk'
513 SYSTEM_IMAGE='system.dsk'
614 DIST_IMAGE='dist.dsk'
1321 "
1422
1523 setup_script() {
16 export CWD=`pwd`
24 for a2file in MYHELLO KEYS KEYS1 AA; do
25 a2rm "${SYSTEM_IMAGE}" $a2file
26 done
27 for a2file in APPLE\ BEFUNGE\ EDITOR ; do
28 a2out -r distrepos/apple-befunge/disk/befunge.dsk "${a2file}"|a2in -r a "${SYSTEM_IMAGE}" "${a2file}"
29 done
30 for a2file in HELLO.BF HEX.BF HWII.BF MAZE.BF ; do
31 a2out -r distrepos/apple-befunge/disk/befunge.dsk "${a2file}"|a2in -r t "${SYSTEM_IMAGE}" "${a2file}"
32 done
1733
18 cat >linapple.conf <<EOF
19 Computer Emulation = 1
20 Slot 6 Directory = $CWD
21 Disk Image 1 = $CWD/system.dsk
22 Slot 6 Autoload = 1
23 EOF
24
25 # this is less than fantastic, but not sure how else to make sure this works
26 LINAPPLE_DIR=`toolshelf.py pwd linapple`
27 cp $LINAPPLE_DIR/splash.bmp .
28 cp $LINAPPLE_DIR/charset40.bmp .
29 # this is even less fantastic because no just no
30 # instead, we should be using a2tools to put our things on a bootable disk image
31 cp $LINAPPLE_DIR/Master.dsk system.dsk
34 a2ls "${SYSTEM_IMAGE}"
3235 }
00 PLATFORM="i386-qemu"
11 INSTALL_IMAGE='fd11src.iso'
22 INSTALL_IMAGE_URL='http://www.freedos.org/download/download/fd11src.iso'
3 SETUP_IMAGE='freedos-init-cd.iso'
3 SETUP_IMAGE='setup.iso'
44 SYSTEM_IMAGE='hda.img'
55 DIST_IMAGE='a.img'
66
99 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/djdev205.zip
1010 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/faq230b.zip
1111 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/readme.1st
12 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/bnu226br3.zip
13 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gcc610b.zip
12 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/bnu230b.zip
13 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gcc810b.zip
14 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gpp810b.zip
1415 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/mak421b.zip
1516 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2misc/csdpmi7b.zip
1617 http://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/perl588b.zip
2324 https://raw.githubusercontent.com/yasm/yasm/v1.2.0/BSD.txt
2425
2526 http://www.lua.org/ftp/lua-5.2.2.tar.gz
26 http://waterlan.home.xs4all.nl/dos2unix/d2u71b.zip
27 https://sourceforge.net/projects/dos2unix/files/dos2unix/7.4.0/d2u740pm.zip
2728
2829 http://catseye.tc/distfiles/shelta-1.2-2014.0422.zip
2930 https://github.com/catseye/Illgol-Grand-Mal/archive/rel_16_tons_and_what_do_you_get.zip
4243 ZIP_UNVERSIONED=True
4344
4445
45 #name_map = {
46 # ["yasm-1.2.0-dos.exe"] = 'yasm120.exe',
47 # ["BSD.txt"] = 'yasmlcns.txt',
48 # ["lua-5.2.2.tar.gz"] = 'lua522.tgz',
49 # ["shelta-1.2-2014.0422.zip"] = 'shelta12.zip',
50 # ["rel_16_tons_and_what_do_you_get.zip"] = 'illgolgm.zip',
51 # ["gpl-2.0.txt"] = 'gpl20.txt',
52 # ["befunge-93"] = 'befung93',
53 # ["maentwrog"] = 'maentwrg',
54 #},
46 name_map() {
47 if [ "X$1" = "Xyasm-1.2.0-dos.exe" ]; then
48 echo "yasm120.exe"
49 elif [ "X$1" = "XBSD.txt" ]; then
50 echo "yasmlcns.txt"
51 elif [ "X$1" = "Xlua-5.2.2.tar.gz" ]; then
52 echo "lua522.tgz"
53 elif [ "X$1" = "Xshelta-1.2-2014.0422.zip" ]; then
54 echo "shelta12.zip"
55 elif [ "X$1" = "Xrel_16_tons_and_what_do_you_get.zip" ]; then
56 echo "illgolgm.zip"
57 elif [ "X$1" = "Xgpl-2.0.txt" ]; then
58 echo "gpl20.txt"
59 elif [ "X$1" = "XBefunge-93" ]; then
60 echo "befung93"
61 elif [ "X$1" = "XMaentwrog" ]; then
62 echo "maentwrg"
63 else
64 echo $1
65 fi
66 }
5567
5668
5769 install_instructions() {
8092 * down-arrow to DONE
8193 * proceed with installation -- yes
8294 * Press any key to continue -- ...watch flickering...
83 * What to do with the bootloader? -- 1
95 * What to do with the bootsector? -- 1
8496 * select "Boot from system harddisk"
8597 * Hit Enter for the JEMMEX option, should be fine
86 * viola, `C:\>`. You can now just stop the emulator.
98 * viola, C:\\>. You can now just stop the emulator.
8799 EOF
88100 }
89101
90102 setup_instructions() {
91103 cat <<EOF
92104 * Hit Enter for the JEMMEX option, should be fine
93 * When booted, run `D:\INSTDJGP`
94 * When it asks `replace lib/Perl5/Pod/perlmaco.pod?`, type `A`, Enter.
105 * When booted, run "D:\INSTDJGP"
106 * When it asks "replace lib/Perl5/Pod/perlmaco.pod?", type "A", Enter.
95107 * THEN HIT ENTER AGAIN. It's waiting silently for you.
96108 * When finished, you may want to exit the emulator, run
97 `funicular backup hda-djgpp`, and start it again.
98 * run `D:\INSTPLAT`. This will install some tools into `C:\TOOLS`.
109 "funicular backup hda-djgpp", and start it again.
110 * run "D:\\INSTPLAT". This will install some tools into "C:\\TOOLS".
99111 EOF
112 }
113
114 setup_script() {
115 #
116 # This is an alternative to having some kind of "archive distrepos with what archiver?"
117 # option that Funicular should arguably support instead.
118 #
119 cd distrepos
120 for repo in *; do
121 echo zip -r ../staging_area/$repo.zip $repo
122 zip -r ../staging_area/$repo.zip $repo
123 rm -f ../staging_area/$repo.tar.gz
124 done
125 cd ..
126 if [ -d skel ]; then
127 cp -Rp skel/* staging_area/
128 fi
100129 }
101130
102131 dist_instructions() {
103132 cat <<EOF
104 * To initialize the distribution floppy, run `INITFLOP`.
105 * Enter `360`, `720`, or `1440` as appropriate.
133 * To initialize the distribution floppy, run "INITFLOP".
134 * Enter "360", "720", or "1440" as appropriate.
106135 * As explained in the script, it may take more than one attempt to format
107136 the image correctly, if it has never been used before.
108137 * The result will be a generic, bootable FreeDOS floppy. You may
109 wish to make a backup copy of `a.img` to not need this step in future.
110 * To populate the floppy with a few basic things, run `POPUFLOP`.
138 wish to make a backup copy of "a.img" to not need this step in future.
139 * To populate the floppy with a few basic things, run "POPUFLOP".
111140
112141 You now have a bootable floppy image with a few basic tools on it.
113142
114 * To populate the floppy with a project distribution, run the `MAKEDIST.BAT`
115 batchfile in the appropriate `SKEL` subdirectory. For example, to make a
116 Shelta distribution, run `SKEL\SHELTA\MAKEDIST`.
143 * To populate the floppy with a project distribution, run the "MAKEDIST.BAT"
144 batchfile in the appropriate "SKEL" subdirectory. For example, to make a
145 Shelta distribution, run "SKEL\\SHELTA\\MAKEDIST".
117146 EOF
118147 }
33 CD DJGPP
44 UNZIP D:\djdev205.zip
55 UNZIP D:\faq230b.zip
6 UNZIP D:\bnu226br3.zip
7 UNZIP D:\gcc610b.zip
6 UNZIP D:\bnu230b.zip
7 UNZIP D:\gcc810b.zip
8 UNZIP D:\gpp810b.zip
89 UNZIP D:\mak421b.zip
910 UNZIP D:\csdpmi7b.zip
1011 UNZIP D:\perl588b.zip
1212
1313 MKDIR C:\TOOLS\DOS2UNIX
1414 CD C:\TOOLS\DOS2UNIX
15 UNZIP D:\d2u71b.zip
15 UNZIP D:\d2u740pm.zip
1616 COPY C:\TOOLS\DOS2UNIX\BIN\*.EXE C:\TOOLS\
1717
1818 C:\TOOLS\UNIX2DOS C:\TOOLS\YASMLCNS.TXT
7070 C:\TOOLS\UNIX2DOS COPING
7171
7272 :AlreadyILLGOL
73
74 ECHO ------ BEFUNGE ------
75
76 CD C:\PROJECTS
77 UNZIP D:\BEFUNG93.ZIP
78
79 ECHO ------ MAENTWROG ------
80
81 CD C:\PROJECTS
82 UNZIP D:\MAENTWRG.ZIP
83
7384 CD C:\
7485 IF EXIST C:\AUTOEXEC.OLD GOTO AlreadyAutoexec
7586 COPY AUTOEXEC.BAT AUTOEXEC.OLD
2020 }
2121
2222 platform_setup() {
23 uae ${OPTS} -s "filesystem2=rw,DH0:Funicular:${SYSTEM_IMAGE},1" -s "floppy0=${SETUP_IMAGE}"
23 uae ${OPTS} -s "floppy0=${INSTALL_IMAGE}" -s "filesystem2=rw,DH0:Funicular:${SYSTEM_IMAGE},1"
2424 }
2525
2626 platform_dist() {
3232 }
3333
3434 platform_install() {
35 uae ${OPTS} -s "floppy0=${INSTALL_IMAGE}" -s "filesystem2=rw,DH0:HDD:Funicular:${SYSTEM_IMAGE},1"
35 echo "No install step. Installation will happen during setup."
3636 }
00 # Apple ][+ w/ Linapple w/ certain options
11
2 DISTFILE_URL='https://github.com/timob/linapple/archive/master.zip'
2 DISTFILE_URL='https://github.com/catseye/linapple/archive/master.zip'
33
44 # floppies only, for now
55 platform_initsys() {
1515 }
1616
1717 platform_start() {
18 linapple
18 linapple -d1 "${SYSTEM_IMAGE}" -autoboot
1919 }
2020
2121 platform_setup() {
22 linapple
22 echo "Not starting emulator. No setup image required."
23 #linapple -d1 "${SYSTEM_IMAGE}" -autoboot
2324 }
2425
2526 platform_dist() {
26 linapple
27 echo "Not starting emulator. No in-architecture dist steps required."
2728 }
2829
2930 platform_distboot() {
30 linapple
31 linapple -d1 "${DIST_IMAGE}" -autoboot
3132 }
3233
3334 platform_install() {
34 echo "No install step. Installation will happen during setup."
35 cp "${INSTALL_IMAGE}" "${SYSTEM_IMAGE}"
3536 }
8383
8484 url="$DISTREPO_ROOT$path"
8585 dest=`basename $url`
86 if runnable name_map; then
87 dest=`name_map $dest`
88 fi
8689
8790 if [ ! -d distrepos/$dest ]; then
8891 git clone $url distrepos/$dest
101104 rm -rf staging_area
102105 mkdir -p staging_area
103106
104 cp -p distfiles/* staging_area/
107 for file in distfiles/*; do
108 destname=`basename $file`
109 if runnable name_map; then
110 destname=`name_map $destname`
111 fi
112 cp -p $file staging_area/$destname
113 done
105114
106115 cd distrepos
107116 for repo in *; do