├── .gitattributes ├── .gitignore ├── 1-source-files ├── README.md ├── fonts │ ├── A.FLOWY.bin │ └── README.md ├── images │ ├── 4am-crack │ │ ├── A.SCREEN1.bin │ │ └── A.SCREEN2.bin │ ├── README.md │ ├── ib-disk │ │ └── A.SCREEN.bin │ ├── source-disk-build │ │ └── A.SCREEN.bin │ ├── source-disk-code-files │ │ └── A.SCREEN.bin │ └── source-disk-elt-files │ │ └── A.SCREEN.bin ├── main-sources │ ├── README.md │ ├── elite-bcfs.asm │ ├── elite-build-options.asm │ ├── elite-checksum.asm │ ├── elite-data.asm │ ├── elite-loader.asm │ ├── elite-mover.asm │ ├── elite-readme.asm │ ├── elite-source.asm │ └── elite-transfer.asm ├── original-sources │ ├── !BOOTER.txt │ ├── $.RAMCTST.txt │ ├── $.SCRNOP2.txt │ ├── $.SLIDE.txt │ ├── A.APLINE.txt │ ├── A.APLINE2.txt │ ├── A.APTES.txt │ ├── A.ELITEA.TXT │ ├── A.ELITEB.TXT │ ├── A.ELITEC.TXT │ ├── A.ELITED.TXT │ ├── A.ELITEE.TXT │ ├── A.ELITEF.TXT │ ├── A.ELITEG.TXT │ ├── A.ELITEH.TXT │ ├── A.ELITEI.TXT │ ├── A.ELITEJ.TXT │ ├── A.ELITEK.TXT │ ├── A.RECIEVE.txt │ ├── A.SLIDE.txt │ ├── A.TESTER.txt │ ├── A6010080 Apple II sources [DSD disc image].zip │ ├── README.md │ ├── S.APMAKES.txt │ ├── S.ASHIPS.txt │ ├── S.CODES.txt │ ├── S.DATAS.txt │ ├── S.FONTS.txt │ ├── S.GENWORD.txt │ ├── S.IANTOKS.txt │ ├── S.SCREEN.txt │ ├── S.SCREEN2 (drive 0).txt │ └── S.SCREEN2.txt └── other-files │ ├── 4am-crack │ ├── blank.dsk │ └── elite#0x0801.bas │ ├── README.md │ ├── ib-disk │ ├── blank.dsk │ └── hello#0x0801.bas │ ├── source-disk-build │ ├── blank.dsk │ └── hello#0x0801.bas │ ├── source-disk-code-files │ ├── blank.dsk │ └── hello#0x0801.bas │ └── source-disk-elt-files │ ├── blank.dsk │ └── hello#0x0801.bas ├── 2-build-files ├── README.md ├── crc32.py ├── elite-checksum.py ├── elite-decrypt.py ├── libiconv2.dll ├── libintl3.dll └── make.exe ├── 3-assembled-output ├── CODE.unprot.bin ├── CODE1.bin ├── CODE1.unprot.bin ├── CODE2.bin ├── CODE2.unprot.bin ├── DATA.bin ├── DATA.unprot.bin ├── ELA.bin ├── ELB.bin ├── ELTA.bin ├── ELTB.bin ├── ELTC.bin ├── ELTD.bin ├── ELTE.bin ├── ELTF.bin ├── ELTG.bin ├── ELTH.bin ├── ELTI.bin ├── ELTJ.bin ├── ELTK.bin ├── IANTOK.bin ├── MOVER.bin ├── README.md ├── README.txt ├── SEC3.bin ├── SHIPS.bin ├── WORDS.bin └── compile.txt ├── 4-reference-binaries ├── 4am-crack │ ├── CODE.unprot.bin │ ├── CODE1.bin │ ├── CODE1.unprot.bin │ ├── CODE2.bin │ ├── CODE2.unprot.bin │ ├── DATA.bin │ ├── DATA.unprot.bin │ ├── ELA.bin │ ├── ELB.bin │ ├── ELTA.bin │ ├── ELTB.bin │ ├── ELTC.bin │ ├── ELTD.bin │ ├── ELTE.bin │ ├── ELTF.bin │ ├── ELTG.bin │ ├── ELTH.bin │ ├── ELTI.bin │ ├── ELTJ.bin │ ├── ELTK.bin │ ├── IANTOK.bin │ ├── SEC3.bin │ ├── SHIPS.bin │ └── WORDS.bin ├── README.md ├── ib-disk │ ├── CODE.unprot.bin │ ├── CODE1.bin │ ├── CODE1.unprot.bin │ ├── CODE2.bin │ ├── CODE2.unprot.bin │ ├── DATA.bin │ ├── DATA.unprot.bin │ ├── ELA.bin │ ├── ELB.bin │ ├── ELTA.bin │ ├── ELTB.bin │ ├── ELTC.bin │ ├── ELTD.bin │ ├── ELTE.bin │ ├── ELTF.bin │ ├── ELTG.bin │ ├── ELTH.bin │ ├── ELTI.bin │ ├── ELTJ.bin │ ├── ELTK.bin │ ├── IANTOK.bin │ ├── MOVER.bin │ ├── SHIPS.bin │ └── WORDS.bin ├── source-disk-build │ ├── CODE.unprot.bin │ ├── CODE1.bin │ ├── CODE1.unprot.bin │ ├── CODE2.bin │ ├── CODE2.unprot.bin │ ├── DATA.bin │ ├── DATA.unprot.bin │ ├── ELA.bin │ ├── ELB.bin │ ├── ELTA.bin │ ├── ELTB.bin │ ├── ELTC.bin │ ├── ELTD.bin │ ├── ELTE.bin │ ├── ELTF.bin │ ├── ELTG.bin │ ├── ELTH.bin │ ├── ELTI.bin │ ├── ELTJ.bin │ ├── ELTK.bin │ ├── IANTOK.bin │ ├── SHIPS.bin │ └── WORDS.bin ├── source-disk-code-files │ ├── CODE.unprot.bin │ ├── CODE1.bin │ ├── CODE1.unprot.bin │ ├── CODE2.bin │ ├── CODE2.unprot.bin │ ├── DATA.bin │ ├── DATA.unprot.bin │ ├── ELA.bin │ ├── ELB.bin │ ├── ELTA.bin │ ├── ELTB.bin │ ├── ELTC.bin │ ├── ELTD.bin │ ├── ELTE.bin │ ├── ELTF.bin │ ├── ELTG.bin │ ├── ELTH.bin │ ├── ELTI.bin │ ├── ELTJ.bin │ ├── ELTK.bin │ ├── IANTOK.bin │ ├── SHIPS.bin │ └── WORDS.bin └── source-disk-elt-files │ ├── CODE.unprot.bin │ ├── CODE1.bin │ ├── CODE1.unprot.bin │ ├── CODE2.bin │ ├── CODE2.unprot.bin │ ├── DATA.bin │ ├── DATA.unprot.bin │ ├── ELA.bin │ ├── ELB.bin │ ├── ELTA.bin │ ├── ELTB.bin │ ├── ELTC.bin │ ├── ELTD.bin │ ├── ELTE.bin │ ├── ELTF.bin │ ├── ELTG.bin │ ├── ELTH.bin │ ├── ELTI.bin │ ├── ELTJ.bin │ ├── ELTK.bin │ ├── IANTOK.bin │ ├── SHIPS.bin │ └── WORDS.bin ├── 5-compiled-game-disks ├── README.md ├── elite-apple-4am-crack.dsk └── elite-apple-ib-disk.dsk ├── Makefile ├── README.md └── make.bat /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows thumbnail cache files 2 | Thumbs.db 3 | ehthumbs.db 4 | ehthumbs_vista.db 5 | 6 | # Folder config file 7 | Desktop.ini 8 | 9 | # Recycle Bin used on file shares 10 | $RECYCLE.BIN/ 11 | 12 | # Windows Installer files 13 | *.cab 14 | *.msi 15 | *.msm 16 | *.msp 17 | 18 | # Windows shortcuts 19 | *.lnk 20 | 21 | # IDE files 22 | .vscode/ 23 | *.code-workspace 24 | run.bat 25 | -------------------------------------------------------------------------------- /1-source-files/README.md: -------------------------------------------------------------------------------- 1 | # Source files for the Apple II version of Elite 2 | 3 | This folder contains the source files for the Apple II version of Elite. 4 | 5 | * [fonts](fonts) contains the binaries for the game's text font 6 | 7 | * [images](images) contains the image binaries for the title screen and dashboard 8 | 9 | * [main-sources](main-sources) contains the annotated source code 10 | 11 | * [original-sources](original-sources) contains the original source code from Ian Bell's personal website 12 | 13 | * [other-files](other-files) contains a blank disk image containing the BASIC loader program 14 | 15 | --- 16 | 17 | Right on, Commanders! 18 | 19 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/fonts/A.FLOWY.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/fonts/A.FLOWY.bin -------------------------------------------------------------------------------- /1-source-files/fonts/README.md: -------------------------------------------------------------------------------- 1 | # Font binaries for the Apple II version of Elite 2 | 3 | This folder contains the font binaries from the original game disk for the Apple II version of Elite on Ian Bell's personal website. 4 | 5 | * [A.FLOWY.bin](A.FLOWY.bin) is the Apple II game font 6 | 7 | --- 8 | 9 | Right on, Commanders! 10 | 11 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/images/4am-crack/A.SCREEN1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/4am-crack/A.SCREEN1.bin -------------------------------------------------------------------------------- /1-source-files/images/4am-crack/A.SCREEN2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/4am-crack/A.SCREEN2.bin -------------------------------------------------------------------------------- /1-source-files/images/README.md: -------------------------------------------------------------------------------- 1 | # Image binaries for the Apple II version of Elite 2 | 3 | This folder contains the image binaries from the original game disk for the Apple II version of Elite on Ian Bell's personal website. 4 | 5 | * [4am-crack/A.SCREEN1.bin](4am-crack/A.SCREEN1.bin) and [4am-crack/A.SCREEN2.bin](4am-crack/A.SCREEN2.bin) make up the loading screen image, with the dashboard at the bottom 6 | 7 | --- 8 | 9 | Right on, Commanders! 10 | 11 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/images/ib-disk/A.SCREEN.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/ib-disk/A.SCREEN.bin -------------------------------------------------------------------------------- /1-source-files/images/source-disk-build/A.SCREEN.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/source-disk-build/A.SCREEN.bin -------------------------------------------------------------------------------- /1-source-files/images/source-disk-code-files/A.SCREEN.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/source-disk-code-files/A.SCREEN.bin -------------------------------------------------------------------------------- /1-source-files/images/source-disk-elt-files/A.SCREEN.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/images/source-disk-elt-files/A.SCREEN.bin -------------------------------------------------------------------------------- /1-source-files/main-sources/README.md: -------------------------------------------------------------------------------- 1 | # Annotated source code for the Apple II version of Elite 2 | 3 | This folder contains the annotated source code for the Apple II version of Elite. 4 | 5 | * Main source files: 6 | 7 | * [elite-source.asm](elite-source.asm) contains the main source for the game 8 | 9 | * [elite-data.asm](elite-data.asm) contains source for the game data, including the game text and ship blueprints 10 | 11 | * [elite-bcfs.asm](elite-bcfs.asm) contains the Big Code File source, which concatenates individually assembled binaries into the final game binary 12 | 13 | * Other source files: 14 | 15 | * [elite-mover.asm](elite-mover.asm) contains the source for the mover program that moves code in memory once loaded 16 | 17 | * [elite-checksum.asm](elite-checksum.asm) contains 6502 source code for the checksum routines that are implemented in the elite-checksum.py script (and which were implemented by the S.CODES and S.DATAS BBC BASIC programs in the original source discs); this file is purely for reference and is not used in the build process 18 | 19 | * [elite-transfer.asm](elite-transfer.asm) generates files that are suitable for transmitting to an Apple II connected to the BBC Micro doing the build; this file is purely for reference and is not used in the build process 20 | 21 | * [elite-readme.asm](elite-readme.asm) generates a README file for inclusion on the DSK disk image 22 | 23 | * Files that are generated during the build process: 24 | 25 | * [elite-build-options.asm](elite-build-options.asm) stores the make options in BeebAsm format so they can be included in the assembly process 26 | 27 | --- 28 | 29 | Right on, Commanders! 30 | 31 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/main-sources/elite-bcfs.asm: -------------------------------------------------------------------------------- 1 | ; ****************************************************************************** 2 | ; 3 | ; APPLE II ELITE BIG CODE FILE SOURCE 4 | ; 5 | ; Apple II Elite was written by Ian Bell and David Braben and is copyright 6 | ; D. Braben and I. Bell 1986 7 | ; 8 | ; The code in this file is identical to the source disks released on Ian Bell's 9 | ; personal website at http://www.elitehomepage.org/ (it's just been reformatted 10 | ; to be more readable) 11 | ; 12 | ; The commentary is copyright Mark Moxon, and any misunderstandings or mistakes 13 | ; in the documentation are entirely my fault 14 | ; 15 | ; The terminology and notations used in this commentary are explained at 16 | ; https://elite.bbcelite.com/terminology 17 | ; 18 | ; The deep dive articles referred to in this commentary can be found at 19 | ; https://elite.bbcelite.com/deep_dives 20 | ; 21 | ; ------------------------------------------------------------------------------ 22 | ; 23 | ; This source file contains code to produce the Big Code File for Apple II 24 | ; Elite. The Big Code File comprises the game code and the ship blueprints. 25 | ; 26 | ; ------------------------------------------------------------------------------ 27 | ; 28 | ; This source file produces the following binary files: 29 | ; 30 | ; * CODE.unprot.bin 31 | ; * CODE1.unprot.bin 32 | ; * CODE2.unprot.bin 33 | ; 34 | ; after reading in the following files: 35 | ; 36 | ; * ELTA.bin 37 | ; * ELTB.bin 38 | ; * ELTC.bin 39 | ; * ELTD.bin 40 | ; * ELTE.bin 41 | ; * ELTF.bin 42 | ; * ELTG.bin 43 | ; * ELTH.bin 44 | ; * ELTI.bin 45 | ; * ELTJ.bin 46 | ; * ELTK.bin 47 | ; * SHIPS.bin 48 | ; 49 | ; ****************************************************************************** 50 | 51 | INCLUDE "1-source-files/main-sources/elite-build-options.asm" 52 | 53 | _IB_DISK = (_VARIANT = 1) 54 | _SOURCE_DISK_BUILD = (_VARIANT = 2) 55 | _SOURCE_DISK_CODE_FILES = (_VARIANT = 3) 56 | _SOURCE_DISK_ELT_FILES = (_VARIANT = 4) 57 | _4AM_CRACK = (_VARIANT = 5) 58 | _SOURCE_DISK = (_VARIANT = 2) OR (_VARIANT = 3) OR (_VARIANT = 4) 59 | 60 | ; ****************************************************************************** 61 | ; 62 | ; Configuration variables 63 | ; 64 | ; ****************************************************************************** 65 | 66 | CODE% = $4000 ; The address where the main game code file is run 67 | 68 | LOAD% = $4000 ; The load address of the main game code file, which is 69 | ; the same as the load address as it doesn't get moved 70 | ; after loading 71 | 72 | ; ****************************************************************************** 73 | ; 74 | ; Load the compiled binaries to create the Big Code File 75 | ; 76 | ; ****************************************************************************** 77 | 78 | ORG CODE% 79 | 80 | .elitea 81 | 82 | PRINT "elitea = ", ~P% 83 | INCBIN "3-assembled-output/ELTA.bin" 84 | 85 | .eliteb 86 | 87 | PRINT "eliteb = ", ~P% 88 | INCBIN "3-assembled-output/ELTB.bin" 89 | 90 | .elitec 91 | 92 | PRINT "elitec = ", ~P% 93 | INCBIN "3-assembled-output/ELTC.bin" 94 | 95 | .elited 96 | 97 | PRINT "elited = ", ~P% 98 | INCBIN "3-assembled-output/ELTD.bin" 99 | 100 | .elitee 101 | 102 | PRINT "elitee = ", ~P% 103 | INCBIN "3-assembled-output/ELTE.bin" 104 | 105 | .elitef 106 | 107 | PRINT "elitef = ", ~P% 108 | INCBIN "3-assembled-output/ELTF.bin" 109 | 110 | .eliteg 111 | 112 | PRINT "eliteg = ", ~P% 113 | INCBIN "3-assembled-output/ELTG.bin" 114 | 115 | .eliteh 116 | 117 | PRINT "eliteh = ", ~P% 118 | INCBIN "3-assembled-output/ELTH.bin" 119 | 120 | .elitei 121 | 122 | PRINT "elitei = ", ~P% 123 | INCBIN "3-assembled-output/ELTI.bin" 124 | 125 | .elitej 126 | 127 | PRINT "elitej = ", ~P% 128 | INCBIN "3-assembled-output/ELTJ.bin" 129 | 130 | .elitek 131 | 132 | PRINT "elitek = ", ~P% 133 | INCBIN "3-assembled-output/ELTK.bin" 134 | 135 | F% = P% 136 | 137 | PRINT "F% = ", ~F% 138 | PRINT "P% = ", ~P% 139 | 140 | IF _SOURCE_DISK_BUILD 141 | 142 | EQUB $79, $68, $00, $00, $EA, $82, $74, $31 ; These bytes appear to be 143 | EQUB $00, $8F, $79, $6E, $00, $00, $05, $8A ; unused and just contain random 144 | EQUB $74, $33, $00, $8F, $79, $7C, $00, $00 ; workspace noise left over from 145 | EQUB $FE, $83, $4C, $4F, $4F, $50, $00, $8F ; the BBC Micro assembly process 146 | EQUB $79, $A6, $00, $00 147 | 148 | ELIF _IB_DISK OR _4AM_CRACK OR _SOURCE_DISK_CODE_FILES OR _SOURCE_DISK_ELT_FILES 149 | 150 | SKIPTO $A300 151 | 152 | ENDIF 153 | 154 | .ships 155 | 156 | PRINT "ships = ", ~P% 157 | INCBIN "3-assembled-output/SHIPS.bin" 158 | 159 | IF _MATCH_ORIGINAL_BINARIES 160 | 161 | IF _IB_DISK OR _4AM_CRACK 162 | 163 | EQUB $00, $5C, $A0, $6C, $73, $73, $31, $00 ; These bytes appear to be 164 | EQUB $90, $20, $B8, $00, $00, $A9, $9F, $52 ; unused and just contain random 165 | EQUB $35, $00, $90, $20, $C0, $00, $00, $BE ; workspace noise left over from 166 | EQUB $9F, $52, $37, $00, $90, $20, $CB, $00 ; the BBC Micro assembly process 167 | EQUB $00, $28, $A1, $48, $50, $52, $00, $90 168 | EQUB $20, $E6, $00, $00, $CC, $9F, $52, $61 169 | EQUB $66, $74, $65, $72, $00, $90, $20, $F4 170 | EQUB $00, $00, $D7, $9F, $52, $58, $32, $00 171 | EQUB $90, $21, $00, $00, $00, $E2, $9F, $52 172 | EQUB $58, $31, $00, $90, $21, $04, $00, $00 173 | EQUB $EC, $9F, $52, $31, $00, $90, $21, $0C 174 | EQUB $00, $00, $F6, $9F, $52, $61, $00, $90 175 | EQUB $21, $17, $00, $00, $00, $A0, $52, $36 176 | EQUB $00, $90, $21, $30, $00, $00 177 | 178 | ELIF _SOURCE_DISK_BUILD 179 | 180 | EQUB $52, $00, $90, $20, $CB, $00, $00, $A7 ; These bytes appear to be 181 | EQUB $9F, $52, $61, $66, $74, $65, $72, $00 ; unused and just contain random 182 | EQUB $90, $20, $D9, $00, $00, $B2, $9F, $52 ; workspace noise left over from 183 | EQUB $58, $32, $00, $90, $20, $E5, $00, $00 ; the BBC Micro assembly process 184 | EQUB $BD, $9F, $52, $58, $31, $00, $90, $20 185 | EQUB $E9, $00, $00, $C7, $9F, $52, $31, $00 186 | EQUB $90, $20, $F1, $00, $00, $D1, $9F, $52 187 | EQUB $61, $00, $90, $20, $FC, $00, $00, $DB 188 | EQUB $9F, $52, $36, $00, $90, $21, $15, $00 189 | EQUB $00, $F2, $9F, $52, $34, $00, $90, $21 190 | EQUB $17, $00, $00, $FC, $9F, $65, $74, $74 191 | EQUB $65, $72, $00, $90, $21, $21, $00, $00 192 | EQUB $0A, $A0, $52, $39, $00, $90, $21, $2D 193 | EQUB $00, $00, $89, $A1, $65, $74 194 | 195 | ELIF _SOURCE_DISK_CODE_FILES OR _SOURCE_DISK_ELT_FILES 196 | 197 | EQUB $52, $00, $90, $20, $EA, $00, $00, $A7 ; These bytes appear to be 198 | EQUB $9F, $52, $61, $66, $74, $65, $72, $00 ; unused and just contain random 199 | EQUB $90, $20, $F8, $00, $00, $B2, $9F, $52 ; workspace noise left over from 200 | EQUB $58, $32, $00, $90, $21, $04, $00, $00 ; the BBC Micro assembly process 201 | EQUB $BD, $9F, $52, $58, $31, $00, $90, $21 202 | EQUB $08, $00, $00, $C7, $9F, $52, $31, $00 203 | EQUB $90, $21, $10, $00, $00, $D1, $9F, $52 204 | EQUB $61, $00, $90, $21, $1B, $00, $00, $DB 205 | EQUB $9F, $52, $36, $00, $90, $21, $34, $00 206 | EQUB $00, $F2, $9F, $52, $34, $00, $90, $21 207 | EQUB $36, $00, $00, $FC, $9F, $65, $74, $74 208 | EQUB $65, $72, $00, $90, $21, $40, $00, $00 209 | EQUB $0A, $A0, $52, $39, $00, $90, $21, $4C 210 | EQUB $00, $00, $A1, $A1, $65, $74 211 | 212 | ENDIF 213 | 214 | ELSE 215 | 216 | SKIPTO $C000 217 | 218 | ENDIF 219 | 220 | ; ****************************************************************************** 221 | ; 222 | ; Save CODE.unprot.bin 223 | ; 224 | ; ****************************************************************************** 225 | 226 | PRINT "P% = ", ~P% 227 | PRINT "S.A.CODE ", ~LOAD%, " ", ~P%, " ", ~LOAD%, " ", ~LOAD% 228 | SAVE "3-assembled-output/CODE.unprot.bin", CODE%, P%, LOAD% 229 | 230 | ; ****************************************************************************** 231 | ; 232 | ; Save CODE1.unprot.bin 233 | ; 234 | ; ****************************************************************************** 235 | 236 | SAVE "3-assembled-output/CODE1.unprot.bin", CODE%, CODE% + $5000, LOAD% 237 | 238 | ; ****************************************************************************** 239 | ; 240 | ; Save CODE2.unprot.bin 241 | ; 242 | ; ****************************************************************************** 243 | 244 | SAVE "3-assembled-output/CODE2.unprot.bin", CODE% + $5000, P%, LOAD% 245 | -------------------------------------------------------------------------------- /1-source-files/main-sources/elite-build-options.asm: -------------------------------------------------------------------------------- 1 | _VERSION=9 2 | _VARIANT=5 3 | _REMOVE_CHECKSUMS=FALSE 4 | _MATCH_ORIGINAL_BINARIES=TRUE 5 | _MAX_COMMANDER=FALSE 6 | -------------------------------------------------------------------------------- /1-source-files/main-sources/elite-checksum.asm: -------------------------------------------------------------------------------- 1 | ; ****************************************************************************** 2 | ; 3 | ; APPLE II ELITE ENCRYPTION SOURCE 4 | ; 5 | ; Apple II Elite was written by Ian Bell and David Braben and is copyright 6 | ; D. Braben and I. Bell 1986 7 | ; 8 | ; The code in this file is identical to the source disks released on Ian Bell's 9 | ; personal website at http://www.elitehomepage.org/ (it's just been reformatted 10 | ; to be more readable) 11 | ; 12 | ; The commentary is copyright Mark Moxon, and any misunderstandings or mistakes 13 | ; in the documentation are entirely my fault 14 | ; 15 | ; The terminology and notations used in this commentary are explained at 16 | ; https://elite.bbcelite.com/terminology 17 | ; 18 | ; The deep dive articles referred to in this commentary can be found at 19 | ; https://elite.bbcelite.com/deep_dives 20 | ; 21 | ; ------------------------------------------------------------------------------ 22 | ; 23 | ; The following routines from the S.CODES and S.DATAS BBC BASIC source files 24 | ; are implemented in the elite-checksum.py script. This file is purely for 25 | ; reference and is not used in the build process. 26 | ; 27 | ; ****************************************************************************** 28 | 29 | ; ****************************************************************************** 30 | ; 31 | ; Name: S.CODES encryption 32 | ; Type: Subroutine 33 | ; Category: Copy protection 34 | ; Summary: Encrypts CODE1 and CODE2 35 | ; 36 | ; ****************************************************************************** 37 | 38 | ZP = $70 ; ZP(1 0) stores the source address for the encryption 39 | 40 | ZP2 = $72 ; ZP2(1 0) stores the end address 41 | 42 | KEY1 = $15 ; The seed for encrypting CODE1 and CODE2 from G% to R%, 43 | ; where CODE1 is the portion of ELTA-ELTK up to memory 44 | ; location $9000, and CODE2 is the portion from $9000 45 | ; onwards 46 | 47 | ; These two variables come from the build process: 48 | ; 49 | ; G% is the address in the main game code of the ELTA 50 | ; file, at the start of CODE1 51 | ; 52 | ; R% is the address in the main game code of the last 53 | ; byte of ELTK, at the end of CODE2 54 | ; 55 | ; These two variables are calculated by S.CODES when 56 | ; loading the binary files into memory in order to 57 | ; encrypt them 58 | ; 59 | ; L% is the address in local memory in S.CODES where we 60 | ; load the ELTA-K files 61 | ; 62 | ; U% is the address in local memory in S.CODES of the 63 | ; last byte of ELTK 64 | ; 65 | ; We can therefore convert an in-game address to a local 66 | ; S.CODES address by adding L%-C% 67 | ; 68 | ; This code encrypts as follows: 69 | ; 70 | ; G% to R% with KEY1 (i.e. L%+G%-C% to U% in local 71 | ; memory) 72 | 73 | LDA U% ; Store the contents of the byte at U% on the stack, 74 | PHA ; so we can restore it below 75 | 76 | LDA #KEY1 ; Set the byte at U% to KEY1, so we can work up from 77 | STA U% ; L% to U% to encrypt LOCODE, ending with the correct 78 | ; seed (which we can then use to "unzip" the encrypted 79 | ; data in the opposite direction, from U% to L%) 80 | 81 | LDA #0 ; Set ZP = 0, so (ZP+1 Y) will equal ZP(1 0) + Y 82 | STA ZP 83 | 84 | LDY #LO(L%+G%-C%) ; Set (ZP+1 Y) to the address in local memory of the 85 | LDA #HI(L%+G%-C%) ; start of the code that we want to encrypt (i.e. G% in 86 | STA ZP+1 ; the main game code, or the first byte of ELTA) 87 | 88 | LDA #LO(U%) ; Set ZP2(1 0) to U%, the address in local memory of the 89 | STA ZP2 ; end of the code that we want to encrypt (i.e. R% in 90 | LDA #HI(U%) ; the main game code, or the last byte of ELTK) 91 | STA ZP2+1 92 | 93 | JSR WUMP ; Encrypt from (ZP+1 Y) up to ZP2(1 0), i.e. from G% up 94 | ; to R% in the main game code 95 | 96 | PLA ; Restore the byte at U%, which we corrupted above 97 | STA U% 98 | 99 | RTS ; Return from the subroutine 100 | 101 | .WUMP 102 | 103 | ; This routine encrypts from (ZP+1 Y) up to ZP2(1 0) 104 | ; 105 | ; This is the same as ZP2(1 0) down to ZP(1 0) + Y 106 | 107 | LDA (ZP),Y ; If Y = 255, jump to WUMP2 to add the bytes across the 108 | CLC ; page boundary and jump back to WUMP3 109 | INY ; 110 | BEQ WUMP2 ; Otherwise add byte Y+1 of ZP(1 0) to byte Y of ZP(1 0) 111 | ADC (ZP),Y 112 | DEY 113 | STA (ZP),Y 114 | 115 | .WUMP3 116 | 117 | INY ; Increment Y to point to the next byte to encrypt 118 | 119 | CPY ZP2 ; If we haven't reached ZP2(1 0), loop back to WUMP to 120 | BNE WUMP ; encrypt the next byte 121 | LDA ZP+1 122 | CMP ZP2+1 123 | BNE WUMP 124 | 125 | RTS ; Otherwise we have reached ZP2(1 0), so return from the 126 | ; subroutine 127 | 128 | .WUMP2 129 | 130 | ; If we get here then Y has just been incremented from 131 | ; 255 to 0 132 | 133 | INC ZP+1 ; Increment ZP(1 0) to point to the next page 134 | 135 | ADC (ZP),Y ; Add byte 0 of the new page to byte 255 of the old page 136 | DEC ZP+1 ; (C is still clear from above) 137 | DEY 138 | STA (ZP),Y 139 | INC ZP+1 140 | 141 | BNE WUMP3 ; Jump to WUMP3 to continue encrypting the new page 142 | 143 | ; ****************************************************************************** 144 | ; 145 | ; Name: S.DATAS encryption 146 | ; Type: Subroutine 147 | ; Category: Copy protection 148 | ; Summary: Encrypts DATA 149 | ; 150 | ; ****************************************************************************** 151 | 152 | ZP = $70 ; ZP(1 0) stores the source address for the encryption 153 | 154 | ZP2 = $72 ; ZP2(1 0) stores the end address 155 | 156 | KEY2 = $69 ; The seed for encrypting DATA from WORDS to $2000, 157 | ; which is the whole data file 158 | 159 | ; These three variables are calculated by S.COMLODS when 160 | ; loading the binary files into memory in order to 161 | ; encrypt them 162 | ; 163 | ; CODE is the address of the DATA file when loaded into 164 | ; local memory by S.DATAS 165 | ; 166 | ; DL% is the address of the DATA file when loaded by 167 | ; the game (this is hardcoded to $0B60) 168 | ; 169 | ; U% is the address of the end of the DATA file when 170 | ; loaded into local memory by S.DATAS (this is hardcoded 171 | ; to $2000+CODE-DL%) 172 | ; 173 | ; We can therefore convert an in-game address to a local 174 | ; S.DATA address by adding CODE-DL% 175 | ; 176 | ; This code encrypts as follows: 177 | ; 178 | ; WORDS to U% with KEY2 (i.e. WORDS+CODE-DL% to U% 179 | ; in local memory) 180 | 181 | LDA U% ; Store the contents of the byte at U% on the stack, 182 | PHA ; so we can restore it below 183 | 184 | LDA #KEY2 ; Set the byte at U% to KEY2, so we can work up from 185 | STA U% ; WORDS to U% to encrypt the data file, ending with the 186 | ; correct seed (which we can then use to "unzip" the 187 | ; encrypted data in the opposite direction, from U% to 188 | ; WORDS) 189 | 190 | LDA #0 ; Set ZP = 0, so (ZP+1 Y) will equal ZP(1 0) + Y 191 | STA ZP 192 | 193 | LDY #LO(WORDS+CODE-DL%) ; Set (ZP+1 Y) to the address in local memory of the 194 | LDA #HI(WORDS+CODE-DL%) ; start of the code that we want to encrypt (i.e. 195 | STA ZP+1 ; location WORDS in the data file) 196 | 197 | LDA #LO(U%) ; Set ZP2(1 0) to the address in local memory of the 198 | STA ZP2 ; end of the code that we want to encrypt (i.e. U% at 199 | LDA #HI(U%) ; the end of the data file) 200 | STA ZP2+1 201 | 202 | JSR WUMP ; Encrypt from (ZP+1 Y) up to ZP2(1 0), i.e. from WORDS 203 | ; up to U% in the data file 204 | 205 | PLA ; Restore the byte at U%, which we corrupted above 206 | STA U% 207 | 208 | RTS ; Return from the subroutine 209 | 210 | .WUMP 211 | 212 | ; This routine encrypts from (ZP+1 Y) up to ZP2(1 0) 213 | ; 214 | ; This is the same as ZP2(1 0) down to ZP(1 0) + Y 215 | 216 | LDA (ZP),Y ; If Y = 255, jump to WUMP2 to add the bytes across the 217 | CLC ; page boundary and jump back to WUMP3 218 | INY ; 219 | BEQ WUMP2 ; Otherwise add byte Y+1 of ZP(1 0) to byte Y of ZP(1 0) 220 | ADC (ZP),Y 221 | DEY 222 | STA (ZP),Y 223 | 224 | .WUMP3 225 | 226 | INY ; Increment Y to point to the next byte to encrypt 227 | 228 | CPY ZP2 ; If we haven't reached ZP2(1 0), loop back to WUMP to 229 | BNE WUMP ; encrypt the next byte 230 | LDA ZP+1 231 | CMP ZP2+1 232 | BNE WUMP 233 | 234 | RTS ; Otherwise we have reached ZP2(1 0), so return from the 235 | ; subroutine 236 | 237 | .WUMP2 238 | 239 | ; If we get here then Y has just been incremented from 240 | ; 255 to 0 241 | 242 | INC ZP+1 ; Increment ZP(1 0) to point to the next page 243 | 244 | ADC (ZP),Y ; Add byte 0 of the new page to byte 255 of the old page 245 | DEC ZP+1 ; (C is still clear from above) 246 | DEY 247 | STA (ZP),Y 248 | INC ZP+1 249 | 250 | BNE WUMP3 ; Jump to WUMP3 to continue encrypting the new page 251 | -------------------------------------------------------------------------------- /1-source-files/main-sources/elite-mover.asm: -------------------------------------------------------------------------------- 1 | ; ****************************************************************************** 2 | ; 3 | ; APPLE II ELITE MOVER SOURCE 4 | ; 5 | ; Apple II Elite was written by Ian Bell and David Braben and is copyright 6 | ; D. Braben and I. Bell 1986 7 | ; 8 | ; The code in this file has been reconstructed from a disassembly of the version 9 | ; released on Ian Bell's personal website at http://www.elitehomepage.org/ 10 | ; 11 | ; The commentary is copyright Mark Moxon, and any misunderstandings or mistakes 12 | ; in the documentation are entirely my fault 13 | ; 14 | ; The terminology and notations used in this commentary are explained at 15 | ; https://elite.bbcelite.com/terminology 16 | ; 17 | ; The deep dive articles referred to in this commentary can be found at 18 | ; https://elite.bbcelite.com/deep_dives 19 | ; 20 | ; ------------------------------------------------------------------------------ 21 | ; 22 | ; This source file contains code to move binaries in memory during the loading 23 | ; process. 24 | ; 25 | ; ------------------------------------------------------------------------------ 26 | ; 27 | ; This source file produces the following binary file: 28 | ; 29 | ; * MOVER.bin 30 | ; 31 | ; ****************************************************************************** 32 | 33 | INCLUDE "1-source-files/main-sources/elite-build-options.asm" 34 | 35 | _IB_DISK = (_VARIANT = 1) 36 | _SOURCE_DISK_BUILD = (_VARIANT = 2) 37 | _SOURCE_DISK_CODE_FILES = (_VARIANT = 3) 38 | _SOURCE_DISK_ELT_FILES = (_VARIANT = 4) 39 | _4AM_CRACK = (_VARIANT = 5) 40 | _SOURCE_DISK = (_VARIANT = 2) OR (_VARIANT = 3) OR (_VARIANT = 4) 41 | 42 | ; ****************************************************************************** 43 | ; 44 | ; Configuration variables 45 | ; 46 | ; ****************************************************************************** 47 | 48 | CODE% = $0300 ; The address where the code will be run 49 | 50 | LOAD% = $0300 ; The address where the code will be loaded 51 | 52 | IF _IB_DISK OR _4AM_CRACK 53 | 54 | BEGIN = $7EB9 ; The address of the BEGIN routine in the main game code 55 | 56 | TT170 = $7ED2 ; The address of the TT170 routine in the main game code 57 | 58 | ELIF _SOURCE_DISK 59 | 60 | BEGIN = $7EAB ; The address of the BEGIN routine in the main game code 61 | 62 | TT170 = $7EC4 ; The address of the TT170 routine in the main game code 63 | 64 | ENDIF 65 | 66 | C% = $9000 ; C% is set to the location that the main game code gets 67 | ; moved to after it is loaded 68 | 69 | L% = $D000 ; L% is the load address of the main game code file 70 | 71 | ; ****************************************************************************** 72 | ; 73 | ; Name: ZP 74 | ; Type: Workspace 75 | ; Address: $0000 to $0004 76 | ; Category: Workspaces 77 | ; Summary: Important variables used by the loader 78 | ; 79 | ; ****************************************************************************** 80 | 81 | ORG $0000 82 | 83 | .ZP 84 | 85 | SKIP 2 ; Stores addresses used for moving content around 86 | 87 | .P 88 | 89 | SKIP 2 ; Stores addresses used for moving content around 90 | 91 | ; ****************************************************************************** 92 | ; 93 | ; ELITE MOVER 94 | ; 95 | ; ****************************************************************************** 96 | 97 | ORG CODE% 98 | 99 | ; ****************************************************************************** 100 | ; 101 | ; Name: Mover 102 | ; Type: Subroutine 103 | ; Category: Loader 104 | ; Summary: Move the game code from its load address to the address where it 105 | ; will be run 106 | ; 107 | ; ****************************************************************************** 108 | 109 | .Mover 110 | 111 | STA $C080 ; Set ROM bank 2 to read from RAM and not write to RAM 112 | ; by accessing the READBSR2 soft switch, with bit 3 113 | ; clear (bank 2), bit 1 clear (read RAM) and bit 0 clear 114 | ; (do not write to RAM) 115 | 116 | LDY #0 ; Set the source and destination addresses for the copy: 117 | STY ZP ; 118 | STY P ; ZP(1 0) = L% = $D000 119 | LDA #HI(L%) ; P(1 0) = C% = $9000 120 | STA ZP+1 ; 121 | LDA #HI(C%) ; and set Y = 0 to act as a byte counter in the 122 | STA P+1 ; following loop 123 | 124 | .MVDL 125 | 126 | LDA (ZP),Y ; Copy the Y-th byte from the source to the Y-th byte of 127 | STA (P),Y ; the destination 128 | 129 | INY ; Increment the byte counter 130 | 131 | BNE MVDL ; Loop back until we have copied a whole page of bytes 132 | 133 | INC ZP+1 ; Increment the high bytes of ZP(1 0) and P(1 0) so we 134 | INC P+1 ; copy bytes from the next page in memory 135 | 136 | LDA P+1 ; Loop back until the P(1 0) = $C000 137 | CMP #$C0 138 | BCC MVDL 139 | 140 | STA $C082 ; Set ROM bank 2 to read from ROM and not write to RAM 141 | ; by accessing the OFFBSR2 soft switch, with bit 3 clear 142 | ; (bank 2), bit 1 set (read ROM) and bit 0 clear (do 143 | ; not write to RAM) 144 | 145 | IF _MAX_COMMANDER 146 | 147 | JMP BEGIN ; Jump to BEGIN to run the game from just after the 148 | ; call to JAMESON, so the maxed-out commander file 149 | ; doesn't get overwritten 150 | ; 151 | ; The standard mover program on the game disk from Ian 152 | ; Bell's site jumps to TT170 to start the game, but we 153 | ; want to ensure that the maxed-out commander in NA2% is 154 | ; copied into the current commander slot by the JAMESON 155 | ; routine, which is called by the BEGIN routine before 156 | ; it falls through into TT170 to run the game 157 | 158 | ELSE 159 | 160 | JMP TT170 ; Jump to TT170 to run the game from the main entry 161 | ; point 162 | 163 | ENDIF 164 | 165 | NOP ; This instruction has no effect 166 | 167 | ; ****************************************************************************** 168 | ; 169 | ; Save MOVER.bin 170 | ; 171 | ; ****************************************************************************** 172 | 173 | PRINT "P% = ", ~P% 174 | SAVE "3-assembled-output/MOVER.bin", CODE%, P%, LOAD% 175 | -------------------------------------------------------------------------------- /1-source-files/main-sources/elite-readme.asm: -------------------------------------------------------------------------------- 1 | ; ****************************************************************************** 2 | ; 3 | ; APPLE II ELITE README SOURCE 4 | ; 5 | ; Apple II Elite was written by Ian Bell and David Braben and is copyright 6 | ; D. Braben and I. Bell 1986 7 | ; 8 | ; The code in this file is identical to the source disks released on Ian Bell's 9 | ; personal website at http://www.elitehomepage.org/ (it's just been reformatted 10 | ; to be more readable) 11 | ; 12 | ; The commentary is copyright Mark Moxon, and any misunderstandings or mistakes 13 | ; in the documentation are entirely my fault 14 | ; 15 | ; The terminology and notations used in this commentary are explained at 16 | ; https://elite.bbcelite.com/terminology 17 | ; 18 | ; The deep dive articles referred to in this commentary can be found at 19 | ; https://elite.bbcelite.com/deep_dives 20 | ; 21 | ; ------------------------------------------------------------------------------ 22 | ; 23 | ; This source file produces a README file for Apple II Elite. 24 | ; 25 | ; ------------------------------------------------------------------------------ 26 | ; 27 | ; This source file produces the following binary file: 28 | ; 29 | ; * README.txt 30 | ; 31 | ; ****************************************************************************** 32 | 33 | INCLUDE "1-source-files/main-sources/elite-build-options.asm" 34 | 35 | _IB_DISK = (_VARIANT = 1) 36 | _SOURCE_DISK_BUILD = (_VARIANT = 2) 37 | _SOURCE_DISK_CODE_FILES = (_VARIANT = 3) 38 | _SOURCE_DISK_ELT_FILES = (_VARIANT = 4) 39 | _4AM_CRACK = (_VARIANT = 5) 40 | _SOURCE_DISK = (_VARIANT = 2) OR (_VARIANT = 3) OR (_VARIANT = 4) 41 | 42 | .readme 43 | 44 | EQUB 13 45 | EQUS "---------------------------------------" 46 | EQUB 13 47 | EQUS "FIREBIRD ELITE" 48 | EQUB 13 49 | EQUB 13 50 | EQUS "VERSION: APPLE II" 51 | EQUB 13 52 | 53 | IF _IB_DISK 54 | 55 | EQUS "VARIANT: IAN BELL'S GAME DISK" 56 | EQUB 13 57 | 58 | ELIF _4AM_CRACK 59 | 60 | EQUS "VARIANT: 4AM CRACK (FIREBIRD RELEASE)" 61 | EQUB 13 62 | 63 | ELIF _SOURCE_DISK_BUILD 64 | 65 | EQUS "VARIANT: SOURCE DISK BUILD OUTPUT" 66 | EQUB 13 67 | 68 | ELIF _SOURCE_DISK_CODE_FILES 69 | 70 | EQUS "VARIANT: SOURCE DISK CODE BINARY FILES" 71 | EQUB 13 72 | 73 | ELIF _SOURCE_DISK_ELT_FILES 74 | 75 | EQUS "VARIANT: SOURCE DISK ELT BINARY FILES" 76 | EQUB 13 77 | 78 | ENDIF 79 | 80 | EQUB 13 81 | EQUS "SEE WWW.BBCELITE.COM FOR DETAILS" 82 | EQUB 13 83 | EQUS "---------------------------------------" 84 | EQUB 13 85 | 86 | SAVE "3-assembled-output/README.txt", readme, P% 87 | 88 | -------------------------------------------------------------------------------- /1-source-files/original-sources/!BOOTER.txt: -------------------------------------------------------------------------------- 1 | 10*K.0CH."ELITEA" 2 | 20*K.1LOAD"ELITE 3 | 30*K.2SAVE"ELITE 4 | 40*K.4CH.":2.S.CODES" 5 | 50*K.5CH.":2.S.APMAKES" 6 | 60*DIR :0.A 7 | 70*K.8LOAD"ELITE 8 | 80*K.6"LISTIF " 9 | -------------------------------------------------------------------------------- /1-source-files/original-sources/$.RAMCTST.txt: -------------------------------------------------------------------------------- 1 | 10 REM TEST RAM CARD 2 | 20DIM CODE%&1000 3 | 30P%=&A00:O%=CODE% 4 | 40[OPT4 5 | 50LDA&C08B 6 | 60LDX#0:.LOOP1 TXA:STA&D000,X:ASLA:ASL&D000,X:CMP&D000,X:BNEP%:INX:BNELOOP1 7 | 70LDY#0:.LOOP2 LDA&C030:DEX:BNEP%-1:DEY:BNELOOP2:LDA&C081:RTS 8 | 80] 9 | 90OSCLI"MSEND "+STR$~CODE%+" "+STR$~O%+" A00" 10 | 100TIME=0:REPEATUNTILTIME>75 11 | 110 OSCLI"CALL A00" 12 | -------------------------------------------------------------------------------- /1-source-files/original-sources/$.SCRNOP2.txt: -------------------------------------------------------------------------------- 1 | 10REM ScrnOpns1 ---- MODE 2 PJMI 2 | 15REM Vastly improved by ICGB 3 | 20REM SCREEN TOUCH UP PROGRAM 4 | 30REM DONT SCROLL SCREEN 5 | 40REM S-Show cell:f6/f7 STO/RCL cell 6 | 50REM f8 SAVE:f2/4,f3/5,f4/6 plotting by SET,XOR,CLR for small/big points 7 | 60REM COPY moves large areas. Move cursor to corner of rectangle, press COPY, move cursor to opposite corner, press COPY, move cursor to corner of destination. 8 | 70REM RETURN does same but swaps 9 | 80REM f0/f1 fast/slow cursor 10 | 90REM DELETE clears rectangles - go top left then bottom right 11 | 92REM 0,1,2,3 change colours 12 | 95ON ERROR GOTO 810 13 | 100MODE2:PC%=7 14 | 110VDU19,1,0;0; 19,2,2;0; 19,3,4;0; 19,4,7;0; 19,5,5;0; 19,6,2;0; 19,7,8;0; 19,8,1;0; 15 | 120VDU28,1,31,18,29 :REM Window **** 16 | 122B%=&FFFFF6000 17 | 130INPUTA$:OSCLI("L. "+A$+" "+STR$~B%) 18 | 140*FX4 1 19 | 150*FX12 2 20 | 160*K.0|!A 21 | 170*K.1|!B 22 | 180*K.2|!C 23 | 190*K.3|!D 24 | 200*K.4|!E 25 | 210*K.5|!F 26 | 220*K.6|!G 27 | 230*K.7|!H 28 | 240*K.8|!I 29 | 250*K.9*FX4|MV.26|M*FX12,4|M 30 | 260X%=128:Y%=128:WIN=0:COP=0:DEL=0 31 | 270*FX15,1 32 | 280C%=0:GCOL3,PC%:REPEAT 33 | 290PLOT69,X%*4,Y%*4 34 | 300C%=C%EOR1 35 | 310I=INKEY(10):UNTILI<>-1 36 | 320IFC%=1PLOT69,X%*4,Y%*4 37 | 325GCOL0,PC% 38 | 330IFI=137X%=ABS(X%+D%)MOD320:GOTO270 39 | 340IFI=136X%=ABS(X%-D%)MOD320:GOTO270 40 | 350IFI=139Y%=Y%+D%AND&FF:GOTO270 41 | 360IFI=138Y%=Y%-D%AND&FF:GOTO270 42 | 370IFI=13PROCWIND:GOTO270 43 | 380IFI=135PROCCOPY:GOTO270 44 | 385IFI=127PROCDEL:GOTO270 45 | 390IFI=83PROCFLASH:GOTO270 46 | 400IFI=65+128D%=2:GOTO270 47 | 410IFI=66+128D%=1:GOTO270 48 | 420 49 | 430IFI=67+128PROCP(0,X%,Y%):GOTO270 50 | 440IFI=68+128PROCP(1,X%,Y%):GOTO270 51 | 450IFI=69+128PROCP(2,X%,Y%):GOTO270 52 | 452IFI>47ANDI<58 PC%=I-48 53 | 490IFI=71+128PROCSTO:GOTO270 54 | 500IFI=72+128PROCRCL:GOTO270 55 | 510IFI=73+128 PROCsve:GOTO270 56 | 520GOTO270 57 | 530DEFPROCaddr 58 | 540A%=&5800+(X%AND&FF8)+((255-Y%)AND7)+((255-Y%)AND&F8)*40 59 | 550ENDPROC 60 | 560DEFPROCchar:A%=&5800+(X%AND&FF8)+((255-Y%)AND&F8)*40:ENDPROC 61 | 570DEFPROCFLASH:PROCchar:FORJ%=0TO1:FORI%=0TO7:I%?A%=I%?A%EOR255:NEXT:FORK%=0TO100:NEXT:NEXT:ENDPROC 62 | 580DEFPROCP(I%,J%,K%):PLOT69+I%,J%*4,K%*4:ENDPROC 63 | 590DEFPROCSTO 64 | 600INPUT"STO no.?"N:IFN>63ORN<0THEN600ELSEPROCchar 65 | 610FORI%=0TO7:?(N*8+I%+&900)=I%?A%:NEXT:ENDPROC 66 | 620DEFPROCRCL 67 | 630INPUT"RCL no.?"N:PROCchar 68 | 640FORI%=0TO7:I%?A%=?(N*8+I%+&900):NEXT:ENDPROC 69 | 650DEFPROCWIND 70 | 660WIN=WIN+1:PROCS(100) 71 | 670IFWIN=1:WXL=X%:WYU=Y%:ENDPROC 72 | 680IFWIN=2:WXR=X%:WYD=Y%:ENDPROC 73 | 690WIN=0 74 | 700FORI%=0TOWXR-WXL:L%=(X%+I%)*4:M%=(WXL+I%)*4:FORJ%=0TOWYU-WYD:K%=POINT(M%,(WYU-J%)*4):PLOT71-2*POINT(L%,(Y%-J%)*4),M%,(WYU-J%)*4:PLOT71-2*K%,L%,(Y%-J%)*4:NEXT:NEXT:PROCS(120):ENDPROC 75 | 710DEFPROCCOPY 76 | 720COP=COP+1:PROCS(1) 77 | 730IFCOP=1:CXL=X%:CYU=Y%:ENDPROC 78 | 740IFCOP=2:CXR=X%:CYD=Y%:ENDPROC 79 | 750COP=0:FORI%=0TOCXR-CXL:L%=(X%+I%)*4:M%=(CXL+I%)*4:FORJ%=0TOCYU-CYD:PLOT71-2*POINT(M%,(CYU-J%)*4),L%,(Y%-J%)*4:NEXT:NEXT:PROCS(16):ENDPROC 80 | 760DEFPROCsve:CLS:*OPT1,0 81 | 770INPUTA$:CLS:OSCLI("S."+A$+" "+STR$~B%+" +1180") 82 | 800ENDPROC 83 | 810DEFPROCS(E%):SOUND1,-7,E%,4:ENDPROC 84 | 820IFERR<>17REPORT:PRINT" at line ";ERL;" , I'm afraid.":PROCS(90):PROCS(70):END 85 | 830PRINT"Abort?":IFGET$<>"Y"GOTO270 86 | 840*FX4 87 | 850REMVDU26,7 88 | 860END 89 | 900DEFPROCDEL:DEL=DEL+1:PROCS(1) 90 | 910IFDEL=1:DXL=X%:DYU=Y%:ENDPROC 91 | 920DXR=X%:DYD=Y% 92 | 930DEL=0:MOVE4*DXL,4*DYD:MOVE4*DXR,4*DYD:PLOT87,4*DXL,4*DYU:PLOT87,4*DXR,4*DYU:PROCS(16):ENDPROC 93 | -------------------------------------------------------------------------------- /1-source-files/original-sources/$.SLIDE.txt: -------------------------------------------------------------------------------- 1 | 5REM PREPARE INITIAL APPLE SCREEN 2 | 6MODE5:HIMEM=&3000 3 | 10SP=&3000 4 | 20OSCLI("L.:2.$.DIALS5 6D48") 5 | 30CODE2=&5000 6 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:SC=&70:T=&72:CNT1=&73:CNT2=&74:ZP=&76:T1=&78:T2=&79 7 | 42SCH=SC+1 8 | 50[OPTZ:.ENTRY 9 | 60LDX#&20:LDA#(SP MOD256):STASC:LDA#(SP DIV256):STASC+1:LDA#0:TAY 10 | 70.LOOP1 STA(SC),Y:INY:BNELOOP1:INCSC+1:DEX:BNELOOP1 11 | 80LDY#0:.LOOP2 LDX#0:.LOOP3 JSRpoint:BEQP%+5:JSRplot:INX:INX:BNELOOP3 12 | 90.LOOP4 JSRpoint2:BEQP%+5:JSRplot2:INX:INX:CPX#&18:BNELOOP4 13 | 100INY:CPY#192:BNELOOP2 14 | 110RTS 15 | 150.point STYT1:STXT2:LDY#128:STYSC:TAY:LSRA:LSRA:LSRA:STASCH:LSRA:RORSC:LSRA:RORSC:ADCSCH:ADC#&58:STASCH:TXA:AND#&F8:ADCSC:STASC:BCCP%+4:INCSCH:TYA:AND#7:TAY:TXA:AND#7:TAX 16 | 160LDA#0:STAT:LDA(SC),Y:ANDMO5T,X:CMP#&10:RORT:AND#15:CMP#1:RORT:LDYT1:LDXT2:LDAT:RTS 17 | 170.point2 STYT1:STXT2:LDY#128:STYSC:TAY:LSRA:LSRA:LSRA:STASCH:LSRA:RORSC:LSRA:RORSC:ADCSCH:ADC#&59:STASCH:TXA:AND#&F8:ADCSC:STASC:BCCP%+4:INCSCH:TYA:AND#7:TAY:TXA:AND#7:TAX 18 | 180LDA#0:STAT:LDA(SC),Y:ANDMO5T,X:CMP#&10:RORT:AND#15:CMP#1:RORT:LDYT1:LDXT2:LDAT:RTS 19 | 190.MO5T EQUD&44448888:EQUD&11112222 20 | 194\.... 21 | 200.plot STYT1:STXT2:TAY:LDAmask,Y:STAT:LDAT1 22 | 205STASC+1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDASC+1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 23 | 210LDYSCTBX1,X:CPY#7:BEQEDGE:.pls LDAAPT,Y:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:LDXT2:LDYT1:RTS 24 | 220.EDGE LDAAPT,Y:ANDT:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:INY:LDA#1:ANDT:JMPpls 25 | 230\.... 26 | 300.plot2 STYT1:STXT2:TAY:LDAmask,Y:STAT:LDAT1 27 | 305STASC+1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDASC+1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 28 | 310LDYSCTBX12,X:CPY#7:BEQEDGE2:.pls2 LDAAPT,Y:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDXT2:LDYT1:RTS 29 | 320.EDGE2 LDAAPT,Y:ANDT:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:INY:LDA#1:ANDT:JMPpls2 30 | 380\.... 31 | 400.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 32 | 410.SCTBH EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 33 | 420.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%MOD7:NEXT 34 | 430P%=P%+&100:Oe=O%+&100:[OPTZ 35 | 440.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%DIV7:NEXT 36 | 450P%=P%+&100:O%=O%+&100:[OPTZ 37 | 460.SCTBX12 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)MOD7:NEXT 38 | 470P%=P%+&100:O%=O%+&100:[OPTZ 39 | 480.SCTBX22 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%DIV7:NEXT 40 | 490P%=P%+&100:O%=O%+&100:[OPTZ 41 | 500.mask EQUB0:EQUB&55:EQUB&AA:EQUB&FF 42 | 510.APT EQUD&810C0603:EQUB&30:EQUB&60:EQUB&60 43 | 580\.... 44 | 700.SLIDE LDA#4:STACNT1 45 | 710.LOOP1 LDA#&00:STAZP:LDA#&58:STAZP+1:LDA#32:STACNT2 46 | 720.LOOP2 LDY#7 47 | 730.LOOP3 LDX#39:LDA#0:STAT1:LDAZP:STASC:LDAZP+1:STASC+1 48 | 740.LOOP4 LDA(SC),Y:AND#&11:ASLA:ASLA:ASLA:PHA:LDA(SC),Y:AND#&EE:LSRA:ORAT1:STA(SC),Y:PLA:STAT1 49 | 745LDASC:CLC:ADC#8:STASC:BCCP%+4:INCSC+1:PLP:DEX:BPLLOOP4 50 | 750DEY:BPLLOOP3 51 | 760LDAZP:CLC:ADC#&40:STAZP:LDAZP+1:ADC#1:STAZP+1:DECCNT2:BNELOOP2 52 | 770DECCNT1:BNELOOP1 53 | 780RTS 54 | 800]:NEXTZ 55 | 2000PROCM(7,24*8-1):PROCD(11,0) 56 | 2010PROCM(&108,24*8-1):PROCD(&108,0) 57 | 3000CALLSLIDE 58 | 3011STOP 59 | 3200OSCLI("MSEND "+STR$~SP +" +2000 2000") 60 | 4000END 61 | 5000DEFPROCD(X,Y):DRAW4*X,1020-4*Y:ENDPROC 62 | 5100DEFPROCM(X,Y):MOVE4*X,1020-4*Y:ENDPROC 63 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.APLINE.txt: -------------------------------------------------------------------------------- 1 | 100GOSUB1000 2 | 200FORAN=0TO2*PI STEPPI/10:PROCL(80,80,80+76*COSAN,80+76*SINAN):NEXT 3 | 500PRINT~CODE P% ENTRY 4 | 600OSCLI("MSEND "+STR$~CODE+" "+STR$~O%+" "+STR$~START) 5 | 610OSCLI("CALL "+STR$~ENTRY) 6 | 999END 7 | 1000DIM CODE &1000 8 | 1010FF=&FF 9 | 1020DIM T%(7) 10 | 1100ZP=&10:X1=FNZ:Y1=FNZ:X2=FNZ:Y2=FNZ:SC=FNZ2:SWAP=FNZ:P=FNZ:Q=FNZ:R=FNZ:S=FNZ:T=FNZ:T1=FNZ:T2=FNZ 11 | 1110YSAV=FNZ:CNT=FNZ 12 | 1150FORI%=0TO6:T%(I%)=2^I%:NEXT 13 | 1200SCH=SC+1 14 | 1500FORZ=4TO6STEP2 15 | 1510P%=CODE:O%=CODE 16 | 1600[OPTZ 17 | 1610.START 18 | 1700.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 19 | 1710 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 20 | 1720 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 21 | 1750.SCTBH EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 22 | 1760 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 23 | 1770 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 24 | 1780.SCTBH2 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 25 | 1782 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 26 | 1784 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 27 | 1786\ can loose this table by adding &1C00 to SCTBH references 28 | 1800.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=T%((I%+12)MOD7):NEXT 29 | 1810P%=P%+&100:O%=O%+&100:[OPTZ 30 | 1820.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+12)DIV7:NEXT 31 | 1830P%=P%+&100:O%=O%+&100:[OPTZ 32 | 1900.ENTRY LDA&C052:LDA&C052:LDA&C057:LDA&C050 \HGR 33 | 1910LDA#&20:STASC+1:LDA#0:STASC:TAY:LDX#&40:.LOOP1 STA(SC),Y:INY:BNELOOP1:INCSC+1:DEX:BNELOOP1 \CLR 34 | 1950LDX#39:STXCNT:.LOOP2 LDA#80:STAX1:STAY1:LDATABLE,X:STAY2:DEX:LDATABLE,X:STAX2:DEX:STXCNT:JSRLOIN:LDXCNT:BPLLOOP2 35 | 1960RTS 36 | 1980\....... 37 | 2000.LL30:.LOIN STYYSAV 38 | 2020LDA#128:STAS:ASLA:STASWAP:LDAX2:SBCX1:BCSLI1:EOR#FF:ADC#1:SEC:.LI1 STAP 39 | 2030LDAY2:SBCY1:BCSLI2:EOR#FF:ADC#1:.LI2 STAQ:CMPP:BCCSTPX:JMPSTPY 40 | 2040.STPX LDXX1:CPXX2:BCCLI3:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:LDYY1:STAY1:STYY2:.LI3 41 | 2050LDAY1:LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 42 | 2060LDASCTBX1,X:STAR:LDYSCTBX2,X 43 | 2064LDAQ:LDX#254:STXQ:.LIL1 ASLA:BCSLI4:CMPP:BCCLI5:.LI4 SBCP:SEC:.LI5 ROLQ:BCSLIL1 44 | 2070LDXP:INX:LDAY2:SBCY1:BCSDOWN 45 | 2080LDASWAP:BNELI6:DEX:.LIL2 LDAR:EOR(SC),Y:STA(SC),Y 46 | 2090.LI6 ASLR:BPLLI7:LDA#1:STAR:INY 47 | 2100.LI7 LDAS:ADCQ:STAS:BCCLIC2:DECT2:BMILI20:LDASC+1:SBC#4:STASC+1 48 | 2110.LIC2 DEX:BNELIL2:LDYYSAV:RTS 49 | 2120.LI20 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLIC2 50 | 2130\..... 51 | 2150.DOWN LDAT2:EOR#7:STAT2:LDASWAP:BEQLI9:DEX:.LIL3 LDAR:EOR(SC),Y:STA(SC),Y 52 | 2160.LI9 ASLR:BPLLI10:LDA#1:STAR:INY 53 | 2170.LI10 LDAS:ADCQ:STAS:BCCLIC3:DECT2:BMILI21:LDASC+1:ADC#3:STASC+1 54 | 2180.LIC3 DEX:BNELIL3:LDYYSAV:RTS 55 | 2190.LI21 LDA#7:STAT2:STXT:LDXT1:INX:STXT1:LDASCTBL,X:STASC:LDASCTBH,X:STASC+1:LDXT:JMPLIC3 56 | 2195\..... 57 | 2200.STPY LDYY1:TYA:LDXX1:CPYY2:BCSLI15:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:STAY1:STYY2:TAY 58 | 2210.LI15 LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 59 | 2214LDASCTBX1,X:STAR:LDYSCTBX2,X 60 | 2220LDAP:LDX#1:STXP:.LIL4 ASLA:BCSLI13:CMPQ:BCCLI14:.LI13 SBCQ:SEC:.LI14 ROLP:BCCLIL4:LDXQ:INX:LDAX2:SBCX1:BCCLFT 61 | 2222\.... 62 | 2230CLC:LDASWAP:BEQLI17:DEX:.LIL5 LDAR:EOR(SC),Y:STA(SC),Y:.LI17 DECT2:BMILI22:LDASC+1:SBC#3:STASC+1:CLC 63 | 2240.LI16 LDAS:ADCP:STAS:BCCLIC5:ASLR:BPLLIC5:LDA#1:STAR:INY 64 | 2250.LIC5 DEX:BNELIL5:LDYYSAV:RTS 65 | 2260.LI22 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI16 66 | 2270.LI23 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI19 67 | 2280\..... 68 | 2300.LFT LDASWAP:BEQLI18:DEX:.LIL6 LDAR:EOR(SC),Y:STA(SC),Y:.LI18 DECT2:BMILI23:LDASC+1:SBC#3:STASC+1:CLC:.LI19 LDAS:ADCP:STAS:BCCLIC6 69 | 2310LSRR:BCCLIC6:LDA#64:STAR:DEY:CLC:.LIC6 DEX:BNELIL6:LDYYSAV:RTS 70 | 2350\................................... 71 | 2800.TABLE 72 | 2900] 73 | 2910NEXTZ 74 | 2920RETURN 75 | 9000DEFPROCL(A,B,C,D):[OPT6:EQUB INT(C+.5):EQUB INT(D+.5):]:ENDPROC 76 | 10000DEFFNZ:ZP=ZP+1:=ZP-1 77 | 10010DEFFNZ2:ZP=ZP+2:=ZP-2 78 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.APLINE2.txt: -------------------------------------------------------------------------------- 1 | 100GOSUB1000 2 | 200FORAN=0TO2*PI STEPPI/10:PROCL(128,128,128+127*COSAN,128+127*SINAN):NEXT 3 | 500PRINT~CODE P% ENTRY 4 | 600OSCLI("MSEND "+STR$~CODE+" "+STR$O%+" "+STR$~START) 5 | 610OSCLI("CALL "+STR$~ENTRY) 6 | 999END 7 | 1000DIM CODE &1000 8 | 1010FF=&FF 9 | 1020DIM T%(7) 10 | 1100ZP=&10:X1=FNZ:Y1=FNZ:X2=FNZ:Y2=FNZ:SC=FNZ2:SWAP=FNZ:P=FNZ:Q=FNZ:R=FNZ:S=FNZ:T=FNZ:T1=FNZ:T2=FNZ 11 | 1110YSAV=FNZ:CNT=FNZ 12 | 1150FORI%=0TO6:T%(I%)=2^(6-I%):NEXT 13 | 1200SCH=SC+1 14 | 1500FORZ=4TO6STEP2 15 | 1510P%=CODE:O%=CODE 16 | 1600[OPTZ 17 | 1610.START 18 | 1700.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 19 | 1710 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 20 | 1720 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 21 | 1750.SCTBH EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 22 | 1760 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 23 | 1770 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 24 | 1780.SCTBH2 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 25 | 1782 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 26 | 1784 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 27 | 1786\ can loose this table by adding &1C00 to SCTBH references 28 | 1800.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=T%((I%+12)MOD7):NEXT 29 | 1810P%=P%+&100:O%=O%+&100:[OPTZ 30 | 1820.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+12)DIV7:NEXT 31 | 1830P%=P%+&100:O%=O%+&100:[OPTZ 32 | 1900.ENTRY LDA&C052:LDA&C052:LDA&C057:LDA&C050 \HGR 33 | 1910LDA#&20:STASC+1:LDA#0:STASC:TAY:LDX#&40:.LOOP1 STA(SC),Y:INY:BNELOOP1:INCSC+1:DEX:BNELOOP1 \CLR 34 | 1950LDX#38:STXCNT:.LOOP2 LDA#128:STAX1:STAX2:LDATABLE,X:STAY2:DEX:LDATABLE,X:STAX2:DEX:STXCNT:JSRLOIN:LDXCNT:BPLLOOP2 35 | 1960RTS 36 | 1980\....... 37 | 2000.LL30:.LOIN STYYSAV 38 | 2020LDA#128:STAS:ASLA:STASWAP:LDAX2:SBCX1:BCSLI1:EOR#FF:ADC#1:SEC:.LI1 STAP 39 | 2030LDAY2:SBCY1:BCSLI2:EOR#FF:ADC#1:.LI2 STAQ:CMPP:BCCSTPX:JMPSTPY 40 | 2040.STPX LDXX1:CPXX2:BCCLI3:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:LDYY1:STAY1:STYY2:.LI3 41 | 2050LDAY1:LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 42 | 2060LDASCTBX1,X:STAR:LDYSCTBX2,X 43 | 2064LDAQ:LDX#254:STXQ:.LIL1 ASLA:BCSLI4:CMPP:BCCLI5:.LI4 SBCP:SEC:.LI5 ROLQ:BCSLIL1 44 | 2070LDXP:INX:LDAY2:SBCY1:BCSDOWN 45 | 2080LDASWAP:BNELI6:DEX:.LIL2 LDAR:EOR(SC),Y:STA(SC),Y 46 | 2090.LI6 ASLR:BPLLI7:LDA#1:STAR:INY 47 | 2100.LI7 LDAS:ADCQ:STAS:BCCLIC2:DECT2:BMILI20:LDASC+1:SBC#4:STASC+1 48 | 2110.LIC2 DEX:BNELIL2:LDYYSAV:RTS 49 | 2120.LI20 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLIC2 50 | 2130\..... 51 | 2150.DOWN LDAT2:EOR#FF:ADC#0:STAT2:LDASWAP:BEQLI9:DEX:.LIL3 LDAR:EOR(SC),Y:STA(SC),Y 52 | 2160.LI9 ASLA:BPLLI10:LDA#1:STAR:INY 53 | 2170.LI10 LDAS:ADCQ:STAS:BCCLIC3:DECT2:BMILI21:LDASC+1:ADC#3:STASC+1 54 | 2180.LIC3 DEX:BNELIL3:LDYYSAV:RTS 55 | 2190.LI21 LDA#0:STAT2:STXT:LDXT1:INX:STXT1:LDASCTBL,X:STASC:LDASCTBH,X:LDXT:JMPLIC3 56 | 2195\..... 57 | 2200.STPY LDYY1:TYA:LDXX1:CPYY2:BCSLI15:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:STAY1:STYY2:TAY 58 | 2210.LI15 LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 59 | 2214LDASCTBX1,X:STAR:LDYSCTBX2,X 60 | 2220LDAP:LDX#1:STXP:.LIL4 ASLA:BCSLI13:CMPQ:BCCLI14:.LI13 SBCQ:SEC:.LI14 ROLP:BCCLIL4:LDXQ:INX:LDAX2:SBCX1:BCCLFT 61 | 2222\.... 62 | 2230CLC:LDASWAP:BEQLI17:DEX:.LIL5 LDAR:EOR(SC),Y:STA(SC),Y:.LI17 DECT2:BMILI22:LDASC+1:SBC#3:STASC+1:CLC 63 | 2240.LI16 LDAS:ADCP:STAS:BCCLIC5:ASLA:BPLLIC5:LDA#1:STAR:INY 64 | 2250.LIC5 DEX:BNELIL5:LDYYSAV:RTS 65 | 2260.LI22 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI16 66 | 2270.LI23 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI19 67 | 2280\..... 68 | 2300.LFT LDASWAP:BEQLI18:DEX:.LIL6 LDAR:EOR(SC),Y:STA(SC),Y:.LI18 DECT2:BMILI23:LDASC+1:SBC#3:STASC+1:CLC:.LI19 LDAS:ADCP:STAS:BCCLIC6 69 | 2310LSRR:BCCLIC6:LDA#64:STAR:DEY:CLC:.LIC6 DEX:BNELIL6:LDYYSAV:RTS 70 | 2350\................................... 71 | 2800.TABLE 72 | 2900] 73 | 2910NEXTZ 74 | 2920RETURN 75 | 9000DEFPROCL(A,B,C,D):[OPT6:EQUB INT(C+.5):EQUB INT(D+.5):]:ENDPROC 76 | 10000DEFFNZ:ZP=ZP+1:=ZP-1 77 | 10010DEFFNZ2:ZP=ZP+2:=ZP-2 78 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.APTES.txt: -------------------------------------------------------------------------------- 1 | 100GOSUB1000 2 | 200FORAN=0TO2*PI STEPPI/10:PROCL(80,80,80+76*COSAN,80+76*SINAN):NEXT 3 | 500PRINT~CODE P% ENTRY 4 | 600OSCLI("MSEND "+STR$~CODE+" "+STR$~O%+" "+STR$~START) 5 | 610OSCLI("CALL "+STR$~ENTRY) 6 | 999END 7 | 1000DIM CODE &1000 8 | 1010FF=&FF 9 | 1020DIM T%(7) 10 | 1100ZP=&10:X1=FNZ:Y1=FNZ:X2=FNZ:Y2=FNZ:SC=FNZ2:SWAP=FNZ:P=FNZ:Q=FNZ:R=FNZ:S=FNZ:T=FNZ:T1=FNZ:T2=FNZ 11 | 1110YSAV=FNZ:CNT=FNZ 12 | 1150FORI%=0TO6:T%(I%)=2^I%:NEXT 13 | 1200SCH=SC+1 14 | 1500FORZ=4TO6STEP2 15 | 1510P%=CODE:O%=CODE 16 | 1600[OPTZ 17 | 1610.START 18 | 1700.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 19 | 1710 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 20 | 1720 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 21 | 1750.SCTBH EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 22 | 1760 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 23 | 1770 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 24 | 1780.SCTBH2 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 25 | 1782 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 26 | 1784 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 27 | 1786\ can loose this table by adding &1C00 to SCTBH references 28 | 1800.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=T%((I%+12)MOD7):NEXT 29 | 1810P%=P%+&100:O%=O%+&100:[OPTZ 30 | 1820.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+12)DIV7:NEXT 31 | 1830P%=P%+&100:O%=O%+&100:[OPTZ 32 | 1960RTS 33 | 1980\....... 34 | 2000.LL30:.LOIN STYYSAV 35 | 2020LDA#128:STAS:ASLA:STASWAP:LDAX2:SBCX1:BCSLI1:EOR#FF:ADC#1:SEC:.LI1 STAP 36 | 2030LDAY2:SBCY1:BCSLI2:EOR#FF:ADC#1:.LI2 STAQ:CMPP:BCCSTPX:JMPSTPY 37 | 2040.STPX LDXX1:CPXX2:BCCLI3:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:LDYY1:STAY1:STYY2:.LI3 38 | 2050LDAY1:LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 39 | 2060LDASCTBX1,X:STAR:LDYSCTBX2,X 40 | 2064LDAQ:LDX#254:STXQ:.LIL1 ASLA:BCSLI4:CMPP:BCCLI5:.LI4 SBCP:SEC:.LI5 ROLQ:BCSLIL1 41 | 2070LDXP:INX:LDAY2:SBCY1:BCSDOWN 42 | 2080LDASWAP:BNELI6:DEX:.LIL2 LDAR:EOR(SC),Y:STA(SC),Y 43 | 2090.LI6 ASLR:BPLLI7:LDA#1:STAR:INY 44 | 2100.LI7 LDAS:ADCQ:STAS:BCCLIC2:DECT2:BMILI20:LDASC+1:SBC#4:STASC+1 45 | 2110.LIC2 DEX:BNELIL2:LDYYSAV:RTS 46 | 2120.LI20 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLIC2 47 | 2130\..... 48 | 2150.DOWN LDAT2:EOR#7:STAT2:LDASWAP:BEQLI9:DEX:.LIL3 LDAR:EOR(SC),Y:STA(SC),Y 49 | 2160.LI9 ASLR:BPLLI10:LDA#1:STAR:INY 50 | 2170.LI10 LDAS:ADCQ:STAS:BCCLIC3:DECT2:BMILI21:LDASC+1:ADC#3:STASC+1 51 | 2180.LIC3 DEX:BNELIL3:LDYYSAV:RTS 52 | 2190.LI21 LDA#7:STAT2:STXT:LDXT1:INX:STXT1:LDASCTBL,X:STASC:LDASCTBH,X:STASC+1:LDXT:JMPLIC3 53 | 2195\..... 54 | 2200.STPY LDYY1:TYA:LDXX1:CPYY2:BCSLI15:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:STAY1:STYY2:TAY 55 | 2210.LI15 LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 56 | 2214LDASCTBX1,X:STAR:LDYSCTBX2,X 57 | 2220LDAP:LDX#1:STXP:.LIL4 ASLA:BCSLI13:CMPQ:BCCLI14:.LI13 SBCQ:SEC:.LI14 ROLP:BCCLIL4:LDXQ:INX:LDAX2:SBCX1:BCCLFT 58 | 2222\.... 59 | 2230CLC:LDASWAP:BEQLI17:DEX:.LIL5 LDAR:EOR(SC),Y:STA(SC),Y:.LI17 DECT2:BMILI22:LDASC+1:SBC#3:STASC+1:CLC 60 | 2240.LI16 LDAS:ADCP:STAS:BCCLIC5:ASLR:BPLLIC5:LDA#1:STAR:INY 61 | 2250.LIC5 DEX:BNELIL5:LDYYSAV:RTS 62 | 2260.LI22 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI16 63 | 2270.LI23 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI19 64 | 2280\..... 65 | 2300.LFT LDASWAP:BEQLI18:DEX:.LIL6 LDAR:EOR(SC),Y:STA(SC),Y:.LI18 DECT2:BMILI23:LDASC+1:SBC#3:STASC+1:CLC:.LI19 LDAS:ADCP:STAS:BCCLIC6 66 | 2310LSRR:BCCLIC6:LDA#64:STAR:DEY:CLC:.LIC6 DEX:BNELIL6:LDYYSAV:RTS 67 | 2350\................................... 68 | 2800.TABLE 69 | 2900] 70 | 2910NEXTZ 71 | 2920RETURN 72 | 9000DEFPROCL(A,B,C,D):[OPT6:EQUB INT(C+.5):EQUB INT(D+.5):]:ENDPROC 73 | 10000DEFFNZ:ZP=ZP+1:=ZP-1 74 | 10010DEFFNZ2:ZP=ZP+2:=ZP-2 75 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEB.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 20REM ELITE AP 7 | 1000H%=H%+O%-W%:O%=W% 8 | 1010J%=O%:[OPTZ 9 | 1300.UNIV:]FORI%=0TONOSH:!O%=K%+I%*NI%:O%=O%+2:P%=P%+2:NEXT:[OPTZ 10 | 2390.NLI4 LDX#39:.NLL1 LDA&480,X:CMP#160:BEQNLI5:LDA#&AD:STA&500,X:.NLI5 DEX:BPLNLL1:RTS 11 | 2392.FLKB BIT&C010:RTS:.NLIN3 JSRTT27:.NLIN4 LDAtext:BMINLI4:LDA#19:BNENLIN2:.NLIN LDA#23:.NLIN5 JSRINCYC:.NLIN2 STAY1:LDA#BLUE:STACOL:LDX#0:STXX1:DEX:STXX2:JMPHLOIN 12 | 2395.HLOIN2 JSREDGES:STYY1:LDA#0:STALSO,Y:JMPHLOIN 13 | 2480\......... 14 | 2580.PIX1 JSRADD:STAYY+1:TXA:STASYL,Y 15 | 2600.PIXEL2 16 | 2610LDAX1:BPLPX1:EOR#&7F:CLC:ADC#1:.PX1 EOR#128:TAX:LDAY1:AND#127:CMP#Y:BCSPXR1:LDAY1:BPLPX2:EOR#&7F:ADC#1:.PX2 STAT:LDA#(Y+1):SBCT 17 | 2612\.... 18 | 2620.PIXEL STYT1:STASC+1:LSRA:LSRA:LSRA:STAT3:TAY:LDASCTBL,Y:STASC:LDASC+1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 19 | 2630LDASCTBX1,X:ASLA:LDYZZ:BMIP%+4:ADC#14:CPY#&50:LDYSCTBX2,X:TAX:BCSPX4:LDATWOS3,X:EOR(SC),Y:STA(SC),Y:LDATWOS3+1,X:BEQPX3:INY:EOR(SC),Y:STA(SC),Y:DEY 20 | 2640.PX3 LDAT2:BEQPX6:LDASC+1:SBC#3:STASC+1 21 | 2650.PX4 LDATWOS3,X:EOR(SC),Y:STA(SC),Y:LDATWOS3+1,X:BEQPX5:INY:EOR(SC),Y:STA(SC),Y:.PX5 LDYT1:.PXR1 RTS 22 | 2660.PX6 STXT2:LDXT3:LDASCTBL-1,X:STASC:LDASCTBH2-1,X:STASC+1:LDXT2:JMPPX4 23 | 2668\.... 24 | 2670.TWOS3 25 | 2672EQUW&0003:EQUW&0006:EQUW&000C:EQUW&0018:EQUW&0030:EQUW&0060:EQUW&0140 26 | 2674EQUW&0007:EQUW&000E:EQUW&001C:EQUW&0038:EQUW&0070:EQUW&0160:EQUW&0340 27 | 2680\......... 28 | 3000.BLINE TXA:ADCK4:STAK6+2:LDAK4+1:ADCT:STAK6+3 29 | 3010LDAFLAG:BEQBL1:INCFLAG:.BL5 LDYLSP:LDA#FF:CMPLSY2-1,Y:BEQBL7:STALSY2,Y:INCLSP:BNEBL7:.BL1 LDAK5:STAXX15:LDAK5+1:STAXX15+1 30 | 3012LDAK5+2:STAXX15+2:LDAK5+3:STAXX15+3 31 | 3014LDAK6:STAXX15+4:LDAK6+1:STAXX15+5 32 | 3016LDAK6+2:STAXX12:LDAK6+3:STAXX12+1 33 | 3040JSRLL145:BCSBL5:LDASWAP:BEQBL9:LDAX1:LDYX2:STAX2:STYX1:LDAY1:LDYY2:STAY2:STYY1:.BL9 34 | 3050LDYLSP:LDALSY2-1,Y:CMP#FF:BNEBL8:LDAX1:STALSX2,Y:LDAY1:STALSY2,Y:INY:.BL8 LDAX2:STALSX2,Y:LDAY2:STALSY2,Y:INY:STYLSP:JSRLOIN 35 | 3051LDAXX13:BNEBL5 36 | 3052.BL7 LDAK6:STAK5:LDAK6+1:STAK5+1:LDAK6+2:STAK5+2:LDAK6+3:STAK5+3:LDACNT:CLC:ADCSTP:STACNT 37 | 3700RTS:.FLIP \LDAMJ\BNEFLIP-1:LDYNOSTM:.FLL1 LDXSY,Y:LDASX,Y:STAY1:STASY,Y:TXA:STAX1:STASX,Y:LDASZ,Y:STAZZ:JSRPIXEL2:DEY:BNEFLL1:RTS 38 | 3800.STARS LDXVIEW:BEQSTARS1:DEX:BNEST11:JMPSTARS6:.ST11 JMPSTARS2 39 | 4000.STARS1 40 | 4010LDYNOSTM:.STL1 JSRDV42:LDAR:LSRP:RORA:LSRP:RORA:ORA#1:STAQ 41 | 4012LDASZL,Y:SBCDELT4:STASZL,Y:LDASZ,Y:STAZZ:SBCDELT4+1:STASZ,Y 42 | 4020JSRMLU1:STAYY+1:LDAP:ADCSYL,Y:STAYY:STAR:LDAY1:ADCYY+1:STAYY+1:STAS 43 | 4030LDASX,Y:STAX1:JSRMLU2:STAXX+1:LDAP:ADCSXL,Y:STAXX:LDAX1:ADCXX+1:STAXX+1 44 | 4050EORALP2+1:JSRMLS1:JSRADD:STAYY+1:STXYY 45 | 4060EORALP2:JSRMLS2:JSRADD:STAXX+1:STXXX 46 | 4070LDXBET1:LDAYY+1:EORBET2+1:JSRMULTS-2:STAQ:JSRMUT2:ASLP:ROLA:STAT:LDA#0:RORA:ORAT:JSRADD:STAXX+1:TXA:STASXL,Y 47 | 4080LDAYY:STAR:LDAYY+1:STAS:\JSRMADSTASSTXR:LDA#0:STAP:LDABETA:EOR#128 48 | 4110JSRPIX1:LDAXX+1:STAX1:STASX,Y:AND#127:CMP#120:BCSKILL1:LDAYY+1:STASY,Y:STAY1:AND#127:CMP#120:BCSKILL1 49 | 4130LDASZ,Y:CMP#16:BCCKILL1:STAZZ 50 | 4140.STC1 JSRPIXEL2:DEY:BEQP%+5:JMPSTL1:RTS 51 | 4150.KILL1 JSRDORND:ORA#4:STAY1:STASY,Y:JSRDORND:ORA#8:STAX1:STASX,Y:JSRDORND:ORA#&90:STASZ,Y:STAZZ:LDAY1:JMPSTC1 52 | 4200.STARS6 53 | 4210LDYNOSTM:.STL6 JSRDV42:LDAR:LSRP:RORA:LSRP:RORA:ORA#1:STAQ 54 | 4220LDASX,Y:STAX1:JSRMLU2:STAXX+1:LDASXL,Y:SBCP:STAXX:LDAX1:SBCXX+1:STAXX+1 55 | 4230JSRMLU1:STAYY+1:LDASYL,Y:SBCP:STAYY:STAR:LDAY1:SBCYY+1:STAYY+1:STAS 56 | 4240LDASZL,Y:ADCDELT4:STASZL,Y:LDASZ,Y:STAZZ:ADCDELT4+1:STASZ,Y 57 | 4250LDAXX+1:EORALP2:JSRMLS1:JSRADD:STAYY+1:STXYY 58 | 4260EORALP2+1:JSRMLS2:JSRADD:STAXX+1:STXXX 59 | 4270LDAYY+1:EORBET2+1:LDXBET1:JSRMULTS-2:STAQ:LDAXX+1:STAS:EOR#128:JSRMUT1:ASLP:ROLA:STAT:LDA#0:RORA:ORAT:JSRADD:STAXX+1:TXA:STASXL,Y 60 | 4280LDAYY:STAR:LDAYY+1:STAS:\EOR#128:\JSRMADSTASSTXR:LDA#0:STAP:LDABETA 61 | 4310JSRPIX1:LDAXX+1:STAX1:STASX,Y:LDAYY+1:STASY,Y:STAY1:AND#127:CMP#110:BCSKILL6 62 | 4330LDASZ,Y:CMP#160:BCSKILL6:STAZZ 63 | 4340.STC6 JSRPIXEL2:DEY:BEQST3:JMPSTL6:.ST3 RTS 64 | 4350.KILL6 JSRDORND:AND#127:ADC#10:STASZ,Y:STAZZ:LSRA:BCSST4:LSRA:LDA#&FC:RORA:STAX1:STASX,Y:JSRDORND:STAY1:STASY,Y:JMPSTC6 65 | 4360.ST4 JSRDORND:STAX1:STASX,Y:LSRA:LDA#230:RORA:STAY1:STASY,Y:BNESTC6 66 | 4900.MAS1 LDAINWK,Y:ASLA:STAK+1:LDAINWK+1,Y:ROLA:STAK+2:LDA#0:RORA:STAK+3:JSRMVT3:STAINWK+2,X:LDYK+1:STYINWK,X:LDYK+2:STYINWK+1,X:AND#127:.MA9 RTS:.m LDA#0:.MAS2 ORAK%+2,Y:ORAK%+5,Y:ORAK%+8,Y:AND#127:RTS 67 | 4940.MAS3 LDAK%+1,Y:JSRSQUA2:STAR:LDAK%+4,Y:JSRSQUA2:ADCR:BCSMA30:STAR:LDAK%+7,Y:JSRSQUA2:ADCR:BCCP%+4:.MA30 LDA#FF:RTS 68 | 6980.wearedocked LDA#205:JSRDETOK:JSRTT67:JMPst6+3 69 | 6990.st4 LDX#9:CMP#25:BCSst3:DEX:CMP#10:BCSst3:DEX:CMP#2:BCSst3:DEX:BNEst3 70 | 7000.STATUS LDA#8:JSRTRADEMODE:JSRTT111:LDA#7:JSRDOXC:LDA#126:JSRNLIN3:LDA#15:LDYQQ12:BNEwearedocked:LDA#230:LDYJUNK:LDXFRIN+2,Y:BEQst6:LDYENERGY:CPY#128:ADC#1:.st6 JSRplf:LDA#125:JSRspc:LDA#19:LDYFIST:BEQst5:CPY#50:ADC#1 71 | 7010.st5 JSRplf:LDA#16:JSRspc:LDATALLY+1:BNEst4:TAX:LDATALLY:LSRA:LSRA:INX:LSRA:BNEP%-2:.st3 TXA:CLC:ADC#21:JSRplf 72 | 7030LDA#18:JSRplf2:LDAESCP:BEQP%+7:LDA#112:JSRplf2:LDABST:BEQP%+7:LDA#111:JSRplf2:LDAECM:BEQP%+7:LDA#&6C:JSRplf2:LDA#113:STAXX4:.stqv TAY:LDXBOMB-113,Y:BEQP%+5:JSRplf2:INCXX4:LDAXX4:CMP#117:BCCstqv 73 | 7040LDX#0:.st STXCNT:LDYLASER,X:BEQst1:TXA:CLC:ADC#96:JSRspc:LDA#103:LDXCNT:LDYLASER,X:CPY#128+POW:BNEP%+4:LDA#104:CPY#Armlas:BNEP%+4:LDA#117:CPY#Mlas:BNEP%+4:LDA#118:JSRplf2:.st1 LDXCNT:INX:CPX#4:BCCst:RTS 74 | 7100.plf2 JSRplf:LDA#6:JMPDOXC 75 | 7400.MVT3 LDAK+3:STAS:AND#128:STAT:EORINWK+2,X:BMIMV13:LDAK+1:CLC:ADCINWK,X:STAK+1:LDAK+2:ADCINWK+1,X:STAK+2:LDAK+3:ADCINWK+2,X:AND#127:ORAT:STAK+3:RTS 76 | 7410.MV13 LDAS:AND#127:STAS:LDAINWK,X:SEC:SBCK+1:STAK+1:LDAINWK+1,X:SBCK+2:STAK+2:LDAINWK+2,X:AND#127:SBCS:ORA#128:EORT:STAK+3:BCSMV14 77 | 7420LDA#1:SBCK+1:STAK+1:LDA#0:SBCK+2:STAK+2:LDA#0:SBCK+3:AND#127:ORAT:STAK+3:.MV14 RTS 78 | 7500.MVS5 LDAINWK+1,X:AND#127:LSRA:STAT:LDAINWK,X:SEC:SBCT:STAR:LDAINWK+1,X:SBC#0:STAS:LDAINWK,Y:STAP:LDAINWK+1,Y:AND#128:STAT:LDAINWK+1,Y:AND#127:LSRA:RORP:LSRA:RORP:LSRA:RORP:LSRA:RORP:ORAT:EORRAT2:STXQ:JSRADD:STAK+1:STXK 79 | 7510LDXQ:LDAINWK+1,Y:AND#127:LSRA:STAT:LDAINWK,Y:SEC:SBCT:STAR:LDAINWK+1,Y:SBC#0:STAS:LDAINWK,X:STAP:LDAINWK+1,X:AND#128:STAT:LDAINWK+1,X:AND#127:LSRA:RORP:LSRA:RORP:LSRA:RORP:LSRA:RORP:ORAT:EOR#128:EORRAT2 80 | 7520STXQ:JSRADD:STAINWK+1,Y:STXINWK,Y:LDXQ:LDAK:STAINWK,X:LDAK+1:STAINWK+1,X:RTS 81 | 7600.TENS EQUD&E87648 82 | 7605.pr2 LDA#3:LDY#0 83 | 7610.TT11 STAU:LDA#0:STAK:STAK+1:STYK+2:STXK+3:.BPRNT LDX#11:STXT:PHP:BCCTT30:DECT:DECU 84 | 7630.TT30 LDA#11:SEC:STAXX17:SBCU:STAU:INCU:LDY#0:STYS:JMPTT36 85 | 7640.TT35 ASLK+3:ROLK+2:ROLK+1:ROLK:ROLS:LDX#3:.tt35 LDAK,X:STAXX15,X:DEX:BPLtt35:LDAS:STAXX15+4 86 | 7650ASLK+3:ROLK+2:ROLK+1:ROLK:ROLS:ASLK+3:ROLK+2:ROLK+1:ROLK:ROLS:CLC:LDX#3:.tt36 LDAK,X:ADCXX15,X:STAK,X:DEX:BPLtt36:LDAXX15+4:ADCS:STAS 87 | 7660LDY#0:.TT36 LDX#3:SEC:.tt37 LDAK,X:SBCTENS,X:STAXX15,X:DEX:BPLtt37:LDAS:SBC#23:STAXX15+4 88 | 7670BCCTT37:LDX#3:.tt38 LDAXX15,X:STAK,X:DEX:BPLtt38:LDAXX15+4:STAS:INY:JMPTT36 89 | 7680.TT37 TYA:BNETT32:LDAT:BEQTT32:DECU:BPLTT34:LDA#32:BNEtt34:.TT32 LDY#0:STYT:CLC:ADC#B:.tt34 JSRTT26 90 | 7700.TT34 DECT:BPLP%+4:INCT:DECXX17:BMIrT10:BNEP%+10:PLP:BCCP%+7:LDA#&2E:JSRTT26:JMPTT35:.rT10 RTS 91 | 8000.DTW1 EQUB32:.DTW2 EQUBFF:.DTW3 EQUB0:.DTW4 brk:.DTW5 brk:.DTW6 brk:.DTW8 EQUBFF 92 | 8010.FEED LDA#12:EQUB&2C 93 | 8020.MT16 LDA#65:]:DTW7=MT16+1:[OPTZ 94 | 8030\ New TT26 entry for right justified text 95 | 8040.DASC:.TT26 STXSC:LDX#FF:STXDTW8:CMP#ASC".":BEQDA8:CMP#ASC":":BEQDA8:CMP#10:BEQDA8:CMP#12:BEQDA8:CMP#32:BEQDA8:INX:.DA8 STXDTW2:LDXSC:BITDTW4:BMIP%+5:JMPCHPR:BITDTW4:BVSP%+6:CMP#12:BEQDA1:LDXDTW5:STABUF,X:LDXSC:INCDTW5:CLC:RTS 96 | 8050.DA1 TXA:PHA:TYA:PHA:.DA5 LDXDTW5:BEQDA6+3:CPX#(LL+1):BCCDA6:LSRSC+1:.DA11 LDASC+1:BMIP%+6:LDA#64:STASC+1:LDY#(LL-1):.DAL1 LDABUF+LL:CMP#32:BEQDA2 97 | 8060.DAL2 DEY:BMIDA11:BEQDA11:LDABUF,Y:CMP#32:BNEDAL2:ASLSC+1:BMIDAL2:STYSC:LDYDTW5:.DAL6 LDABUF,Y:STABUF+1,Y:DEY:CPYSC:BCSDAL6:INCDTW5:\LDA#32:.DAL3 CMPBUF,Y:BNEDAL1:DEY:BPLDAL3:BMIDA11 98 | 8070.DA2 LDX#LL:JSRDAS1:LDA#12:JSRCHPR 99 | 8080LDADTW5:\CLC:SBC#LL:STADTW5:TAX:BEQDA6+3:LDY#0:INX:.DAL4 LDABUF+LL+1,Y:STABUF,Y:INY:DEX:BNEDAL4:BEQDA5 100 | 8090.DAS1 LDY#0:.DAL5 LDABUF,Y:JSRCHPR:INY:DEX:BNEDAL5:.dec27 RTS 101 | 8100.DA6 JSRDAS1:STXDTW5:PLA:TAY:PLA:TAX:LDA#12:.DA7 EQUB&2C 102 | 8190.BELL LDA#7:JMPCHPR 103 | 9450\.......... 104 | 9490\ ............... DIALS .......................... 105 | 9491 106 | 9500.DIALS 107 | 9510LDY#0:LDA#210:STAK:LDX#RED:LDAMCNT:AND#8:ANDFLH:BEQP%+4:LDX#WHITE:STXK+2 108 | 9520LDADELTA:JSRDIS2:LDA#WHITE:STACOL:LDAALP1:LSRA:BITALP2+1:JSRDIS5:LDABET1:ASLA:BITBET2:JSRDIS5 109 | 9530LDAENERGY:LSRA:.DIL1 STAK+1:JSRDIS2:LDAK+1:SEC:SBC#32:BCSP%+4:LDA#0:CPY#7:BNEDIL1 110 | 9540LDA#16:STAK:LDAFSH:JSRDIS1:LDAASH:JSRDIS1 111 | 9550LDAQQ14:JSRDIS1+2:LDAALTIT:JSRDIS1 112 | 9560LDACABTMP:JSRDIS1:LDAGNTMP:JSRDIS1 113 | 9600JMPCOMPAS 114 | 9690\.... 115 | 9700.DIS1 LSRA:LSRA:LSRA:.DIS2 CMP#32:BCCP%+4:LDA#31:LDXdialc1,Y:CMPdialle,Y:BCCDI3:LDXdialc2,Y:.DI3 CPX#FF:BNEDI4:LDXK+2:CLC:.DI4 INY 116 | 9702PHA:CMPdials-1,Y:BNEDI6:TXA:CMPdialc-1,Y:BEQDI8:.DI6 TXA:LDXdialc-1,Y:STAdialc-1,Y:LDAdials-1,Y:JSRDIS7:LDXdialc-1,Y:PLA:STAdials-1,Y 117 | 9708.DIS7 STXCOL:LDXdialY-1,Y:STXY1:LDXK:STXX1:CLC:ADCK:AND#&FE:STAX2:JSRP%+3:JMPMSBARS 118 | 9710.DI8 PLA:.DIR1 RTS 119 | 9712\.... 120 | 9730.DIS5 BPLDI9:EOR#FF:CLC:ADC#1:.DI9 INY:CLC:ADC#224:CMPdials-1,Y:BEQDIR1:PHA:LDAdials-1,Y:BEQP%+5:JSRDIS6:PLA:STAdials-1,Y 121 | 9740.DIS6 STAX1:LDAdialY-1,Y:STAY1:CLC:ADC#6:STAY2:JMPVLOIN 122 | 9742\.... 123 | 9782\... 124 | 9784.dialY EQUB&89:EQUB&90:EQUB&98:EQUB&B9:EQUB&B1:EQUB&A9:EQUB&A1 125 | 9786 EQUB&89:EQUB&91:EQUB&99:EQUB&B1:EQUB&A1:EQUB&A9 126 | 9788.dialle EQUB 28:EQUB 0:EQUB 0:EQUB 16:EQUB 0:EQUB 0:EQUB 0 127 | 9790 EQUB 8:EQUB 8:EQUB 0:EQUB 8:EQUB 24:EQUB 24 128 | 9792.dialc1 EQUBWHITE:EQUBWHITE:EQUBWHITE:EQUBFF:EQUBVIOLET:EQUBVIOLET:EQUBVIOLET 129 | 9794 EQUBFF:EQUBFF:EQUBGREEN:EQUBFF:EQUBBLUE:EQUBBLUE 130 | 9796.dialc2 EQUBFF:EQUBWHITE:EQUBWHITE:EQUBVIOLET:EQUBVIOLET:EQUBVIOLET:EQUBVIOLET 131 | 9798 EQUBVIOLET:EQUBVIOLET:EQUBGREEN:EQUBGREEN:EQUBFF:EQUBFF 132 | 9799\....... 133 | 9800.ESCAPE JSRRES2:LDX#CYL:STXTYPE:JSRFRS1:BCSES1:LDX#CYL2:JSRFRS1:.ES1 LDA#8:STAINWK+27:LDA#&C2:STAINWK+30:LSRA:STAINWK+32:.ESL1 JSRMVEIT:JSRLL9:DECINWK+32:BNEESL1 134 | 9810JSRSCAN:LDA#0:LDX#16:.ESL2 STAQQ20,X:DEX:BPLESL2:STAFIST:STAESCP:\LDATRIBBLE\ORATRIBBLE+1\BEQnosurviv\JSRDORND\AND#7\ORA#1\STATRIBBLE\LDA#0\STATRIBBLE+1\.nosurviv :LDA#70:STAQQ14:JMPGOIN 135 | 9850.HME2 \LDA#CYAN\JSRDOCOL:LDA#14:JSRDETOK:JSRTT103:JSRTT81:LDA#0:STAXX20:.HME3 JSRMT14:JSRcpl:LDXDTW5:LDAINWK+5,X:CMP#13:BNEHME6:.HME4 DEX:LDAINWK+5,X:ORA#32:CMPBUF,X:BEQHME4:TXA:BMIHME5:.HME6 JSRTT20:INCXX20:BNEHME3:JSRTT111:JSRTT103 136 | 9860JSRBOOP\@@:LDA#215:JMPDETOK:\Not found:.HME5 LDAQQ15+3:STAQQ9:LDAQQ15+1:STAQQ10:JSRTT111:JSRTT103:JSRMT15:JMPT95 137 | 9900] 138 | 9910IFZ>4OSCLI("S.ELTB "+STR$~W%+" "+STR$~O%+" "+STR$~L%+" "+STR$~H%) 139 | 9920PRINT" B";:GOTO6 140 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEE.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 7GOTO20 7 | 8*L.ELITED 8 | 9GOTO20 9 | 10*L.ELITEE 10 | 11GOTO20 11 | 12*L.ELITEF 12 | 20REM ELITE AP 13 | 100H%=H%+O%-W%:O%=W%:[OPTZ 14 | 190.cpl LDX#5:.TT53 LDAQQ15,X:STAQQ19,X:DEX:BPLTT53:LDY#3:BITQQ15:BVSP%+3:DEY:STYT:.TT55 LDAQQ15+5:AND#31:BEQP%+7:ORA#128:JSRTT27:JSRTT54:DECT:BPLTT55:LDX#5:.TT56 LDAQQ19,X:STAQQ15,X:DEX:BPLTT56:RTS 15 | 200.cmn LDY#0:.QUL4 LDANAME,Y:CMP#13:BEQypl-1:JSRTT26:INY:BNEQUL4:RTS 16 | 300.ypl BITMJ:BMIypl16:JSRTT62:JSRcpl:.TT62 LDX#5:.TT78 LDAQQ15,X:LDYQQ2,X:STAQQ2,X:STYQQ15,X:DEX:BPLTT78:.ypl16 RTS 17 | 500.tal CLC:LDXGCNT:INX:JMPpr2:.fwl LDA#105:JSRTT68:LDXQQ14:SEC:JSRpr2:LDA#195:JSRplf:.PCASH LDA#119:BNETT27 18 | 510.csh LDX#3:.pc1 LDACASH,X:STAK,X:DEX:BPLpc1:LDA#9:STAU:SEC:JSRBPRNT:LDA#226:.plf JSRTT27:JMPTT67:.TT68 JSRTT27:.TT73 LDA#&3A 19 | 600.TT27 TAX:BEQcsh:BMITT43:DEX:BEQtal:DEX:BEQypl:dex:bneP%+5:JMPcpl:dex:beqcmn:dex:beqfwl:dex:bneP%+7:LDA#128:STAQQ17:RTS:DEX:DEX:BNEP%+5:STXQQ17:RTS:dex:beqcrlf:CMP#&60:BCSex:CMP#14:BCCP%+6:CMP#32:BCCqw:LDXQQ17 20 | 620BEQTT74:BMITT41:BITQQ17:BVSTT46:.TT42 CMP#65:BCCTT44:CMP#&5B:BCSTT44:ADC#32:.TT44 JMPTT26:.TT41 BITQQ17:BVSTT45:CMP#65:BCCTT74:PHA:TXA:ORA#64:STAQQ17:PLA:BNETT44 21 | 630.qw ADC#114:BNEex:.crlf LDA#21:JSRDOXC:JMPTT73:.TT45 CPX#FF:BEQTT48:CMP#65:BCSTT42:.TT46 PHA:TXA:AND#191:STAQQ17:PLA:.TT74 JMPTT26:.TT43 CMP#160:BCSTT47:AND#127:ASLA:TAY:LDAQQ16,Y 22 | 670JSRTT27:LDAQQ16+1,Y:CMP#63:BEQTT48:JMPTT27:.TT47 SBC#160:.ex TAX:LDA#(QQ18 MOD256):STAV:LDA#(QQ18 DIV256):STAV+1:LDY#0:TXA:BEQTT50 23 | 680.TT51 LDA(V),Y:BEQTT49:INY:BNETT51:INCV+1:BNETT51:.TT49 INY:BNETT59:INCV+1:.TT59 DEX:BNETT51:.TT50 24 | 693TYA:PHA:LDAV+1:PHA:LDA(V),Y:EOR#35 25 | 695JSRTT27:PLA:STAV+1:PLA:TAY:INY:BNEP%+4:INCV+1:LDA(V),Y:BNETT50:.TT48 RTS 26 | 930.SWAPPZERO LDX#K3+1:.SWPZL LDA0,X:LDYZPSTORE,X:STAZPSTORE,X:STY0,X:INX:BNESWPZL:RTS 27 | 1990.EX2 LDAINWK+31:ORA#&A0:STAINWK+31:RTS 28 | 2000.DOEXP LDAINWK+31:AND#64:BEQP%+5:JSRPTCLS:LDAINWK+6:STAT:LDAINWK+7:CMP#&20:BCCP%+6:LDA#&FE:BNEyy:ASLT:ROLA:ASLT:ROLA:SEC:ROLA:.yy STAQ:LDY#1:LDA(XX19),Y:STAfrump:ADC#4:BCSEX2 29 | 2040STA(XX19),Y:JSRDVID4:LDAP:CMP#&1C:BCCP%+6:LDA#&FE:BNE`_:ASLR:ROLA:ASLR:ROLA:ASLR:ROLA:.`_ DEY:STA(XX19),Y:LDAINWK+31:AND#&BF:STAINWK+31:AND#8:BEQTT48 30 | 2050LDY#2:LDA(XX19),Y:TAY:.EXL1 LDAXX3-7,Y:STA(XX19),Y:DEY:CPY#6:BNEEXL1:LDAINWK+31:ORA#64:STAINWK+31 31 | 2100.PTCLS LDY#0:LDA(XX19),Y:STAQ:INY:LDA(XX19),Y:BPLP%+4:EOR#FF:LSRA:LSRA:LSRA:LSRA:ORA#1:STAU:INY:LDA(XX19),Y:STATGT:LDARAND+1:PHA 32 | 2110LDY#6:.EXL5 LDX#3:.EXL3 INY:LDA(XX19),Y:STAK3,X:DEX:BPLEXL3:STYCNT 33 | 2130LDY#2:.EXL2 INY:LDA(XX19),Y:EORCNT:STARAND-3,Y:CPY#6:BNEEXL2:LDYU:STYCNT2 34 | 2140.EXL4:OPT FNdornd2:AND#&0C:ORA#&10:STACOL:LDAK3+1:STAR:LDAK3:JSREXS1:BNEEX11:CPX#2*Y-1:BCSEX11:STXY1:LDAK3+3:STAR:LDAK3+2:JSREXS1:BNEEX4:LDAY1:JSRCPIX:.EX4 DECCNT2:BPLEXL4:LDYCNT:CPYTGT:BCCEXL5 35 | 2180PLA:STARAND+1:LDAK%+6:STARAND+3:RTS:.EX11 OPT FNdornd2 :\:JMPEX4 36 | 2200.EXS1 STAS:OPT FNdornd2:ROLA:BCSEX5:JSRFMLTU:ADCR:TAX:LDAS:ADC#0:RTS 37 | 2210.EX5 JSRFMLTU:STAT:LDAR:SBCT:TAX:LDAS:SBC#0:RTS 38 | 2250.exlook EQUB0:EQUB2 39 | 3008.SOS1 JSRmsblob:LDA#127:STAINWK+29:STAINWK+30:LDAtek:AND#2:ORA#128:JMPNWSHP 40 | 3010.SOLAR LDATRIBBLE:BEQnobirths:LDA#0:STAQQ20:STAQQ20+6 \Eat food & Narc:JSRDORND:AND#15:ADCTRIBBLE:ORA#4:ROLA:STATRIBBLE:ROLTRIBBLE+1:BPLnobirths:RORTRIBBLE+1 41 | 3015.nobirths LSRFIST:JSRZINF:LDAQQ15+1:AND#3:ADC#3:STAINWK+8:RORA:STAINWK+2:STAINWK+5 42 | 3020JSRSOS1:LDAQQ15+3:AND#7:ORA#129:STAINWK+8:LDAQQ15+5:AND#3:STAINWK+2:STAINWK+1:LDA#0:STAINWK+29:STAINWK+30:LDA#&81:JSRNWSHP 43 | 3600.NWSTARS LDAQQ11:\ORAMJ:BNEWPSHPS:.nWq LDYNOSTM:.SAL4 JSRDORND:ORA#8:STASZ,Y:STAZZ:JSRDORND:STASX,Y:STAX1:JSRDORND:STASY,Y:STAY1:JSRPIXEL2:DEY:BNESAL4:\\JSRPBFL 44 | 3710.WPSHPS LDX#0:.WSL1 LDAFRIN,X:BEQWS2:BMIWS1:STATYPE:JSRGINF:LDY#31 45 | 3730.WSL2 LDA(INF),Y:STAINWK,Y:DEY:BPLWSL2:STXXSAV:JSRSCAN:LDXXSAV:LDY#31:LDA(INF),Y:AND#&A7:STA(INF),Y:.WS1 INX:BNEWSL1:.WS2 LDX#0:STXLSP:DEX:STXLSX2:STXLSY2 46 | 3740.FLFLLS LDY#199:LDA#0:.SAL6 STALSO,Y:DEY:BNESAL6:DEY:STYLSX:RTS 47 | 3810.DET1 RTS\X is input-undraw dials 48 | 3900DEX:RTS:.SHD INX:BEQSHD-2:.DENGY DECENERGY:PHP:BNEpaen2:INCENERGY:.paen2 PLP:RTS 49 | 4000.COMPAS JSRDOT:LDASSPR:BNESP1:JSRSPS1:JMPSP2:.SPS2 ASLA:TAX:LDA#0:RORA:TAY:LDA#20 \14:STAQ:TXA:JSRDVID4:LDXP 50 | 4080TYA:BMILL163:LDY#0:RTS:.LL163 LDY#FF:TXA:EOR#FF:TAX:INX:.COR1 RTS 51 | 4090.SPS4 LDX#8:.SPL1 LDAK%+NI%,X:STAK3,X:DEX:BPLSPL1:JMPTAS2 52 | 4100.SP1 JSRSPS4:.SP2 LDAXX15:JSRSPS2:TXA:ADC#195\X-1:STACOMX:LDAXX15+1:JSRSPS2:STXT:LDA#148 \156:SBCT:STACOMY 53 | 4130LDA#&60:LDXXX15+2:BPLP%+3:LSRA:STACOMC 54 | 4250.DOT LDACOMC:BEQCOR1:STAZZ:LDACOMY:LDXCOMX:JMPPIXEL 55 | 4280\.... 56 | 4300.OOPS STAT:LDX#0:LDY#8:LDA(INF),Y:BMIOO1:LDAFSH:SBCT:BCCOO2:STAFSH:RTS:.OO2 LDX#0:STXFSH:BCCOO3:.OO1 LDAASH:SBCT:BCCOO5:STAASH:RTS:.OO5 LDX#0:STXASH:.OO3 ADCENERGY:STAENERGY:BEQP%+4:BCSP%+5:JMPDEATH:JSREXNO3:JMPOUCH 57 | 4410.SPS3 LDAK%+1,X:STAK3,X:LDAK%+2,X:TAY:AND#127:STAK3+1,X:TYA:AND#128:STAK3+2,X:RTS 58 | 4480.NWSPS JSRSPBLB:LDX#&81:STXINWK+32:LDX#0:STXINWK+30:STXNEWB:\STXINWK+31:STXFRIN+1:DEX:STXINWK+29:LDX#10:JSRNwS1:JSRNwS1:JSRNwS1 59 | 4484LDAspasto:STAXX21+2*SST-2:LDAspasto+1:STAXX21+2*SST-1:LDAtek:CMP#10:BCCnotadodo:LDAXX21+2*DOD-2:STAXX21+2*SST-2:LDAXX21+2*DOD-1:STAXX21+2*SST-1:.notadodo 60 | 4490LDA#(LSO MOD256):STAINWK+33:LDA#(LSO DIV256):STAINWK+34:LDA#SST 61 | 4500.NWSHP STAT:LDX#0:.NWL1 LDAFRIN,X:BEQNW1:INX:CPX#NOSH:BCCNWL1:.NW3 CLC:RTS 62 | 4510.NW1 JSRGINF:LDAT:BMINW2:ASLA:TAY:LDAXX21-1,Y:BEQNW3:STAXX0+1:LDAXX21-2,Y:STAXX0:CPY#2*SST:BEQNW6:LDY#5:LDA(XX0),Y:STAT1:LDASLSP:SEC:SBCT1:STAINWK+33:LDASLSP+1:SBC#0:STAINWK+34 63 | 4530LDAINWK+33:\SEC:SBCINF:TAY:LDAINWK+34:SBCINF+1:BCCNW3+1:BNENW4:CPY#NI%:BCCNW3+1:.NW4 64 | 4550LDAINWK+33:STASLSP:LDAINWK+34:STASLSP+1:.NW6 LDY#14:LDA(XX0),Y:STAINWK+35:LDY#19:LDA(XX0),Y:AND#7:STAINWK+31 65 | 4560LDAT:.NW2 STAFRIN,X:TAX:BMINW8:CPX#HER:BEQgangbang:CPX#JL:BCCNW7:CPX#JH:BCSNW7:.gangbang INCJUNK:.NW7 INCMANY,X:.NW8 LDYT:LDAE%-1,Y:AND#&6F:ORANEWB:STANEWB:LDY#NI%-1:.NWL3 LDAINWK,Y:STA(INF),Y:DEY:BPLNWL3:SEC:RTS 66 | 4600.NwS1 LDAINWK,X:EOR#128:STAINWK,X:INX:INX:RTS 67 | 4710.ABORT LDX#FF:.ABORT2 STXMSTG:LDXNOMSL:JSRMSBAR:STYMSAR:RTS 68 | 4899.msbpars EQUB4:EQUD0 69 | 5000.PROJ LDAINWK:STAP:LDAINWK+1:STAP+1:LDAINWK+2:JSRPLS6:BCSPL2-1:LDAK:ADC#X:STAK3:TXA:ADC#0:STAK3+1 70 | 5010LDAINWK+3:STAP:LDAINWK+4:STAP+1:LDAINWK+5:EOR#128:JSRPLS6:BCSPL2-1:LDAK:ADC#Y:STAK4:TXA:ADC#0:STAK4+1:CLC:RTS 71 | 5020.PL2 LDATYPE:LSRA:BCSP%+5:JMPWPLS2:JMPWPLS 72 | 5040.PLANET LDAINWK+8:\BMIPL2:CMP#48:BCSPL2:ORAINWK+7:BEQPL2:JSRPROJ:BCSPL2 73 | 5090LDA#96:STAP+1:LDA#0:STAP:JSRDVID3B2:LDAK+1:BEQPL82:LDA#&F8:STAK:.PL82 74 | 5110LDATYPE:LSRA:BCCPL9:JMPSUN:.PL9 JSRWPLS2:JMPCIRCLE\BCSPL20\LDAK+1\BEQPL25\.PL20 RTS 75 | 5180\......... 76 | 5410.PLF3M3 JMPWPLS:.PLF3 TXA:EOR#FF:CLC:ADC#1:TAX:.PLF17 LDA#FF:JMPPLF5 77 | 5430.SUN LDA#RED:STACOL:LDA#1:STALSX:JSRCHKON:BCSPLF3M3:LDA#0:LDXK:CPX#&60:ROLA:CPX#&28:ROLA:CPX#&10:ROLA 78 | 5450.PLF18 STACNT:LDAYx2M1:LDXP+2:BNEPLF2:CMPP+1:BCCPLF2:LDAP+1:BNEPLF2:LDA#1:.PLF2 STATGT 79 | 5460LDAYx2M1:SEC:SBCK4:TAX:LDA#0:SBCK4+1:BMIPLF3:BNEPLF4:INX:DEX:BEQPLF17:CPXK:BCCPLF5:.PLF4 LDXK:LDA#0:.PLF5 STXV:STAV+1 80 | 5470LDAK:JSRSQUA2:STAK2+1:LDAP:STAK2:LDYYx2M1:LDASUNX:STAYY:LDASUNX+1:STAYY+1:.PLFL2 CPYTGT:BEQPLFL:LDALSO,Y:BEQPLF13:JSRHLOIN2:.PLF13 DEY:BNEPLFL2 81 | 5480.PLFL LDAV:JSRSQUA2:STAT:LDAK2:SEC:SBCP:STAQ:LDAK2+1:SBCT:STAR:STYY1:JSRLL5:LDYY1:JSRDORND:ANDCNT:CLC:ADCQ:BCCPLF44:LDA#FF:.PLF44 82 | 5490LDXLSO,Y:STALSO,Y:BEQPLF11:LDASUNX:STAYY:LDASUNX+1:STAYY+1:TXA:JSREDGES:LDAX1:STAXX:LDAX2:STAXX+1 83 | 5500LDAK3:STAYY:LDAK3+1:STAYY+1:LDALSO,Y:JSREDGES:BCSPLF23:LDAX2:LDXXX:STXX2:STAXX:JSRHLOIN:.PLF23 LDAXX:STAX1:LDAXX+1:STAX2:.PLF16 JSRHLOIN:.PLF6 84 | 5530DEY:BEQPLF8:LDAV+1:BNEPLF10:DECV:BNEPLFL:DECV+1:.PLFLS JMPPLFL 85 | 5535.PLF11 LDXK3:STXYY:LDXK3+1:STXYY+1:JSREDGES:BCCPLF16:LDA#0:STALSO,Y:BEQPLF6 86 | 5540.PLF10 LDXV:INX:STXV:CPXK:BCCPLFLS:BEQPLFLS:LDASUNX:STAYY:LDASUNX+1:STAYY+1:.PLFL3 LDALSO,Y:BEQPLF9:JSRHLOIN2 87 | 5550.PLF9 DEY:BNEPLFL3:.PLF8 CLC:LDAK3:STASUNX:LDAK3+1:STASUNX+1:.RTS2 RTS 88 | 5600.CIRCLE JSRCHKON:BCSRTS2 89 | 5610LDA#0:STALSX2 90 | 5700LDXK:LDA#8:CPX#8:BCCPL89:LSRA:CPX#60:BCCPL89:LSRA:.PL89 STASTP:.CIRCLE2 LDX#FF:STXFLAG:INX:STXCNT:.PLL3 91 | 5710LDACNT:JSRFMLTU2:LDX#0:STXT:LDXCNT:CPX#33:BCCPL37:EOR#FF:ADC#0:TAX:LDA#FF:ADC#0:STAT:TXA:CLC 92 | 5720.PL37 ADCK3:STAK6:LDAK3+1:ADCT:STAK6+1 93 | 5730LDACNT:CLC:ADC#16:JSRFMLTU2:TAX:LDA#0:STAT:LDACNT:ADC#15:AND#63:CMP#33:BCCPL38:TXA:EOR#FF:ADC#0:TAX:LDA#FF:ADC#0:STAT:CLC 94 | 5740.PL38 JSRBLINE:CMP#65:BCSP%+5:JMPPLL3:CLC:RTS 95 | 5750.WPLS2 LDYLSX2:BNEWP1:.WPL1 CPYLSP:BCSWP1:LDALSY2,Y:CMP#FF:BEQWP2:STAY2:LDALSX2,Y:STAX2:JSRLOIN:INY:LDASWAP:BNEWPL1 96 | 5760LDAX2:STAX1:LDAY2:STAY1:JMPWPL1:.WP2 INY:LDALSX2,Y:STAX1:LDALSY2,Y:STAY1:INY:JMPWPL1:.WP1 LDA#1:STALSP:LDA#FF:STALSX2:RTS 97 | 5790.WPLS LDALSX:BMIWPLS-1:LDASUNX:STAYY:LDASUNX+1:STAYY+1:LDY#2*Y-1:.WPL2 LDALSO,Y:BEQP%+5:JSRHLOIN2:DEY:BNEWPL2:DEY:STYLSX:RTS 98 | 5800.EDGES STAT:CLC:ADCYY:STAX2:LDAYY+1:ADC#0:BMIED1:BEQP%+6:LDA#FF:STAX2 99 | 5810LDAYY:SEC:SBCT:STAX1:LDAYY+1:SBC#0:BNEED3:CLC:RTS 100 | 5820.ED3 BPLED1:LDA#0:STAX1:CLC:RTS:.ED1 LDA#0:STALSO,Y:SEC:RTS 101 | 5850.CHKON LDAK3:CLC:ADCK:LDAK3+1:ADC#0:BMIPL21:LDAK3:SEC:SBCK:LDAK3+1:SBC#0:BMIPL31:BNEPL21:.PL31 102 | 5860LDAK4:CLC:ADCK:STAP+1:LDAK4+1:ADC#0:BMIPL21:STAP+2:LDAK4:SEC:SBCK:TAX:LDAK4+1:SBC#0:BMIPL44:BNEPL21:CPXYx2M1:RTS:.PL21 SEC:RTS 103 | 5930.PLS6 JSRDVID3B2:LDAK+3:AND#127:ORAK+2:BNEPL21:LDXK+1:CPX#4:BCSPL6:LDAK+3:\CLC:BPLPL6:LDAK:EOR#FF:ADC#1:STAK:TXA:EOR#FF:ADC#0:TAX:.PL44 CLC:.PL6 RTS 104 | 7000.YESNO JSRt:CMP#ASC"Y":BEQPL6:CMP#ASC"N":BNEYESNO:CLC:RTS 105 | 7200.TT17 LDAQQ11:BNETT17afterall:JSRDOKEY:TXA:RTS:.TT17afterall JSRDOKEY:LDAJSTK:BEQTJ1 106 | 7210LDAJSTY:JSRTJS1:TAY:LDAJSTX:EOR#FF:JSRTJS1:TAX:LDAthiskey:RTS 107 | 7250.TJ1 LDAthiskey:LDX#0:LDY#0:CMP#8:BNEP%+3:DEX:CMP#21:BNEP%+3:INX:CMP#10:BNEP%+3:DEY:CMP#11:BNEP%+3:INY:RTS 108 | 7260.TJS1 LSRA:LSRA:LSRA:LSRA:LSRA:ADC#0:SBC#3:RTS 109 | 9500]:PRINT" E"; 110 | 9710IFZ>4OSCLI("S.ELTE "+STR$~W%+" "+STR$~O%+" "+STR$~L%+" "+STR$~H%) 111 | 9720GOTO12 112 | 9999DEFFNdornd2:[OPTZ:CLC:LDARAND:ROLA:TAX:ADCRAND+2:STARAND:STXRAND+2:LDARAND+1:TAX:ADCRAND+3:STARAND+1:STXRAND+3:]:=Z 113 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEG.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 7GOTO20 7 | 8*L.ELITED 8 | 9GOTO20 9 | 10*L.ELITEE 10 | 11GOTO20 11 | 12*L.ELITEF 12 | 13GOTO20 13 | 14*L.ELITEG 14 | 15GOTO20 15 | 16*L.ELITEH 16 | 20REM ELITE AP 17 | 100H%=H%+O%-W%:O%=W% 18 | 800[OPTZ 19 | 7000.SHPPT JSRPROJ:ORAK3+1:BNEnono:LDAK4:CMP#Y*2-2:BCSnono:JSRShpt:LDAK4:CLC:ADC#1:JSRShpt:LDA#8:ORAXX1+31:STAXX1+31:JMPLSCLR:.nono lda#&F7:andXX1+31:staXX1+31:JMPLSCLR 20 | 7010.Shpt STAXX15+1:STAXX15+3:LDAK3:STAXX15:CLC:ADC#3:BCCP%+4:LDA#FF:STAXX15+2:JMPLSPUT 21 | 8040.LL5 \2BSQRT Q=SQR(RQ) 22 | 8045LDYR:LDAQ:STAS:LDX#0:STXQ:LDA#8:STAT:.LL6 CPXQ:BCCLL7:BNEP%+6:CPY#&40:BCCLL7:TYA:SBC#&40:TAY:TXA:SBCQ:TAX:.LL7 ROLQ:ASLS:TYA:ROLA:TAY:TXA:ROLA:TAX:ASLS:TYA:ROLA:TAY:TXA:ROLA:TAX:DECT:BNELL6:RTS 23 | 8065.LL28 \BFRDIV R=A*256/Q 24 | 8066CMPQ:BCSLL2:STAwidget:TAX:BEQLLfix:LDAlogL,X:LDXQ:SEC:SBClogL,X:LDXwidget:LDAlog,X:LDXQ:SBClog,X:BCSLL2:TAX:LDAalogh,X:.LLfix STAR:RTS 25 | 8070\LL28 CMPQ:BCSLL2:LDX#254:STXR:.LL31 ASLA:BCSLL29:CMPQ:BCCP%+4:SBCQ:ROLR:BCSLL31:RTS:.LL29 SBCQ:SEC:ROLR:BCSLL31:LDAR:RTS:.LL2 LDA#FF:STAR:RTS 26 | 8085.LL38 \BADD(S)A=R+Q(SA) 27 | 8090EORS:BMILL39:LDAQ:CLC:ADCR:RTS:.LL39 LDAR:SEC:SBCQ 28 | 8095BCCLL40:CLC:RTS:.LL40 PHA:LDAS:EOR#128:STAS:PLA:EOR#255:ADC#1:RTS 29 | 8100.LL51 \XX12=XX15.XX16 30 | 8105LDX#0:LDY#0:.ll51 LDAXX15:STAQ:LDAXX16,X:JSRFMLTU:STAT:LDAXX15+1:EORXX16+1,X:STAS:LDAXX15+2 31 | 8115STAQ:LDAXX16+2,X:JSRFMLTU:STAQ:LDAT:STAR:LDAXX15+3 32 | 8120EORXX16+3,X:JSRLL38:STAT:LDAXX15+4:STAQ:LDAXX16+4,X:JSRFMLTU:STAQ:LDAT:STAR:LDAXX15+5:EORXX16+5,X 33 | 8130JSRLL38:STAXX12,Y:LDAS:STAXX12+1,Y:INY:INY:TXA:CLC:ADC#6:TAX:CMP#17:BCCll51:RTS 34 | 8132.LL25 JMPPLANET 35 | 8134 36 | 8135.LL9 \ENTRY 37 | 8137LDATYPE:BMILL25 38 | 8140LDA#31:STAXX4:LDY#1:STYLSNUM:DEY:LDA#8:BITXX1+31:BNEP%+5:LDA#0:EQUB&2C:LDA(XX19),Y:STALSNUM2:LDANEWB:BMIEE51:LDA#32:BITXX1+31:BNEEE28:BPLEE28 39 | 8143\Initiate explosion 40 | 8144ORAXX1+31:AND#&3F:STAXX1+31:LDA#0:LDY#28:STA(INF),Y:LDY#30:STA(INF),Y:JSREE51:LDY#1:LDA#18:STA(XX19),Y:LDY#7:LDA(XX0),Y:LDY#2:STA(XX19),Y 41 | 8146.EE55 INY:JSRDORND:STA(XX19),Y:CPY#6:BNEEE55:.EE28 42 | 8150LDAXX1+8:.EE49 BPLLL10:.LL14 LDAXX1+31:AND#32:BEQEE51:LDAXX1+31:AND#&F7:STAXX1+31:JMPDOEXP:.EE51 43 | 8155LDA#8:BITXX1+31:BEQLL10-1:EORXX1+31:STAXX1+31:JMPLSCLR 44 | 8165RTS:.LL10 45 | 8175LDAXX1+7:CMP#&C0:BCSLL14:LDAXX1:CMPXX1+6:LDAXX1+1:SBCXX1+7:BCSLL14:LDAXX1+3:CMPXX1+6:LDAXX1+4:SBCXX1+7:BCSLL14 46 | 8205LDY#6:LDA(XX0),Y:TAX:LDA#255:STAXX3,X:STAXX3+1,X 47 | 8215LDAXX1+6:STAT:LDAXX1+7:LSRA:RORT:LSRA:RORT:LSRA:RORT:LSRA:BNELL13:LDAT:RORA:LSRA:LSRA:LSRA:STAXX4 48 | 8225BPLLL17:.LL13 LDY#13:LDA(XX0),Y:CMPXX1+7:BCSLL17:LDA#32:ANDXX1+31:BNELL17:JMPSHPPT:.LL17 49 | 8275LDX#5:.LL15 LDAXX1+21,X:STAXX16,X:LDAXX1+15,X:STAXX16+6,X:LDAXX1+9,X:STAXX16+12,X:DEX:BPLLL15 50 | 8290LDA#197 \NORM:STAQ:LDY#16:.LL21 LDAXX16,Y:ASLA:LDAXX16+1,Y 51 | 8295ROLA:JSRLL28:LDXR:STXXX16,Y:DEY:DEY:BPLLL21 52 | 8300LDX#8:.ll91 LDAXX1,X:STAXX18,X:DEX:BPLll91 53 | 8315LDA#255:STAXX2+15 54 | 8320LDY#12:LDAXX1+31:AND#32:BEQEE29:LDA(XX0),Y:LSRA:LSRA:TAX:LDA#FF:.EE30 STAXX2,X:DEX:BPLEE30:INX:STXXX4:.LL41 JMPLL42:.EE29 LDA(XX0),Y:BEQLL41:STAXX20 55 | 8330\DtProd^XX2 56 | 8335LDY#18:LDA(XX0),Y:TAX:LDAXX18+7:.LL90 TAY:BEQLL91:INX:LSRXX18+4:RORXX18+3:LSRXX18+1:RORXX18:LSRA:RORXX18+6:TAY:BNELL90+3:.LL91 STXXX17:LDAXX18+8 57 | 8350STAXX15+5:LDAXX18:STAXX15:LDAXX18+2:STAXX15+1:LDAXX18+3:STAXX15+2:LDAXX18+5:STAXX15+3:LDAXX18+6:STAXX15+4:JSRLL51:LDAXX12:STAXX18:LDAXX12+1:STAXX18+2:LDAXX12+2 58 | 8365STAXX18+3:LDAXX12+3:STAXX18+5:LDAXX12+4:STAXX18+6:LDAXX12+5:STAXX18+8 59 | 8375LDY#4:LDA(XX0),Y:CLC:ADCXX0:STAV:LDY#17:LDA(XX0),Y:ADCXX0+1:STAV+1:LDY#0 60 | 8385.LL86 LDA(V),Y:STAXX12+1:AND#31:CMPXX4:BCSLL87 61 | 8390TYA:LSRA:LSRA:TAX:LDA#255:STAXX2,X:TYA:ADC#4 62 | 8395TAY:JMPLL88:.LL87 LDAXX12+1:ASLA:STAXX12+3:ASLA:STAXX12+5 63 | 8400INY:LDA(V),Y:STAXX12:INY:LDA(V),Y:STAXX12+2:INY:LDA(V),Y 64 | 8405STAXX12+4:LDXXX17:CPX#4:BCCLL92:.LL143 65 | 8410\Fce ofst<** 139 | 9065.LL118 \move XX15,XX15+2 to screen-grad.XX12+2 140 | 9070LDAXX15+1:BPLLL119:STAS:JSRLL120 \ X1<0 141 | 9075TXA:CLC:ADCXX15+2:STAXX15+2:TYA:ADCXX15+3:STAXX15+3 142 | 9080LDA#0:STAXX15:STAXX15+1:TAX 143 | 9085.LL119 BEQLL134:STAS:DECS:JSRLL120 \ X1>255 144 | 9090TXA:CLC:ADCXX15+2:STAXX15+2:TYA:ADCXX15+3:STAXX15+3 145 | 9095LDX#FF:STXXX15:INX:STXXX15+1 146 | 9100.LL134 LDAXX15+3:BPLLL135:STAS:LDAXX15+2:STAR \ Y1<0 147 | 9105JSRLL123:TXA:CLC:ADCXX15:STAXX15:TYA:ADCXX15+1:STAXX15+1 148 | 9110LDA#0:STAXX15+2:STAXX15+3 149 | 9115.LL135 \BNELL139:LDAXX15+2:SEC:SBC#Y*2:STAR \ Y1>191 150 | 9120LDAXX15+3:SBC#0:STAS:BCCLL136:.LL139 JSRLL123:TXA:CLC:ADCXX15 151 | 9130STAXX15:TYA:ADCXX15+1:STAXX15+1:LDA#Y*2-1:STAXX15+2:LDA#0:STAXX15+3:.LL136 RTS 152 | 9140\ YX=SR*M/256 - dedicated for CLIP 153 | 9142.LL120 LDAXX15:STAR 154 | 9145\.LL120:JSRLL129:PHA:LDXT:BNELL121:.LL122 155 | 9160LDA#0:TAX:TAY:LSRS:RORR:ASLQ:BCCLL126:.LL125 TXA:CLC 156 | 9165ADCR:TAX:TYA:ADCS:TAY:.LL126 LSRS:RORR:ASLQ:BCSLL125 157 | 9170BNELL126:PLA:BPLLL133:RTS 158 | 9180\ YX=SR*256/M (M=grad.) 159 | 9185.LL123 JSRLL129:PHA:LDXT:BNELL122:.LL121 160 | 9200LDA#255:TAY:ASLA:TAX:.LL130 ASLR:ROLS:LDAS:BCSLL131 161 | 9205CMPQ:BCCLL132:.LL131 SBCQ:STAS:LDAR:SBC#0:STAR:SEC 162 | 9210.LL132 TXA:ROLA:TAX:TYA:ROLA:TAY:BCSLL130:PLA:BMILL128 163 | 9215.LL133 TXA:EOR#FF:\CLC:ADC#1:TAX:TYA:EOR#FF:ADC#0:TAY:.LL128 RTS 164 | 9216.LL129 LDXXX12+2:STXQ:LDAS:BPLLL127:LDA#0:SEC:SBCR:STAR:LDAS:PHA:EOR#255:ADC#0:STAS:PLA:.LL127 EORXX12+3:RTS 165 | 9220.LL145:.CLIP 166 | 9222LDA#0:STASWAP 167 | 9224LDAXX15+5:.CLIP2 LDX#Y*2-1:ORAXX12+1:BNELL107:CPXXX12 168 | 9226BCCLL107:LDX#0:.LL107 STXXX13:LDAXX15+1:ORAXX15+3:BNELL83 169 | 9228LDA#Y*2-1:CMPXX15+2:BCCLL83 170 | 9230LDAXX13:BNELL108:.LL146 LDAXX15+2 171 | 9232STAXX15+1:LDAXX15+4:STAXX15+2:LDAXX12:STAXX15+3:CLC:RTS 172 | 9234.LL109 SEC:RTS:.LL108 LSRXX13:.LL83 173 | 9236LDAXX13:BPLLL115 174 | 9238LDAXX15+1:ANDXX15+5:BMILL109:LDAXX15+3:ANDXX12+1:BMILL109 175 | 9240LDXXX15+1:DEX:TXA:LDXXX15+5:DEX:STXXX12+2:ORAXX12+2 176 | 9242BPLLL109:LDAXX15+2:CMP#Y*2:LDAXX15+3:SBC#0:STAXX12+2 177 | 9244LDAXX12:CMP#Y*2:LDAXX12+1:SBC#0:ORAXX12+2:BPLLL109 178 | 9246.LL115 TYA:PHA:LDAXX15+4:SEC:SBCXX15:STAXX12+2:LDAXX15+5 179 | 9248SBCXX15+1:STAXX12+3:LDAXX12:SEC:SBCXX15+2:STAXX12+4 180 | 9250LDAXX12+1:SBCXX15+3:STAXX12+5:EORXX12+3:STAS 181 | 9252LDAXX12+5:BPLLL110:LDA#0:SEC:SBCXX12+4:STAXX12+4:LDA#0:SBCXX12+5:STAXX12+5 182 | 9254.LL110 LDAXX12+3:BPLLL111:SEC:LDA#0:SBCXX12+2:STAXX12+2:LDA#0:SBCXX12+3 183 | 9256\GETgrad 184 | 9258.LL111 TAX:BNELL112:LDXXX12+5:BEQLL113:.LL112 LSRA:RORXX12+2 185 | 9260LSRXX12+5:RORXX12+4:JMPLL111:.LL113 STXT:LDAXX12+2 186 | 9262CMPXX12+4:BCCLL114:STAQ:LDAXX12+4:JSRLL28 187 | 9264 \ Use Y/X grad. 188 | 9266JMPLL116:.LL114 LDAXX12+4:STAQ:LDAXX12+2:JSRLL28 189 | 9268 \ Use X/Y grad. 190 | 9270DECT:.LL116 LDAR:STAXX12+2:LDAS:STAXX12+3 191 | 9272LDAXX13:BEQLL138:BPLLLX117:.LL138 JSRLL118 192 | 9274LDAXX13:BPLLL124 193 | 9276.LL117 LDAXX15+1:ORAXX15+3:BNELL137:LDAXX15+2:CMP#Y*2 194 | 9278BCSLL137:.LLX117 LDXXX15:LDAXX15+4:STAXX15:STXXX15+4:LDAXX15+5 195 | 9280LDXXX15+1:STXXX15+5:STAXX15+1:LDXXX15+2:LDAXX12:STAXX15+2 196 | 9282STXXX12:LDAXX12+1:LDXXX15+3:STXXX12+1:STAXX15+3:JSRLL118 197 | 9284DECSWAP 198 | 9286.LL124 PLA:TAY:JMPLL146:.LL137 PLA:TAY:SEC:RTS 199 | 9350.LSCLR LDYLSNUM:.LSC1 CPYLSNUM2:BCSLSC2:LDA(XX19),Y:INY:STAXX15:LDA(XX19),Y:INY:STAXX15+1:LDA(XX19),Y:INY:STAXX15+2:LDA(XX19),Y:INY:STAXX15+3:JSRLOIN:JMPLSC1:.LSC2 LDALSNUM:LDY#0:STA(XX19),Y:.LSC3 RTS 200 | 9360.LSPUT LDYLSNUM:CPYLSNUM2:PHP:LDX#3:.LSC4 LDAXX15,X:STAXX12,X:DEX:BPLLSC4 201 | 9365JSRLOIN:LDA(XX19),Y:STAXX15:LDAXX12:STA(XX19),Y:INY:LDA(XX19),Y:STAXX15+1:LDAXX12+1:STA(XX19),Y:INY:LDA(XX19),Y:STAXX15+2:LDAXX12+2:STA(XX19),Y:INY:LDA(XX19),Y:STAXX15+3:LDAXX12+3:STA(XX19),Y:INY:STYLSNUM:PLP:BCSLSC3:JMPLOIN 202 | 9500] 203 | 9530PRINT" G"; 204 | 9710IFZ>4OSCLI"SAVE ELTG "+STR$~W%+" "+STR$~O%+" "+STR$~S%+" "+STR$~H% 205 | 9720GOTO16 206 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEH.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 7GOTO20 7 | 8*L.ELITED 8 | 9GOTO20 9 | 10*L.ELITEE 10 | 11GOTO20 11 | 12*L.ELITEF 12 | 13GOTO20 13 | 14*L.ELITEG 14 | 15GOTO20 15 | 16*L.ELITEH 16 | 17GOTO20 17 | 18*L.ELITEI 18 | 20REM ELITE AP 19 | 100H%=H%+O%-W%:O%=W% 20 | 1000[OPTZ 21 | 7000.MVEIT LDAINWK+31:AND#&A0:BNEMV30 22 | 7011LDAMCNT:EORXSAV:AND#15:BNEMV3:JSRTIDY:.MV3 LDXTYPE:BPLP%+5:JMPMV40:LDAINWK+32:BPLMV30:CPX#MSL:BEQMV26 23 | 7014LDAMCNT:EORXSAV:AND#7:BNEMV30:.MV26 JSRTACTICS:.MV30 JSRSCAN 24 | 7020LDAINWK+27:ASLA:ASLA:STAQ:LDAINWK+10:AND#127:JSRFMLTU:STAR:LDAINWK+10:LDX#0:JSRMVT1-2 25 | 7025LDAINWK+12:AND#127:JSRFMLTU:STAR:LDAINWK+12:LDX#3:JSRMVT1-2:LDAINWK+14:AND#127:JSRFMLTU:STAR:LDAINWK+14:LDX#6:JSRMVT1-2 26 | 7030LDAINWK+27:CLC:ADCINWK+28:BPLP%+4:LDA#0:LDY#15:CMP(XX0),Y:BCCP%+4:LDA(XX0),Y:STAINWK+27:LDA#0:STAINWK+28 27 | 7040LDXALP1:LDAINWK:EOR#FF:STAP:LDAINWK+1:JSRMLTU2-2:STAP+2:LDAALP2+1:EORINWK+2:LDX#3:JSRMVT6 28 | 7045STAK2+3:LDAP+1:STAK2+1:EOR#FF:STAP:LDAP+2:STAK2+2\K2=Y-aX 29 | 7050LDXBET1:JSRMLTU2-2:STAP+2:LDAK2+3:EORBET2:LDX#6:JSRMVT6:STAINWK+8:LDAP+1:STAINWK+6:EOR#FF:STAP:LDAP+2:STAINWK+7\Z=Z+bK2 30 | 7060JSRMLTU2:STAP+2:LDAK2+3:STAINWK+5:EORBET2:EORINWK+8:BPLMV43:LDAP+1:ADCK2+1:STAINWK+3:LDAP+2:ADCK2+2:STAINWK+4:JMPMV44:.MV43 31 | 7070LDAK2+1:SBCP+1:STAINWK+3:LDAK2+2:SBCP+2:STAINWK+4:BCSMV44:LDA#1:SBCINWK+3:STAINWK+3:LDA#0:SBCINWK+4:STAINWK+4:LDAINWK+5:EOR#128:STAINWK+5 32 | 7080.MV44\Y=K2-bZ:LDXALP1:LDAINWK+3:EOR#FF:STAP:LDAINWK+4:JSRMLTU2-2:STAP+2:LDAALP2:EORINWK+5:LDX#0:JSRMVT6:STAINWK+2:LDAP+2:STAINWK+1:LDAP+1:STAINWK\X=X+aY 33 | 7110.MV45 LDADELTA:STAR:LDA#128:LDX#6:JSRMVT1:LDATYPE:AND#&81:CMP#&81:BNEP%+3:RTS \Z=Z-d 34 | 7120LDY#9:JSRMVS4:LDY#15:JSRMVS4:LDY#21:JSRMVS4:LDAINWK+30:AND#128:STARAT2:LDAINWK+30:AND#127:BEQMV8:CMP#127:SBC#0:ORARAT2:STAINWK+30 35 | 7130LDX#15:LDY#9:JSRMVS5:LDX#17:LDY#11:JSRMVS5:LDX#19:LDY#13:JSRMVS5 36 | 7160.MV8 LDAINWK+29:AND#128:STARAT2:LDAINWK+29:AND#127:BEQMV5:CMP#127:SBC#0:ORARAT2:STAINWK+29 37 | 7170LDX#15:LDY#21:JSRMVS5:LDX#17:LDY#23:JSRMVS5:LDX#19:LDY#25:JSRMVS5 38 | 7210.MV5 LDAINWK+31:AND#&A0:BNEMVD1:LDAINWK+31:ORA#16:STAINWK+31:JMPSCAN:.MVD1 LDAINWK+31:AND#&EF:STAINWK+31:RTS 39 | 7300AND#128:.MVT1 ASLA:STAS:LDA#0:RORA:STAT:LSRS:EORINWK+2,X:BMIMV10:LDAR:ADCINWK,X:STAINWK,X:LDAS:ADCINWK+1,X:STAINWK+1,X:LDAINWK+2,X:ADC#0:ORAT:STAINWK+2,X:RTS 40 | 7310.MV10 LDAINWK,X:SEC:SBCR:STAINWK,X:LDAINWK+1,X:SBCS:STAINWK+1,X:LDAINWK+2,X:AND#127:SBC#0:ORA#128:EORT:STAINWK+2,X:BCSMV11 41 | 7320LDA#1:SBCINWK,X:STAINWK,X:LDA#0:SBCINWK+1,X:STAINWK+1,X:LDA#0:SBCINWK+2,X:AND#127:ORAT:STAINWK+2,X:.MV11 RTS 42 | 7500.MVS4 LDAALPHA:STAQ:LDXINWK+2,Y:STXR:LDXINWK+3,Y:STXS:LDXINWK,Y:STXP:LDAINWK+1,Y:EOR#128:JSRMAD:STAINWK+3,Y:STXINWK+2,Y:STXP\Y=Y-aX 43 | 7520LDXINWK,Y:STXR:LDXINWK+1,Y:STXS:LDAINWK+3,Y:JSRMAD:STAINWK+1,Y:STXINWK,Y:STXP\X=X+aY 44 | 7530LDABETA:STAQ:LDXINWK+2,Y:STXR:LDXINWK+3,Y:STXS:LDXINWK+4,Y:STXP:LDAINWK+5,Y:EOR#128:JSRMAD:STAINWK+3,Y:STXINWK+2,Y:STXP\Y=Y-bZ 45 | 7540LDXINWK+4,Y:STXR:LDXINWK+5,Y:STXS:LDAINWK+3,Y:JSRMAD:STAINWK+5,Y:STXINWK+4,Y:RTS \Z=Z+bY 46 | 7650.MVT6 TAY:EORINWK+2,X:BMIMV50:LDAP+1:CLC:ADCINWK,X:STAP+1:LDAP+2:ADCINWK+1,X:STAP+2:TYA:RTS 47 | 7660.MV50 LDAINWK,X:SEC:SBCP+1:STAP+1:LDAINWK+1,X:SBCP+2:STAP+2:BCCMV51:TYA:EOR#128:RTS:.MV51 LDA#1:SBCP+1:STAP+1:LDA#0:SBCP+2:STAP+2:TYA:RTS 48 | 7700.MV40 LDAALPHA:EOR#128:STAQ:LDAINWK:STAP:LDAINWK+1:STAP+1:LDAINWK+2:JSRMULT3:LDX#3:JSRMVT3\K=Y-aX 49 | 7710LDAK+1:STAK2+1:STAP:LDAK+2:STAK2+2:STAP+1:LDABETA:STAQ:LDAK+3:STAK2+3:JSRMULT3:LDX#6:JSRMVT3:LDAK+1:STAP:STAINWK+6:LDAK+2:STAP+1:STAINWK+7:LDAK+3:STAINWK+8\Z=Z+bK2 50 | 7720EOR#128:JSRMULT3:LDAK+3:AND#128:STAT:EORK2+3:BMIMV1:LDAK:CLC:ADCK2:LDAK+1:ADCK2+1:STAINWK+3:LDAK+2:ADCK2+2:STAINWK+4:LDAK+3:ADCK2+3:JMPMV2 51 | 7740.MV1 LDAK:SEC:SBCK2:LDAK+1:SBCK2+1:STAINWK+3:LDAK+2:SBCK2+2:STAINWK+4:LDAK2+3:AND#127:STAP:LDAK+3:AND#127:SBCP:STAP:BCSMV2 52 | 7750LDA#1:SBCINWK+3:STAINWK+3:LDA#0:SBCINWK+4:STAINWK+4:LDA#0:SBCP:ORA#128:.MV2 EORT:STAINWK+5\Y=K2-bZ 53 | 7760LDAALPHA:STAQ:LDAINWK+3:STAP:LDAINWK+4:STAP+1:LDAINWK+5:JSRMULT3:LDX#0:JSRMVT3:LDAK+1:STAINWK:LDAK+2:STAINWK+1:LDAK+3:STAINWK+2\X=X+aY 54 | 7770JMPMV45 55 | 8480\.... 56 | 8500.PLUT LDXVIEW:BEQPU2-1:.PU1 DEX:BNEPU2 57 | 8510LDAINWK+2:EOR#128:STAINWK+2:LDAINWK+8:EOR#128:STAINWK+8:LDAINWK+10:EOR#128:STAINWK+10:LDAINWK+14:EOR#128:STAINWK+14:LDAINWK+16:EOR#128:STAINWK+16 58 | 8520LDAINWK+20:EOR#128:STAINWK+20:LDAINWK+22:EOR#128:STAINWK+22:LDAINWK+26:EOR#128:STAINWK+26:RTS 59 | 8530.PU2 LDA#0:CPX#2:RORA:STARAT2:EOR#128:STARAT 60 | 8540LDAINWK:LDXINWK+6:STAINWK+6:STXINWK:LDAINWK+1:LDXINWK+7:STAINWK+7:STXINWK+1:LDAINWK+2:EORRAT:TAX:LDAINWK+8:EORRAT2:STAINWK+2:STXINWK+8 61 | 8550LDY#9:JSRPUS1 62 | 8560LDY#15:JSRPUS1 63 | 8570LDY#21 64 | 8600.PUS1 LDAINWK,Y:LDXINWK+4,Y:STAINWK+4,Y:STXINWK,Y:LDAINWK+1,Y:EORRAT:TAX:LDAINWK+5,Y:EORRAT2:STAINWK+1,Y:STXINWK+5,Y:.LO2 RTS 65 | 8990.LQ STXVIEW:JSRTT66:JSRSIGHT:LDABOMB:BPLP%+5:JSRBOMBOFF\@@:JMPNWSTARS 66 | 9000.LOOK1 LDA#0:LDYQQ11:BNELQ:CPXVIEW:BEQLO2:STXVIEW:JSRTT66:JSRFLIP:LDABOMB:BPLP%+5:JSRBOMBOFF \@@:JSRWPSHPS 67 | 9010.SIGHT LDYVIEW:LDALASER,Y:BEQLO2:LDY#0:CMP#POW:BEQSIG1:INY:CMP#(POW+128):BEQSIG1:INY:CMP#Armlas:BEQSIG1:INY:.SIG1 LDAsightcol,Y:STACOL:LDA#128:STAQQ19:LDA#Y-24:STAQQ19+1:LDA#20:STAQQ19+2:JSRTT15:LDA#10:STAQQ19+2:JMPTT15 68 | 9020\....... 69 | 9030.sightcol EQUBBLUE:EQUBRED:EQUBWHITE:EQUBWHITE 70 | 9040.beamcol EQUBVIOLET:EQUBRED:EQUBGREEN:EQUBWHITE 71 | 9060\TRIBTA EQUB0\EQUB1\EQUB2\EQUB3 \EQUB4 \EQUB5 \EQUB6 \EQUB6 72 | 9070\TRIBMA EQUB0\EQUB4\EQUB&C\EQUB&1C\EQUB&3C\EQUB&7C\EQUB&FC\EQUB&FC 73 | 9400.TT66 STAQQ11:.TTX66 JSRMT2:LDA#0:STALSP:LDA#128:STAQQ17:STADTW2:LDA#1:STAXC:STAYC:JSRTTX66K:LDAtext:BMIP%+5:JSRFLFLLS:LDA#0:STALAS2:STADLY:STAde 74 | 9410LDXQQ22+1:BEQOLDBOX:JSRee3:.OLDBOX:LDA#1:STAYC:LDAQQ11:BNEtt66:LDA#11:STAXC:LDAVIEW:ORA#&60:JSRTT27:JSRTT162:LDA#175:JSRTT27:.tt66 75 | 9420LDX#1:STXXC:STXYC:DEX:STXQQ17:RTS 76 | 9900] 77 | 9910PRINT" H "; 78 | 9920IFZ>4OSCLI"SAVE ELTH "+STR$~W%+" "+STR$~O%+" "+STR$~L%+" "+STR$~H% 79 | 9930GOTO18 80 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEI.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 7GOTO20 7 | 8*L.ELITED 8 | 9GOTO20 9 | 10*L.ELITEE 10 | 11GOTO20 11 | 12*L.ELITEF 12 | 13GOTO20 13 | 14*L.ELITEG 14 | 15GOTO20 15 | 16*L.ELITEH 16 | 17GOTO20 17 | 18*L.ELITEI 18 | 19GOTO30 19 | 20*L.ELITEJ 20 | 21GOTO30 21 | 30REM ELITE AP 22 | 100H%=H%+O%-W%:O%=W% 23 | 3000TKN1=&F40:RUTOK=TKN1+&B52:RUPLA=TKN1+&B1E:RUGAL=TKN1+&B38:NRU%=26 24 | 4000[OPTZ 25 | 5000.yetanotherrts:.DEMON RTS\<< 26 | 7000.ECMOF LDA#0:STAECMA:STAECMP:JMPECBLB \@@ 27 | 7002.SFRMIS LDX#MSL:JSRSFS1-2:BCCyetanotherrts:LDA#&78:JSRMESS:LDY#50:JMPSOHISS\@@ 28 | 7003.EXNO2 LDATALLYL:CLC:ADCKWL%-1,X:STATALLYL:LDATALLY:ADCKWH%-1,X:STATALLY:BCCdavidscockup:INCTALLY+1:LDA#101:JSRMESS:.davidscockup 29 | 7004LDY#55:BNESOEXPL\@@ 30 | 7005.EXNO LDY#15:BNESOEXPL\@@ 31 | 7990\................... 32 | 8505.BOOP LDY#99:LDX#FF:BNESOBEEP 33 | 8506.SOHISS BITDNOIZ:BMISOUR:.SOHISS2:LDA&C030:JSRDORND:DEX:NOP:NOP:BNEP%-3:DEY:BNESOHISS2:LDA&C030:RTS 34 | 8507.EXNO3 LDY#40 35 | 8508.SOEXPL BITDNOIZ:BMISOUR:LDX#50:STXT3:.BEEPL4 LDA&C030:INCT3:LDXT3:DEX:NOP:NOP:BNEP%-3:JSRDORND:DEX:NOP:BNEP%-2:DEY:BNEBEEPL4:LDA&C030:RTS 36 | 8515.BEEP LDY#30:LDX#110 37 | 8520.SOBEEP BITDNOIZ:BMISOUR:STXT3:.BEEPL1 LDA&C030:LDXT3:DEX:BNEP%-1:DEY:BNEBEEPL1:LDA&C030:.SOUR RTS 38 | 8525.SOBLIP BITDNOIZ:BMISOUR:STXT3:.BEEPL2 LDA&C030:DECT3:LDXT3:DEX:NOP:BNEP%-2:DEY:BNEBEEPL2:LDA&C030:RTS 39 | 8526.LASNOISE LDY#11:LDX#150 40 | 8527.SOBLOP BITDNOIZ:BMISOUR:STXT3:.BEEPL3 LDA&C030:INCT3:INCT3:LDXT3:DEX:BNEP%-1:DEY:BNEBEEPL3:LDA&C030:RTS 41 | 8530.LASNOISE2 LDY#11:LDX#130 42 | 8535.SOBOMB BITDNOIZ:BMISOUR:LDY#25:.SOHISS4 LDA&C030:JSRDORND:AND#31:ORA#&E0:TAX:DEX:NOP:BNEP%-2:DEY:BNESOHISS4:LDA&C030:RTS 43 | 8540.CLICK BITDNOIZ:BMISOUR2:LDA&C030:.SOUR2 RTS 44 | 8542\............ 45 | 8569 46 | 9000.COLD \Page out KERNAL etc 47 | 9005JSRHGR 48 | 9010LDA#8:STASC+1:LDX#2:LDA#0:STASC:TAY:.zerowksploop STA(SC),Y:INY:BNEzerowksploop:INCSC+1:DEX:BNEzerowksploop:.zerowkl2 STA&200,Y:DEY:BNEzerowkl2 49 | 9050LDA#(NMIpissoff MOD256):STANMIV:LDA#(NMIpissoff DIV256):STANMIV+1 50 | 9060LDA#(CHPR2 MOD256):STACHRV:LDA#(CHPR2 DIV256):STACHRV+1 51 | 9102SEI 52 | 9103]:IF NOT USA% THEN [OPTZ \UK CHECK:] 53 | 9104[OPTZ 54 | 9130RTS 55 | 9300.NMIpissoff CLI:RTI 56 | 9900] 57 | 9910PRINT"I "; 58 | 9920IFZ>4OSCLI"SAVE ELTI "+STR$~W%+" "+STR$~O%+" "+STR$~BEGIN+" "+STR$~H% 59 | 9930GOTO20 60 | 9999END 61 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.ELITEK.TXT: -------------------------------------------------------------------------------- 1 | 1GOTO20 2 | 2*L.ELITEB 3 | 3GOTO20 4 | 4*L.ELITEA 5 | 6*L.ELITEC 6 | 7GOTO20 7 | 8*L.ELITED 8 | 9GOTO20 9 | 10*L.ELITEE 10 | 11GOTO20 11 | 12*L.ELITEF 12 | 13GOTO20 13 | 14*L.ELITEG 14 | 15GOTO20 15 | 16*L.ELITEH 16 | 17GOTO20 17 | 18*L.ELITEI 18 | 19GOTO30 19 | 20*L.ELITEJ 20 | 21GOTO30 21 | 22*L.ELITEK 22 | 30REM ELITE AP 23 | 100H%=H%+O%-W%:O%=W% 24 | 105REM Pa=P: P=FNZZZ:Q=FNZZZ:R=FNZZZ:S=FNZZZ:T=FNZZZ:T1=FNZZZ: REMSC=FNZTZT(2):SCH=SC+1 *** 25 | 150REM FF=&FF:OSWRCH=&FFEE:OSBYTE=&FFF4:OSWORD=&FFF1:OSFILE=&FFDD:SCLI=&FFF7:VIA=&FE40:USVIA=VIA:IRQ1V=&204:VSCAN=57:XX21=D%:WRCHV=&20E:WORDV=&20C:RDCHV=&210 26 | 165protlen=0 27 | 500BULBCOL=&E0 28 | 1005[OPTZ 29 | 1037 30 | 1039 31 | 1100 32 | 1390\ ...................... Scanners .............................. 33 | 1391 34 | 1800.TWOS EQUD&08040201:EQUW&2010:EQUB&40 35 | 1810.TWOS2 EQUD&988C8683:EQUW&E0B0:EQUB&C0 36 | 1850.TWFL EQUB&83:EQUB&87:EQUB&8F:EQUB&9F:EQUB&BF:EQUB&FF:EQUB&FF 37 | 1860.TWFR EQUB&FF:EQUB&FE:EQUB&FC:EQUB&F8:EQUB&F0:EQUB&E0:EQUB&C0 38 | 1880.CTWOS 39 | 1891 40 | 1900.cellocl EQUD&82028202:EQUD&82028202:EQUD&AA2AAA2A:EQUD&AA2AAA2A:EQUD&D252D252:EQUD&D252D252 41 | 1990\............. Line Draw .............. 42 | 1994 43 | 2000.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 44 | 2005 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 45 | 2010 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 46 | 2015.SCTBH EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 47 | 2020 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 48 | 2025 EQUW&2020:EQUW&2121:EQUW&2222:EQUW&2323 49 | 2027 EQUW&2020:EQUW&2020:EQUW&2020:EQUW&2020 \safety 50 | 2030.SCTBH2 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 51 | 2035 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 52 | 2040 EQUW&3C3C:EQUW&3D3D:EQUW&3E3E:EQUW&3F3F 53 | 2045\ can loose this table by adding &1C00 to SCTBH references 54 | 2070\....... 55 | 2072\.grubbyline RTS 56 | 2075.LL30:.LOIN STYYSAV:\LDAY1:\CMP#Y*2:\BCSgrubbyline:\LDAY2:\CMP#Y*2:\BCSgrubbyline\** 57 | 2080LDA#128:STAS:ASLA:STASWAP:LDAX2:SBCX1:BCSLI1:EOR#FF:ADC#1:SEC:.LI1 STAP 58 | 2085LDAY2:SBCY1:BCSLI2:EOR#FF:ADC#1:.LI2 STAQ:CMPP:BCCSTPX:JMPSTPY 59 | 2090.STPX LDXX1:CPXX2:BCCLI3:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:LDYY1:STAY1:STYY2:.LI3 60 | 2095LDAY1:LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1 \SC=address of leftmost byte in correct row 61 | 2100LDYSCTBX1,X:LDATWOS,Y:STAR:LDYSCTBX2,X 62 | 2105LDXQ:BNELIlog7:TXA:BEQLIlog6:.LIlog7 LDAlogL,X:LDXP:SEC:SBClogL,X:LDXQ:LDAlog,X:LDXP:SBClog,X:BCCP%+6:LDA#FF:BNELIlog6:TAX:LDAalogh,X:.LIlog6 STAQ:SEC 63 | 2110LDXP:INX:LDAY2:SBCY1:BCSDOWN 64 | 2115\... 65 | 2120LDASWAP:BNELI6:DEX:.LIL2 LDAR:EOR(SC),Y:STA(SC),Y 66 | 2125.LI6 ASLR:BPLLI7:LDA#1:STAR:INY 67 | 2130.LI7 LDAS:ADCQ:STAS:BCCLIC2:DECT2:BMILI20:LDASC+1:SBC#4:STASC+1 68 | 2135.LIC2 DEX:BNELIL2:LDYYSAV:RTS 69 | 2140.LI20 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLIC2 70 | 2145\..... 71 | 2150.DOWN LDAT2:EOR#7:STAT2:LDASWAP:BEQLI9:DEX:.LIL3 LDAR:EOR(SC),Y:STA(SC),Y 72 | 2155.LI9 ASLR:BPLLI10:LDA#1:STAR:INY 73 | 2160.LI10 LDAS:ADCQ:STAS:BCCLIC3:DECT2:BMILI21:LDASC+1:ADC#3:STASC+1 74 | 2165.LIC3 DEX:BNELIL3:LDYYSAV:RTS 75 | 2170.LI21 LDA#7:STAT2:STXT:LDXT1:INX:STXT1:LDASCTBL,X:STASC:LDASCTBH,X:STASC+1:LDXT:JMPLIC3 76 | 2175\..... 77 | 2180.STPY LDYY1:TYA:LDXX1:CPYY2:BCSLI15:DECSWAP:LDAX2:STAX1:STXX2:TAX:LDAY2:STAY1:STYY2:TAY 78 | 2190.LI15 LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1:LDYSCTBX1,X:LDATWOS,Y:STAR:LDYSCTBX2,X 79 | 2195LDXP:BEQLIfudge:LDAlogL,X:LDXQ:SEC:SBClogL,X:LDXP:LDAlog,X:LDXQ:SBClog,X:BCCP%+6:LDA#FF:BNELIlog2:TAX:LDAalogh,X:.LIlog2 STAP:.LIfudge SEC:LDXQ:INX:LDAX2:SBCX1:BCCLFT 80 | 2200\.... 81 | 2205CLC:LDASWAP:BEQLI17:DEX:.LIL5 LDAR:EOR(SC),Y:STA(SC),Y:.LI17 DECT2:BMILI22:LDASC+1:SBC#3:STASC+1:CLC:.LI16 LDAS:ADCP:STAS:BCCLIC5 82 | 2210ASLR:BPLLIC5:LDA#1:STAR:INY:.LIC5 DEX:BNELIL5:LDYYSAV:RTS 83 | 2215.LI22 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI16 84 | 2220\..... 85 | 2225.LFT LDASWAP:BEQLI18:DEX:.LIL6 LDAR:EOR(SC),Y:STA(SC),Y:.LI18 DECT2:BMILI23:LDASC+1:SBC#3:STASC+1:CLC:.LI19 LDAS:ADCP:STAS:BCCLIC6 86 | 2230LSRR:BCCLIC6:LDA#64:STAR:DEY:CLC:.LIC6 DEX:BNELIL6:LDYYSAV:.HL6 RTS 87 | 2235.LI23 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPLI19 88 | 2240\................................... 89 | 2390.MSBARS JSRP%+3:INCY1 90 | 2393\ ............HLOIN.......... 91 | 2394 92 | 2400.HLOIN STYYSAV:LDAX1:AND#&FE:STAX1:TAX:LDAX2:AND#&FE:STAX2:CMPX1:BEQHL6:BCSHL5:STXX2:TAX:.HL5 93 | 2410LDAY1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1:LDASCTBX2,X:AND#1:ORACOL:TAY:LDAMASKT,Y:STAT1:LDAMASKT+1,Y:STAT2 94 | 2420.HL1 LDYX2:LDASCTBX2-2,Y:LDYSCTBX1,X:SEC:SBCSCTBX2,X:STAR \R=no bytes apart 95 | 2430LDATWFR,Y:ANDT1:LDYSCTBX2,X:LDXR:BEQHL3:STAT4:LDA(SC),Y:AND#&7F:EORT4:STA(SC),Y:INY:DEX:BEQHL4 96 | 2440.HLL1 LDA(SC),Y:AND#&7F:EORT2:STA(SC),Y:INY:DEX:BEQHL8:LDA(SC),Y:AND#&7F:EORT1:STA(SC),Y:INY:DEX:BNEHLL1 97 | 2445.HL4 LDAT2 98 | 2460.HL2 LDXX2:LDYSCTBX1-2,X:CPY#6:ANDTWFL,Y:LDYSCTBX2-2,X:STAT4:LDA(SC),Y:AND#&7F:EORT4:STA(SC),Y:BCCHL7:LDA#&81:ANDT1:INY:STAT4:LDA(SC),Y:AND#&7F:EORT4:STA(SC),Y:.HL7 LDYYSAV:RTS 99 | 2470.HL8 LDAT1:.HL3 LDXT2:STXT1:JMPHL2 100 | 2480\..... 101 | 2500.MASKT EQUD0: EQUD&552A55: EQUD&2A552A: EQUD&7F7F7F: EQUD&D5AAD5: EQUD&AAD5AA:EQUD&AAAAAA 102 | 2600.VLOIN STYYSAV:LDAY1:CMPY2:BCSVLO1:LDYY2:STAY2:TYA:.VLO1 103 | 2610LDXX1:JSRCPIX 104 | 2620LDAY1:SEC:SBCY2:BEQVLO5:TAX:INX:JMPVLO4 105 | 2630.VLOL1 LDAR:EOR(SC),Y:STA(SC),Y:LDAT3:BEQVLO4:INY:EOR(SC),Y:STA(SC),Y:DEY 106 | 2640.VLO4 DECT2:BMIVLO2:LDASC+1:SEC:SBC#4:STASC+1:.VLO3 DEX:BNEVLOL1:.VLO5 LDYYSAV:RTS 107 | 2650.VLO2 LDA#7:STAT2:STXT:LDXT1:DEX:STXT1:LDASCTBL,X:STASC:LDASCTBH2,X:LDXT:STASC+1:JMPVLO3 108 | 2680\..... 109 | 2800.CPIX STAY1:LSRA:LSRA:LSRA:STAT1:TAY:LDASCTBL,Y:STASC:LDAY1:AND#7:STAT2:ASLA:ASLA:ADCSCTBH,Y:STASC+1:LDYSCTBX1,X:LDA#0:CPY#6:BNEP%+4:LDA#&81:STAT3 110 | 2810LDATWOS2,Y:STAR:LDASCTBX2,X:AND#1:ORACOL:TAY:LDAMASKT+1,Y:ANDT3:STAT3:LDAMASKT,Y:ANDR:STAR 111 | 2820LDYSCTBX2,X:EOR(SC),Y:STA(SC),Y:LDAT3:BEQCPR1:INY:EOR(SC),Y:STA(SC),Y:DEY:.CPR1 RTS 112 | 2990\................... 113 | 3600 114 | 4230\........... 115 | 4730.ECBLB2 LDA#32:STAECMA:\LDY#sfxecm:\JSRNOISE\@@:.ECBLB LDA#(ECBT MOD256):LDX#56:BNEBULB 116 | 4740.SPBLB LDA#(SPBT MOD256):LDX#192:.BULB STAP:LDA#(SPBT DIV256):STAP+1:LDA#22:STAYC:JMPletter2 117 | 4800.ECBT EQUW&7F7F:EQUB&07:.SPBT EQUD&7F077F7F:EQUD&7F7F707F 118 | 4900.MSBAR TYA:PHA:JSRMSBAR2:PLA:STAmscol-1,X 119 | 4910.MSBAR2 LDAmscol-1,X:BEQcoolkey:STACOL:LDAmsloc-1,X:STAX1:CLC:ADC#6:STAX2:TXA:PHA:LDA#184:STAY1:JSRMSBARS:JSRMSBARS:PLA:TAX:TYA:LDY#0:RTS 120 | 4940.msloc EQUB&28:EQUB&20:EQUB&18:EQUB&10 121 | 4980\.... 122 | 5000.newosrdch JSR&FFFF:CMP#128:BCCP%+6:.badkey LDA#7:CLC:RTS:CMP#32:BCScoolkey:CMP#13:BEQcoolkey:CMP#21:BNEbadkey:.coolkey CLC:RTS 123 | 6200\ADD AX=AP+SR Should be in ELITEC (?) 124 | 6240 125 | 6900\..........Bay View.......... 126 | 6910 127 | 7500 128 | 7502 129 | 7820 130 | 7860.WSCAN BIT&C019:BPLWSCAN:.WSCL1 BIT&C019:BMIWSCL1:RTS 131 | 8099 132 | 8100\ ............. Character Print ..................... 133 | 8101 134 | 8150.CHPR2 CMP#123:BCSwhosentthisshit:CMP#13:BCCwhosentthisshit:BNECHPR:LDA#12:JSRCHPR:LDA#13:.whosentthisshit CLC:RTS \ tape CHPR 135 | 8180.R5 JSRBEEP:JMPRR4 136 | 8190.clss BITtext:BPLclss1:JSRcleartext:LDAK3:JMPRRafter:.clss1 JSRcleargrap:LDAK3:JMPRRafter 137 | 8192.RR5 \text chpr:BITUPTOG:BPLRR7:CMP#&5B:BCCRR7:SBC#&20:.RR7 138 | 8194ORA#128:PHA:LDAcellocl,Y:STASC:TYA:AND#7:LSRA:CLC:ADC#4:STASC+1:TXA:TAY:PLA:STA(SC),Y:JMPRR6 139 | 8196.TT67 LDA#12 140 | 8200.CHPR 141 | 8205STAK3:STYYSAV2:STXXSAV2:LDYQQ17:CPY#FF:BEQRR4 142 | 8210.RRafter CMP#7:BEQR5:CMP#32:BCSRR1:CMP#10:BEQRRX1:.RRX2 LDX#1:STXXC:.RRX1 CMP#13:BEQRR4:INCYC:BNERR4 143 | 8220.RR1 LDXXC:CPX#31:BCCRRa:JSRRRX2:LDXXC\David@@:.RRa LDYYC:CPY#24:BCSclss 144 | 8224BITtext:BMIRR5 145 | 8230PHA:LDAXC:ASLA:ASLA:ASLA:ADC#13:SBCXC:TAX \7*XC+12:PLA:JSRletter:.RR6 INCXC 146 | 8240.RR4 LDYYSAV2:LDXXSAV2:LDAK3:CLC:RTS \must exit CHPR with C=0 147 | 8244\..... 148 | 8250.letter \plot character A at X,YC*8 149 | 8260LDY#((FONT DIV256)-1):ASLA:ASLA:BCCP%+4:LDY#((FONT DIV256)+1):ASLA:BCCRR9:INY:.RR9 \CLC\ADC#(FONT MOD256):STAP:\BCCP%+3\INY:STYP+1 150 | 8270.letter2 LDYYC:LDASCTBL,Y:STASC:LDASCTBH,Y:STASC+1:LDYSCTBX1,X:STYP+2:LDYSCTBX2,X:STYT1 151 | 8280LDY#0:.RRL1 LDA#0:STAT3:LDA(P),Y:LDXP+2:.RRL2 CMP#128:ROLT3:DEX:BMIRR8:ASLA:JMPRRL2:.RR8 AND#127:CLC 152 | 8284STYT2:LDYT1:EOR(SC),Y:STA(SC),Y:INY:LDAT3:EOR(SC),Y:STA(SC),Y:LDYT2:LDASC+1:ADC#4:STASC+1:INY:CPY#8:BNERRL1 153 | 8290RTS 154 | 8297\ 155 | 8298\.....TTX66K...... 156 | 8299\ 157 | 8300.TTX66K 158 | 8310LDAQQ11:BEQwantgrap:CMP#13:BEQwantgrap:AND#&C0:BNEwantgrap 159 | 8314JSRcleartext:JMPTEXT 160 | 8316.cleartext LDY#0:LDX#4:STYSC:STXSC+1:LDA#160:.cleartextl STA(SC),Y:INY:BNEcleartextl:INCSC+1:DEX:BNEcleartextl:RTS 161 | 8318\........... 162 | 8328\.... 163 | 8330.wantgrap JSRcleargrap:JSRBOX:JSRHGR 164 | 8340RTS 165 | 8344\........ 166 | 8350.BOX 167 | 8360LDX#0:STXX1:STXY1:DEX:STXX2:LDA#BLUE:STACOL:JSRHLOIN:LDA#&AA:STASCBASE+1:LDA#&AA:STASCBASE+37:RTS 168 | 8390\.... 169 | 8425\....... 170 | 8500.cleargrap LDY#16:.cleargl JSRclearrow:DEY:BPLcleargl:INY:STYXC:STYYC:RTS 171 | 8545\.... 172 | 8600.ZES1k LDY#0:STYSC:.ZES2k LDA#0:STXSC+1:.ZEL1k STA(SC),Y:DEY:BNEZEL1k:RTS 173 | 8700.ZESNEW LDA#0:.ZESNEWL STA(SC),Y:INY:BNEZESNEWL:RTS 174 | 9000\.SETXC STAXC:RTS \JMPPUTBACK:\.SETYC STAYC:RTS \JMPPUTBACK 175 | 9010 176 | 9200.mvblockK LDY#0:.mvbllop LDA(V),Y:STA(SC),Y:DEY:BNEmvbllop:INCV+1:INCSC+1:DEX:BNEmvbllop:RTS \remember ELITEK has different SC! (NO LONGER) 177 | 9400 178 | 9450.CLYNS LDA#0:STADLY:STAde 179 | 9460.CLYNS2 JSRCLYS1\@@:LDA#FF:STADTW2:LDA#128:STAQQ17:LDAtext:BPLCLY1 180 | 9470LDA#32:LDX#64:.CLYL1 JSRCHPR:DEX:BNECLYL1:.CLYS1 LDA#21:STAYC:LDA#1:STAXC:RTS 181 | 9472\... 182 | 9480.CLY1 LDY#15:STYYC:LDA#1:STAXC:JSRclearrow:INY 183 | 9490.clearrow LDA#8:STAT2:LDXSCTBL,Y:STXSC:LDXSCTBH,Y:TYA:PHA:.cleargl2 STXSC+1:LDA#&A0:LDY#37:.cleargl3 STA(SC),Y:LDA#0:DEY:BNEcleargl3:LDA#&C0:STA(SC),Y:INY:ASLA:STA(SC),Y:INX:INX:INX:INX:DECT2:BNEcleargl2:PLA:TAY:.SCR1 RTS 184 | 9498\................ 185 | 9500.SCAN 186 | 9505\LDAQQ11:\BNESCR1:LDAINWK+31:AND#16:BEQSCR1:LDXTYPE:BMISCR1:LDAscacol,X:STACOL:LDAINWK+1:ORAINWK+4:ORAINWK+7:AND#&C0:BNESCR1 187 | 9510LDAINWK+1:CLC:LDXINWK+2:BPLSC2:EOR#FF:ADC#1:CLC:.SC2 ADC#125:AND#&FE:STAX1:TAX:DEX:DEX 188 | 9520LDAINWK+7:LSRA:LSRA:CLC:LDYINWK+8:BPLSC3:EOR#FF:SEC:.SC3 ADC#91 \83:EOR#FF:STAY2 189 | 9530LDAINWK+4:LSRA:CLC:LDYINWK+5:BMISCD6:EOR#FF:SEC:.SCD6 ADCY2:\BPLld246:CMP#146 \194:BCSP%+4:LDA#146:CMP#191 \199:BCCP%+4:.ld246 LDA#190 \198 190 | 9535JSRCPIX:JMPVLOIN 191 | 9590\....... 192 | 9600.HGR LDA&C054:LDA&C052:LDA&C057:LDA&C050:LSRtext:RTS 193 | 9610.TEXT LDA&C054:LDA&C051:SEC:RORtext:RTS 194 | 9900] 195 | 9910PRINT"K " 196 | 9915F%=P% 197 | 9920IFZ>4OSCLI"SAVE ELTK "+STR$~W%+" "+STR$~O%+" "+STR$~BEGIN+" "+STR$~H% 198 | 9925IFF%>D%:VDU7:PRINT"Code too long."':GOTO9940 199 | 9930IFZ=4GOTO4 200 | 9935Q%=&12345678 201 | 9940PRINT~C% F% S% K%" (Free: ";D%-F%;" )"' 202 | 9950PRINT" ZP:";~ZP", WP:"~WP", UP:"~UP' 203 | 9960END 204 | 10000DEFFNZTZT(N%):ZP=ZP+N%:=ZP-N% 205 | 10010DEFFNZZZ:ZP=ZP+1:=ZP-1 206 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.RECIEVE.txt: -------------------------------------------------------------------------------- 1 | 5*APPLE 2 | 10DIM L% &1000 3 | 20FOR I%=L% TO L%+&2FF 4 | 30INPUT ?I% 5 | 40NEXT 6 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.SLIDE.txt: -------------------------------------------------------------------------------- 1 | 5REM PREPARE INITIAL APPLE SCREEN 2 | 10DIM SPACE &2000 3 | 20OSCLI("L.:2.E.DIALS4 6D48") 4 | 30DIM CODE2 &200 5 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:SC=&70:T=&72:CNT1=&73:CNT2=&74:ZP=&76 6 | 50[OPTZ:.SLIDE 7 | 60LDA#4:STACNT1 8 | 70.LOOP1 LDA#&00:STAZP:LDA#&58:STAZP+1:LDA#32:STACNT2 9 | 80.LOOP2 LDY#7 10 | 90.LOOP3 LDX#39:CLC:LDAZP:STASC:LDAZP+1:STASC+1 11 | 100.LOOP4 LDA(SC),Y:RORA:STA(SC),Y:PHP:LDASC:CLC:ADC#8:STASC:BCCP%+4:INCSC+1:PLP:DEX:BPLLOOP4 12 | 110DEY:BPLLOOP3 13 | 120LDAZP:CLC:ADC#&40:STAZP:LDAZP+1:ADC#1:STAZP+1:DECCNT2:BNELOOP2 14 | 130DECCNT1:BNELOOP1 15 | 150RTS 16 | 180]:NEXT 17 | 200PROCM(7,24*8-1):PROCD(7,0):PROCM(6,24*8-1):PROCD(6,0) 18 | 210PROCM(&108,24*8-1):PROCD(&108,0):PROCM(&109,24*8-1):PROCD(&109,0) 19 | 300CALLSLIDE 20 | 400END 21 | 500DEFPROCD(X,Y):DRAW4*X,1020-4*Y:ENDPROC 22 | 510DEFPROCM(X,Y):MOVE4*X,1020-4*Y:ENDPROC 23 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A.TESTER.txt: -------------------------------------------------------------------------------- 1 | 10 REM Transfer files to APPLE disk 2 | 15 IF Q%<>&12345678: PRINT"Need C%,L%,S% etc.":END 3 | 20 DIMCODE%&7FFF : REM no bigger - bug in the BASIC 4 | 25 CODE2=&4000:STORE=&D000 5 | 27 ZP1=0:ZP2=2 6 | 30 FORZ=4TO6STEP2 7 | 40 P%=&A00:O%=CODE%:[OPTZ 8 | 45 9 | 50.ENTRY LDA&C054:LDA&C052:LDA&C057:LDA&C050 \HGR 10 | 53 LDAZP1:PHA:LDAZP1+1:PHA:LDAZP2:PHA:LDAZP2+1:PHA 11 | 55 LDA&C08B \ page in RAM card 12 | 60 LDA#CODE2 MOD256:STAZP1:LDA#CODE2 DIV256:STAZP1+1 13 | 70 LDA#STORE MOD256:STAZP2:LDA#STORE DIV256:STAZP2+1 14 | 80 LDY#0:LDX#((&C000-&9000)DIV256) \move X pages 15 | 90 .MVLP1 LDA(ZP1),Y:STA(ZP2),Y:INY:BNEMVLP1:INCZP1+1:INCZP2+1:DEX:BNEMVLP1 16 | 100 LDA&C081 \ page in ROMs 17 | 110 PLA:STAZP2+1:PLA:STAZP2:PLA:STAZP1+1:PLA:STAZP1:RTS 18 | 120]NEXT 19 | 130 OSCLI"LOAD :2.DATA "+STR$~(CODE%+&160) 20 | 140 OSCLI"LOAD :2.SCREEN "+STR$~(CODE%+&1600) 21 | 150 OSCLI"LOAD :2.CODE2 "+STR$~(CODE%+&3600) 22 | 160 OSCLI"MSEND "+STR$~CODE%+" +"+STR$~(&C000-&9000+&3600)+" A00" 23 | 170 PRINT"BSAVE ELA,A$A00,L$"+STR$~(&C000-&9000+&3600) 24 | 180 OSCLI"CALL A00" 25 | 190 OSCLI"LOAD :2.CODE1 "+STR$~CODE% 26 | 200 OSCLI"MSEND "+STR$~CODE%+" +"+STR$~(&9000-C%)+" "+STR$~C% 27 | 210 PRINT"BSAVE ELB,A$"+STR$~C%+",L$"+STR$~(&9000-C%) 28 | 220 OSCLI"CALL "+STR$~S% 29 | -------------------------------------------------------------------------------- /1-source-files/original-sources/A6010080 Apple II sources [DSD disc image].zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/original-sources/A6010080 Apple II sources [DSD disc image].zip -------------------------------------------------------------------------------- /1-source-files/original-sources/README.md: -------------------------------------------------------------------------------- 1 | # Original source code for the Apple II version of Elite 2 | 3 | This folder contains the original source code for the Apple II version of Elite from Ian Bell's personal website. 4 | 5 | --- 6 | 7 | Right on, Commanders! 8 | 9 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/original-sources/S.APMAKES.txt: -------------------------------------------------------------------------------- 1 | 10 REM Transfer files to APPLE disk 2 | 15 IF Q%<>&12345678: PRINT"Need C%,L%,S% etc.":END 3 | 20 DIMCODE%&7FFF : REM no bigger - bug in the BASIC 4 | 25 CODE2=&4000:STORE=&D000 5 | 27 ZP1=0:ZP2=2 6 | 30 FORZ=4TO6STEP2 7 | 40 P%=&A00:O%=CODE%:[OPTZ 8 | 45 9 | 50.ENTRY LDA&C054:LDA&C052:LDA&C057:LDA&C050 \HGR 10 | 53 LDAZP1:PHA:LDAZP1+1:PHA:LDAZP2:PHA:LDAZP2+1:PHA 11 | 55 LDA&C08B \ page in RAM card 12 | 60 LDA#CODE2 MOD256:STAZP1:LDA#CODE2 DIV256:STAZP1+1 13 | 70 LDA#STORE MOD256:STAZP2:LDA#STORE DIV256:STAZP2+1 14 | 80 LDY#0:LDX#((&C000-&9000)DIV256) \move X pages 15 | 90 .MVLP1 LDA(ZP1),Y:STA(ZP2),Y:INY:BNEMVLP1:INCZP1+1:INCZP2+1:DEX:BNEMVLP1 16 | 100 LDA&C081 \ page in ROMs 17 | 110 PLA:STAZP2+1:PLA:STAZP2:PLA:STAZP1+1:PLA:STAZP1:RTS 18 | 120]NEXT 19 | 130 OSCLI"LOAD :2.DATA "+STR$~(CODE%+&160) 20 | 140 OSCLI"LOAD :2.SCREEN "+STR$~(CODE%+&1600) 21 | 150 OSCLI"LOAD :2.CODE2 "+STR$~(CODE%+&3600) 22 | 160 OSCLI"MSEND "+STR$~CODE%+" +"+STR$~(&C000-&9000+&3600)+" A00" 23 | 170 PRINT"BSAVE ELA,A$A00,L$"+STR$~(&C000-&9000+&3600) 24 | 180 VDU7,7:*APPLE 25 | 190 OSCLI"LOAD :2.CODE1 "+STR$~CODE% 26 | 200 OSCLI"MSEND "+STR$~CODE%+" +"+STR$~(&9000-C%)+" "+STR$~C% 27 | 210 PRINT"BSAVE ELB,A$"+STR$~C%+",L$"+STR$~(&9000-C%) 28 | 220 VDU7,7:*APPLE 29 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.ASHIPS.txt: -------------------------------------------------------------------------------- 1 | 10REM Prepare SHIP MODULE 2 | 15REM Apple IIe 3 | 30D%=&A300 4 | 40DIM DL% &3000,LINS%(40),NORMS%(40),NAM$(40) 5 | 50 6 | 60 NUM%=0 7 | 70REM?&D000=&1B:IF ?&D000<>&1B PRINT"Need Tube":END 8 | 72READ DEX$ 9 | 73N$="A.SHIPS" 10 | 80PS=10000:SS=2 11 | 90RESTORE1000:READN%:B%=DL%:Etr%=D%+2*N%:KWLtr%=Etr%+N%:KWHtr%=KWLtr%+N%:Ctr%=KWHtr%+N% 12 | 160RESTORE2010:E%=DL%+2*N%:KWL%=E%+N%:KWH%=KWL%+N%:C%=KWH%+N% 13 | 170FORI%=1TON%:READ A$,B$,P,Q,R,S,T,U,V,W,X,Y,Z,KW 14 | 175NAM$(I%)=A$ 15 | 177IF MID$(DEX$,I%,1)="." !B%=0:B%=B%+2:ELSE !B%=Ctr%:B%=B%+2 16 | 180IF I%=PS GOTO240 17 | 205IF MID$(DEX$,I%,1)="."GOTO240 18 | 206PRINTA$","; 19 | 210IF A$="BARREL" C2%=C% 20 | 220IF A$="ESCAP" C3%=C% 21 | 230PROCSET(C%) 22 | 232I2%=0:REPEATI2%=I2%+1:UNTILNAM$(I2%)=NAM$(I%):IF I2%=I% GOTO237 23 | 234OFSET= LINS%(I2%)-C%:C%?3=OFSET AND255:C%?16=(OFSET AND&FF00)DIV256 24 | 235OFSET=NORMS%(I2%)-C%:C%?4=OFSET AND255:C%?17=(OFSET AND&FF00)DIV256 25 | 236VDU7,ASC"*",ASC"*" 26 | 237LINS%(I%)=C%+(C%?3)+(C%?16)*256:NORMS%(I%)=C%+(C%?4)+(C%?17)*256 27 | 238IFI%=I2%:CHANGE%=EVAL("&"+B$):ELSE CHANGE%=20+(C%?8) 28 | 239C%=C%+CHANGE%:Ctr%=Ctr%+CHANGE% 29 | 240NEXT:PRINT 'NUM%,~D% D%+C%-DL% E% 30 | 250INPUT"Insert assembly disk in Drive 0 and hit RETURN"A$ 31 | 260OSCLI("S.:2."+N$+" "+STR$~DL%+" "+STR$~(C%+4)+" "+STR$~D%+" "+STR$~D%) 32 | 270 33 | 290END 34 | 299 35 | 300REM Bit 0 => High Tek 36 | 302REM Bit 1 => Safe Sys 37 | 303 38 | 500REM :.Junk.::Trad::..PaH..::.LW. 39 | 502 40 | 510REM MSEPBBASSTCPBA-VSMKAGCWCAPFMTTCL 41 | 511REM ipslaosphroyon-iiardeboosyeohhoo 42 | 512REM scctrltluabtaa-pdmadk1rbptrrglng 43 | 513REM ..:......::....::.......::.....: 44 | 600DATA 1111111111111111111111111111111111......... 45 | 880REM MSEPBBASSTCPBA-VSMKAGCWCAPFMTTC 46 | 1000DATA 32 47 | 1005REM HEX RAD ENE VEL LIN EXP MIS BTY DPT BAR PRF USE 48 | 1006 49 | 2010DATA MISSILE,FE, 40, 2, 44, 20, 1, 0, 0, 14, 0,&00 ,1, &1C0 50 | 2020DATA SPCSTN,11C,160,240, 0, 21, 12, 6, 0,120, 0,&00 ,1, 0 51 | 2025REM ...Space Junk... 52 | 2030DATA ESCAP, 54, 16, 17, 8, 6, 4, 0, 0, 8,&20,&01 ,1, 50 53 | 2040DATA PLATLET,40, 10, 16, 16, 04, 1, 0, 0, 05,&80,&00 ,0, 32 54 | 2050DATA BARREL, A8, 20, 17, 15, 12, 3, 0, 0, 12, 0,&00 ,1, 31 55 | 2060DATA BOULDER,A2, 30, 20, 30, 11, 2, 0, 1, 20, 0,&00 ,1, 20 56 | 2070DATA ASTROID,D6, 80, 60, 30, 16, 7, 0, 5, 50, 0,&00 ,0, 25 57 | 2080DATA SPLNTER,3C, 16, 20, 10, 6, 4, 0, 0, 8,&B0,&00 ,0, 30 58 | 2090DATA SHUTTLE,132,50, 32, 8, 27, 8, 0, 0, 22, 15,&21 ,0, 50 59 | 2100DATA TRANSP ,1E2,50, 32, 10, 36, 5, 0, 0, 16, 0,&61 ,0, 51 60 | 2105REM ...Traders... 61 | 2110DATA COBRA, 188, 95,150, 28, 38, 9, 19, 0, 50, 3,&A0 ,0, &2C0 62 | 2120DATA PYTHON, F2, 80,250, 20, 21, 9,&1B, 0, 40, 5,&A0 ,1, &200 63 | 2130DATA BOA, F6, 70,250, 24, 22, 8,&1C, 0, 40, 5,&A0 ,0, &280 64 | 2140DATA ANACON,102,100,252, 14, 22, 10,&3F, 0,&24, 7,&A1 ,0, &300 65 | 2150DATA ASTROID,D6, 80,180, 30, 16, 11, 2, 0, 50, 7,&A1 ,0, &100 66 | 2160DATA VIPER, DA, 75,140, 32, 19, 9, 17, 0, 23, 0,&C2 ,1, 80 67 | 2162REM HEX RAD ENE VEL LIN EXP MIS BTY DPT BAR PRF USE 68 | 2165REM ...Pack Hunters... 69 | 2170DATA SIDEWND,A8, 65, 70, 37, 15, 6, 16, 50, 20, 0,&0C ,1, &100 70 | 2180DATA MAMBA, 12E, 70, 90, 30, 23, 7, 18,150, 25, 1,&8C ,1, &180 71 | 2190DATA TIKRAIT,E6, 60, 80, 30, 21, 3, 16,100, 20, 1,&8C, 1, &100 72 | 2200DATA ADDER, 130, 50, 85, 24, 24, 4, 16, 40, 20, 0,&8C, 0, &110 73 | 2210DATA GECKO, C4, 99, 70, 30, 16, 5, 16, 55, 18, 0,&0C, 0, &100 74 | 2220DATA COBMK1, C6, 99, 90, 26, 17, 5, 18, 75, 19, 3,&8C, 0, &200 75 | 2230DATA WORM, B0, 99, 30, 23, 18, 3, 8, 0, 19, 0,&05, 0, 150 76 | 2235REM ...Lone Wolves... 77 | 2240DATA COBRA, 188, 95,150, 28, 38, 9, 18,175, 50, 1,&8C ,1, &380 78 | 2250DATA ASP, 12A, 60,150, 40, 25, 5,&29,200, 40, 0,&8C, 0, &340 79 | 2260DATA PYTHON, F2, 80,250, 20, 21, 9, 27,200, 40, 2,&8C ,0, &380 80 | 2270DATA FERDELA,11A,40,160, 30, 26, 5,&12, 0, 40, 0,&82, 1, &3C0 81 | 2280DATA MORAY, D8, 30,100, 25, 17, 5, 16, 50, 40, 1,&0C, 0, &240 82 | 2290DATA THAARG,11C, 99,240, 39, 25, 8, 22,500, 55, 0,&0C, 0, &800 83 | 2300DATA TGLET, 6C, 40, 20, 30, 16, 3, 16, 50, 20,&F0,&04, 0, 100 84 | 2310DATA CONSTRI,102,65,252, 36, 19, 10,&34, 0, 45,&03,&04, 0,&1000 85 | 2315REM..................... 86 | 2320REMDATA LOGO, 1B8,99,252, 36, 37, 12, 0, 0, 99,&00,&00, 0 87 | 2330REMDATA COUGAR, 102,70,252, 40, 25, 9, &34, 0, 34,&03,&20 ,1,&1000 88 | 2340DATA DODEC, 15C,180,240, 0, 24, 12, 0, 0,125, 0,&00 ,1,0 89 | 2994 90 | 2995REM HEX RAD ENE VEL LIN EXP MIS BTY DPT BAR PRF USE 91 | 2996 92 | 3000 REM length,hits rad,energy,vel,no.lines+1,no.exp nodes,no.missiles,Bounty,Distance at which point,barrel no,profile,used? 93 | 10000DEF PROCSET(C%):OSCLI("LOAD "+A$+" "+STR$~C%):C%?1=P*P MOD256:C%?2=P*P DIV256:C%?14=Q:C%?15=R:C%?5=4*S+5:C%?7=4*T+6:C%?19=U:C%?10=V MOD256:C%?11=V DIV256:C%?13=W:?C%=X 94 | 10005KW2%=KW/3:E%?(I%-1)=Y:KWL%?(I%-1)=KW2% MOD256:KWH%?(I%-1)=KW2% DIV256 95 | 10010IF 4*T+6>=4*S+1 THEN PRINT"Too many explosion nodes for "A$:STOP 96 | 10040IFA$="SPLNTER" THEN VDU7:OFSET=C3%-C%+C3%?3+(C3%?16)*256:C%?3=OFSET AND255:C%?16=(OFSET AND&FF00)DIV256 97 | 10050IFA$="TGLET" THEN VDU7:OFSET=C2%-C%+C2%?3+(C2%?16)*256:C%?3=OFSET AND255:C%?16=(OFSET AND&FF00)DIV256 98 | 10060ENDPROC 99 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.CODES.txt: -------------------------------------------------------------------------------- 1 | 10REM Prepare the Big Code File 2 | 20 3 | 25REM CODE 4 | 30 5 | 37 REMIF HIMEM <&B800 PRINT"HIBASIC Please":STOP 6 | 60IF Q%<>&12345678 PRINT"I don't know F%,S%,C%,L%!":END 7 | 120HIMEM=L% 8 | 150U%=L%+R%-C%:KEY1=&15 9 | 200*L.ELTA 10 | 210*L.ELTB 11 | 220*L.ELTC 12 | 230*L.ELTD 13 | 240*L.ELTE 14 | 250*L.ELTF 15 | 260*L.ELTG 16 | 270*L.ELTH 17 | 280*L.ELTI 18 | 290*L.ELTJ 19 | 295*L.ELTK 20 | 300OSCLI("L.:2.SHIPS "+STR$~(L%+D%-C%)) 21 | 400DIM CODE&200:FORZ=0TO3STEP3:P%=CODE 22 | 405ZP=&70:ZP2=&72 23 | 410[OPTZ:.ENTRY LDAU%:PHA 24 | 420LDA#KEY1:STA U%:LDA#0:STAZP:LDY#((L%+G%-C%)MOD256):LDA#((L%+G%-C%)DIV256):STAZP+1:LDA#(U%MOD256):STAZP2:LDA#(U%DIV256):STAZP2+1:JSRWUMP:PLA:STAU%:RTS 25 | 450.WUMP LDA(ZP),Y:CLC:INY:BEQWUMP2:ADC(ZP),Y:DEY:STA(ZP),Y:.WUMP3 INY:CPYZP2:BNEWUMP:LDAZP+1:CMPZP2+1:BNEWUMP:RTS 26 | 460.WUMP2 INCZP+1:ADC(ZP),Y:DECZP+1:DEY:STA(ZP),Y:INCZP+1:BNEWUMP3 27 | 480]:NEXTZ 28 | 490CALLENTRY 29 | 500OSCLI"S.:2.CODE1 "+STR$~L% +" +"+STR$~(&9000-C%)+" "+STR$~S%+" "+STR$~C% 30 | 510OSCLI"S.:2.CODE2 "+STR$~(L%+&9000-C%)+" +"+STR$~(&C000-&9000)+" "+STR$~S%+" "+STR$~C% 31 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.DATAS.txt: -------------------------------------------------------------------------------- 1 | 10REM Prepare the Big Code File 2 | 20 3 | 25REM DATA 4 | 30 5 | 100DL%=&B60:DP%=DL% 6 | 110KEY2=&69 7 | 120DIM CODE &4000 8 | 150P%=DL%:O%=CODE 9 | 180[OPT6 10 | 200.WORDS EQUS FNSHUV(":2.A.WORDS",&3E0) 11 | 220.IANTOK EQUS FNSHUV(":2.A.IANTOK",&DBF) 12 | 230.endian 13 | 240] 14 | 245FONT=&1D00 15 | 250OSCLI("L.:1.A.FLOWY "+STR$~(FONT+CODE-DL%)) 16 | 400DIM CODE2&200:FORZ=0TO3STEP3:P%=CODE2 17 | 405ZP=&70:ZP2=&72:U%=&2000+CODE-DL% 18 | 410[OPTZ:.ENTRY LDAU%:PHA 19 | 420LDA#KEY2:STA U%:LDA#0:STAZP:LDY#((WORDS+CODE-DL%)MOD256):LDA#((WORDS+CODE-DL%)DIV256):STAZP+1:LDA#(U%MOD256):STAZP2:LDA#(U%DIV256):STAZP2+1:JSRWUMP:PLA:STAU%:RTS 20 | 450.WUMP LDA(ZP),Y:CLC:INY:BEQWUMP2:ADC(ZP),Y:DEY:STA(ZP),Y:.WUMP3 INY:CPYZP2:BNEWUMP:LDAZP+1:CMPZP2+1:BNEWUMP:RTS 21 | 460.WUMP2 INCZP+1:ADC(ZP),Y:DECZP+1:DEY:STA(ZP),Y:INCZP+1:BNEWUMP3 22 | 480]:NEXTZ 23 | 490CALLENTRY 24 | 510PRINT~DL% P% 25 | 600PRINT"Words: ";~WORDS " Font: ";~FONT" Iantok: ";~IANTOK 26 | 610PRINT'"Free : "FONT-endian 27 | 700INPUT"Insert destination disk in default drive and Press Return"A$ 28 | 750OSCLI"S.:2.DATA "+STR$~CODE +" "+STR$~(&2000+CODE-DL%)+" 0 "+STR$~DL% 29 | 999END 30 | 10000DEF FNSHUV(A$,L):OSCLI("L. "+A$+" "+STR$~O%):O%=O%+L:P%=P%+L:="" 31 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.FONTS.txt: -------------------------------------------------------------------------------- 1 | 10DIM CODE &400 2 | 20OSCLI("L.:3.C.FONT "+STR$~CODE) 3 | 30DIM CODE2 &200 4 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:T=&72 5 | 50[OPTZ:.ENTRY LDX#3:LDY#0:LDA#(CODE MOD256):STA&70:LDA#(CODE DIV256):STA&71 6 | 60.LOOP LDA(&70),Y:STAT 7 | 70LSRT:ROLA:LSRT:ROLA:LSRT:ROLA:LSRT:ROLA :LSRT:ROLA:LSRT:ROLA:LSRT:ROLA:LSRT:ROLA 8 | 80STA(&70),Y:INY:BNELOOP:INC&71:DEX:BNELOOP:RTS 9 | 90]:NEXTZ 10 | 100CALLENTRY 11 | 120OSCLI("S.:2.FONT "+STR$~CODE +" +300") 12 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.GENWORD.txt: -------------------------------------------------------------------------------- 1 | 10 REM Generate WORDS file 2 | 30DIM B% &2000:P%=B% 3 | 40 READA$:IF A$="YIP-YAP-YAROOO!"GOTO110 4 | 42IF A$="" GOTO 65 5 | 45FORN%=1TOLENA$:CH%=ASCMID$(A$,N%,1) 6 | 50 IFCH%=ASC"#"THENGOSUB100:ELSEbyte=CH% 7 | 55IF byte=13 THEN byte=12 8 | 60 ?P%=byte EOR35:P%=P%+1:NEXT 9 | 65?P%=0:P%=P%+1 10 | 70 GOTO40 11 | 100 byte=VAL(MID$(A$,N%+1,3)):N%=N%+4:RETURN 12 | 110PRINT~P%-B%:P%=B%+&3C0:FORI%=0TO31:N=ABS(SIN(I%/64*2*PI)):IFN>=1 I%?P%=&FF:ELSEI%?P%=INT(256*N+.5) 13 | 115NEXTI%:P%=P%+32 14 | 150OSCLI("S.:2.A.WORDS "+STR$~B%+" "+STR$~P% +" A00 A00") 15 | 156END 16 | 160 DATA#111##017##007#," CH#138#T",GO#150#RNM#146#T,D#145#A#017##003#,#140##150#NT#153#Y#013#,SYS#156#M,P#158##133#,#002# #139#RKET #166#S,#140#D#136#T#158##128#,AG#158#CULTU#148#L 17 | 170 DATA#158#CH ,A#150##148##131# ,PO#153# ,#139##140#LY ,UNIT,VIEW ,#154##155##151#TY,#155##138#CHY,FEUD#128#,MUL#151#-#162# 18 | 180 DATA#141#CT#145##153##185#,#251#MUN#157#T,C#159#F#152##144#ACY,DEMOC#148#CY,C#153#P#153##145#E #203##145#E,SHIP,P#254#DUCT," #149#S#144#",HUM#155# COL#159#I#128#,"HYP#144#SPA#133# " 19 | 190 DATASH#153#T #202##161#,#141##203##155##133#,POPUL#145#I#159#,G#254#SS #186#IVITY,EC#159#OMY," LIGHT YE#138#S",#156#CH.#129##150#L,"CASH"," #134##015#I#159#",#122##161##001# 20 | 200 DATAT#138##131#T LO#203#,#106# JAMM#152#,R#155##131#,ST,"#176# OF ",SE#015#," C#138#GO#006#",E#154#IP,FOOD,#156#X#151#L#137# 21 | 210 DATA#148##141#OAC#151##150#S,S#149##150#S,LI#154##153#/W#140##137#,LUXU#158##137#,N#138#CO#151#CS,#251#PUT#144#S,#139#CH#140##144#Y,ALLOYS,FI#142##138#MS,FURS 22 | 220 DATAM#140##144##128#S,GOLD,PL#145##140#UM,#131#M-#203##159##137#,#128#I#146# #127#S,#13##10#(#135#RRY)," CR",L#138##131#,FI#144##133#,S#139##015# 23 | 230 DATAG#142##146#,R#152#,YE#015#OW,BLUE,B#149#CK,#022#,SLIMY,BUG-EY#152#,H#153#N#152#,B#159#Y 24 | 240 DATAF#145#,FURRY,#254#D#146#T,F#254#G,LI#132#RD,LOB#203##144#,#134#RD,HUM#155#OID,FEL#140#E,#140#SECT 25 | 250 DATA#171##148##141##136#,COM,#251#M#155#D#144#," D#137#T#254#Y#152#","RO" 26 | 260 DATA"#174# #176##013# #186# #174# #166# F#153# SA#129##013##010#",FR#159#T,#142##138#,#129#FT,#158#GHT,#121#LOW#007#,#099##017##252#!,EXT#148# ,PULSE#187#,"#147#AM#187#",FUEL 27 | 270 DATAM#157#SI#129#,#227##206# BAY,E.C.M.#165#,#102##103#S,#102##104#S,#105# SCOOPS,#137#CAPE POD,#121#BOMB,#121##174#,DOCK#140#G #215#,#122# #189#,MILIT#138#Y #187#,M#140##140#G #187#,"#197#:#000#",#140##251##140#G #106# 28 | 280 DATA"#146##144#GY ",GA#149#C#151#C,"#115# ON","A#015#" 29 | 290DATA#005##129#G#128# #203##145##136#:,"#252# #004##013##013##013##006##031# #165##009##002##013##189##165##009##003##013#C#159##141##151##159##009#",I#156#M 30 | 300DATA"",LL,#148##151#NG:," #159# ","#013##008##207#M#146#T:#006#",C#129##155#,OFF#146#D#144#,FUGI#151##150#,H#138#M#129#SS,MO#203#LY #022#,#172#,#171#,ABO#150# #171#,#251#PET#146#T 31 | 310DATAD#155##131##254##136#,DEADLY,"---- E L I T E ----","P#142#S#146#T","#008#GAME O#150#R","","" 32 | 400DATA"YIP-YAP-YAROOO!" 33 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.IANTOKS.txt: -------------------------------------------------------------------------------- 1 | 10REM ----Prepare IANTOK--- 2 | 12REM Apple 3 | 50VE=&57 4 | 100DIM CODE &2400:O%=CODE 5 | 110TKN1=&F40 6 | 120P%=TKN1 7 | 1000Z=6 8 | 3000[OPTZ:EQUBVE:] 9 | 3010RESTORE 4010 10 | 3020FORI%=1TO255 11 | 3030READA$:GOSUB10000 12 | 3040IFRIGHT$(A$,1)="#" P%=P%-2:O%=O%-2:GOTO3030 13 | 3050NEXTI% 14 | 3060READ A1$ 15 | 3100READ NRU%:RUPLA=P%:O1%=O%:RUGAL=P%+NRU%:O2%=O%+NRU%:P%=P%+2*NRU%:O%=O%+2*NRU% 16 | 3105[OPTZ:.RUTOK EQUBVE:] 17 | 3110FORI%=0TONRU%-1:READ planet,galaxy,A$ 18 | 3120O1%?I%=planet:O2%?I%=galaxy:GOSUB10000 19 | 3130NEXTI% 20 | 3220READA2$ 21 | 4000REM Line Number=10*Token Number + 4000 22 | 4010DATA"<009><011><001><008> <241>SK AC<233>SS ME<225><215><010><002>1. <149><215>2. SA<250> <154> <004><215>3. DEFAULT <001>JAM<237><223><002><215>4. EX<219><215>" 23 | 4020DATA"","","COMPE<251)<251><223> <225>MB<244>:","<176><109><202><110><177>" 24 | 4060DATA" <149> <001>(Y/N)?<002><012><012>","P<242>SS SPA<233> <253> FI<242>,<154>.<012><012>","<154>'S<200>","<012><001><220><229>G<228> ELITE II FI<229>" 25 | 4095REM......First Mission..... 26 | 4100DATA"<023><014><002>G<242><221><240>GS<213><178><019>I <247>G<208>MOM<246>T OF <179>R V<228>U<216><229> <251>ME<204>#" 27 | 4101DATA"WE W<217>LD LIKE <179><201>DO<208>L<219>T<229> JOB F<253> <236><204><147><207> <179> <218>E HE<242><202>A<210>MODEL, <147><019>C<223><222>RICT<253>, E<254>IP<196>WI<226><208>TOP#" 28 | 4102DATA" <218>CR<221><210>SHIELD G<246><244><245><253><204>UNF<253>TUN<245>ELY <219>'S <247><246> <222>OL<246><204><022>#" 29 | 4103DATA"<219> W<246>T MISS<195>FROM <217>R <207> Y<238>D <223> <019><230><244> FI<250> M<223><226>S AGO<178><028><204><179>R MISSI<223>, SH<217>LD <179> DECIDE<201>AC<233>PT <219>, IS<201><218>EK<178>D<237>TROY #" 30 | 4104DATA"<148><207><204><179> A<242> CAU<251><223><196><226><245> <223>LY <006><117><005>S W<220>L P<246><221><248>TE <147>NEW SHIELDS<178><226><245> <147><019>C<223><222>RICT<253><202>F<219>T<196>WI<226>#" 31 | 4105DATA" <255> <006><108><005><177><002><008>GOOD LUCK, <154><212><022>" 32 | 4108REM.....Second Mission #1..... 33 | 4110DATA"<025><009><023><014><002> <245>T<246><251><223><213>. <019>WE HA<250> NE<196>OF <179>R <218>RVIC<237> AGA<240><204>#" 34 | 4111DATA"IF <179> W<217>LD <247> <235> GOOD AS<201>GO<201><019><233><244><241> <179> W<220>L <247> BRIEF<252><204>IF SUC<233>SSFUL, <179> W<220>L <247> WELL <242>W<238>D<252><212><024>" 35 | 4120DATA"(<019>C)<197> 1985","BY<197>","<021><145><200><026>" 36 | 4140REM......First Mission End...... 37 | 4150DATA"<025><009><023><014><002> C<223>G<248>TU<249><251><223>S <154>!<012><012><226><244>E<013> W<220>L <228>WAYS <247><208>P<249><233> F<253> <179> <240><211><204><255>D <239>Y<247> <235><223><244> <226><255> <179> <226><240>K#" 38 | 4151DATA"..<212><024>" 39 | 4160DATA"F<216><229>D","<227>T<216><229>","WELL K<227>WN","FAMO<236>","<227>T<252>" 40 | 4210DATA"<250>RY","M<220>DLY","MO<222>","<242>AS<223><216>LY","" 41 | 4260DATA"<165>","<114>","G<242><245>","VA<222>","P<240>K" 42 | 4310DATA"<002><119> <118><013> <185>A<251><223>S","<156>S","<117>","<128> F<253><237>TS","O<233><255>S" 43 | 4360DATA"SHYN<237>S","S<220>L<240><237>S","<239>T<195>T<248><241><251><223>S","<224><245>H<195>OF <100>","<224><250> F<253> <100>" 44 | 4410DATA"FOOD B<229>ND<244>S","T<217>RI<222>S","PO<221>RY","<241>SCOS","<108>" 45 | 4460DATA"W<228>K<195><158>","C<248>B","B<245>","<224>B<222>","<018>" 46 | 4510DATA"<247>S<221>","P<249>GU<252>","<248>VAG<252>","CURS<252>","SC<217>RG<252>" 47 | 4560DATA"<113> CIV<220> W<238>","<104> <095> <096>S","A <104> <241><218>A<218>","<113> E<238><226><254>AK<237>","<113> <235><249>R AC<251>V<219>Y" 48 | 4610DATA"<175><093> <094>","<147><017> <095> <096>","<175><193>S' <098> <099>","<002><122><013>","<175><107> <108>" 49 | 4660DATA"JUI<233>","B<248>NDY","W<245><244>","B<242>W","G<238>G<229> B<249><222><244>S" 50 | 4710DATA"<018>","<017> <096>","<017> <018>","<017> <104>","<104> <018>" 51 | 4760DATA"F<216>U<224><236>","EXO<251>C","HOOPY","U<225>SU<228>","EXC<219><240>G" 52 | 4810DATA"CUIS<240>E","NIGHT LIFE","CASI<227>S","S<219> COMS","<002><122><013>" 53 | 4860DATA"<003>","<147><145> <003>","<147><146> <003>","<148><145>","<148><146>" 54 | 4910DATA"S<223> OF<208>B<219>CH","SC<217>ND<242>L","B<249>CKGU<238>D","ROGUE","WH<253><237><223> <247><221><229> HEAD<196>F<249>P E<238>'D KNA<250>" 55 | 4960DATA"N UN<242><239>RK<216><229>"," B<253><240>G"," DULL"," TE<241>O<236>"," <242>VOLT<240>G" 56 | 5010DATA"<145>","<146>","P<249><233>","L<219>T<229> <145>","DUMP" 57 | 5060DATA"I HE<238><208><114> <224>OK<195><207> APPE<238><196><245><209>","YEAH, I HE<238><208><114> <207> <229>FT<209><208> WHI<229> BACK","G<221> <179>R IR<223> ASS OV<244> TO<209>" 58 | 5090DATA"<235>ME <115><210><207> WAS <218><246> <245><209>","TRY<209>" 59 | 5110DATA"","","","" 60 | 5150DATA"WASP","MO<226>","GRUB","<255>T","<018>" 61 | 5200DATA"PO<221>","<238>TS G<248>DU<245>E","YAK","SNA<220>","SLUG" 62 | 5250DATA"TROPIC<228>","D<246><218>","<248><240>","IMP<246><221><248>B<229>","EXU<247><248>NT" 63 | 5300DATA"FUNNY","WEIRD","U<225>SU<228>","<222><248>N<231>","PECULI<238>" 64 | 5350DATA"F<242><254><246>T","OCCASI<223><228>","UNP<242><241>CT<216><229>","D<242>ADFUL","<171>" 65 | 5400DATA"<092> <091> F<253> <101>","<140><178><101>","<102> BY <103>","<140> BUT <142>"," A<111> <112>" 66 | 5450DATA"PL<255><221>","W<253>LD","<226>E ","<226>IS ","<224>AD<210><154>" 67 | 5500DATA"<009><011><001><008>","DRI<250>"," C<245>A<224>GUE","I<255>","<019>COMM<255>D<244>" 68 | 5550DATA"<104>","M<217>NTA<240>","<252>IB<229>","T<242>E","SPOTT<252>" 69 | 5600DATA"<120>","<121>","<097>OID","<127>","<126>" 70 | 5650DATA"<255>CI<246>T","EX<233>P<251><223><228>","EC<233>NTRIC","<240>G<248><240><252>","<114>" 71 | 5700DATA"K<220>L<244>","DEADLY","EV<220>","<229><226><228>","VICIO<236>" 72 | 5750DATA"<219>S ","<013><014><019>",".<012><015>"," <255>D ","Y<217>" 73 | 5800DATA"P<238>K<195>M<221><244>S","D<236>T C<224>UDS","I<233> <247>RGS","ROCK F<253><239><251><223>S","VOLCA<227><237>" 74 | 5850DATA"PL<255>T","TULIP","B<255><255>A","C<253>N","<018>WE<252>" 75 | 5900DATA"<018>","<017> <018>","<017> <104>","<240>HA<234>T<255>T","<191>" 76 | 5950DATA"<240>G ","<252> "," D.B<248><247>N & I.<247>LL","" 77 | 5980REM.......Tribble Offer...... 78 | 5990DATA"" 79 | 6000DATA" NAME? "," TO "," IS ","WAS <249><222> <218><246> <245> <019>",".<012> <019>" 80 | 6050DATA"DOCK<252>","<001>(Y/N)?","SHIP"," A "," <244>RI<236>" 81 | 6100DATA" NEW ","<002> H<244> <239>J<237>TY'S SPA<233> NAVY<013>","<177><008><001> M<237>SA<231> <246>DS"," <154> <004>, I <013>AM<002> CAPTA<240> <027> <013>OF<211>","" 82 | 6150DATA"<015> UNK<227>WN <145>","<009><008><023><001> <240>COM<195>M<237>SA<231>","CURRU<226><244>S","FOSDYKE SMY<226>E","F<253>T<237><254>E" 83 | 6200DATA"<203><242><237><241><233>","IS <247>LIEV<252><201>HA<250> JUMP<252><201><148>G<228>AXY" 84 | 6210REM.....Second Mission #2..... 85 | 6220DATA"<025><009><029><014><002>GOOD DAY <154> <004><204>I<013> AM <019>AG<246>T <019>B<249>KE OF <019>NAV<228> <019><240>TEL<229>G<246><233><204>AS <179> K<227>W, <147><019>NAVY HA<250> <247><246> KEEP#" 86 | 6221DATA"<195><147><019><226><238>GOIDS OFF <179>R ASS <217>T <240> DEEP SPA<233> F<253> <239>NY YE<238>S <227>W. <019>WELL <147>S<219>UA<251><223> HAS CH<255>G<252><204><217>R BOYS <238>E <242>ADY F<253><208>PUSH RIGHT<201><147>#" 87 | 6222DATA"HOME SYSTEM OF <226>O<218> MURD<244><244>S<204><024><009><029>I<013> HA<250> OBTA<240><196><147>DEF<246><233> P<249>NS F<253> <226>EIR <019>HI<250> <019>W<253>LDS<204><147><247><221><229>S K<227>W WE'<250> GOT <235>ME<226>#" 88 | 6223DATA"<195>BUT <227>T WH<245><204>IF <019>I T<248>NSM<219> <147>P<249>NS<201><217>R BA<218> <223> <019><234><242><248> <226>EY'LL <240>T<244><233>PT <147>TR<255>SMISSI<223>.#" 89 | 6224DATA" <019>I NE<252><208><207><201><239>KE <147>RUN<204><179>'<242> E<229>CT<252>#" 90 | 6226DATA"<204><147>P<249>NS A<242> UNIPUL<218> COD<196>WI<226><240> <148>TR<255>SMISSI<223><204><008><179> W<220>L <247> PAID<204> <019>GOOD LUCK <154><212><024>" 91 | 6228REM......2nd Mission End...... 92 | 6230DATA"<025><009><029><008><014><013><019>WELL D<223>E <154><204><179> HA<250> <218>RV<196>US WELL<178>WE SH<228>L <242>MEMB<244><204>#" 93 | 6231DATA"WE DID <227>T EXPECT <147><019><226><238>GOIDS<201>F<240>D <217>T AB<217>T <179><204>#" 94 | 6233DATA"F<253> <147>MOM<246>T P<229>A<218> AC<233>PT <148>#" 95 | 6234DATA"<019>NAVY <006><114><005> AS PAYM<246>T<212><024>" 96 | 6240DATA"A<242> <179> SU<242>?" 97 | 6250DATA"SH<242>W","<247>A<222>","BIS<223>","SNAKE","WOLF" 98 | 6300DATA"<229>OP<238>D","C<245>","M<223>KEY","GO<245>","FISH" 99 | 6350DATA"<106> <105>","<017> <120> <123>","<175><107> <121> <123>","<124> <125>","<106> <105>" 100 | 6400DATA"ME<245>","CUTL<221>","<222>EAK","BURG<244>S","<235>UP" 101 | 6450DATA"I<233>","MUD","Z<244>O-<019>G","VACUUM","<017> ULT<248" 102 | 6500DATA"HOCKEY","CRICK<221>","K<238><245>E","PO<224>","T<246>NIS" 103 | 6550DATA"<012><030> <244>R<253>","WAZOOM!" 104 | 6700DATA 26 105 | 7000DATA 211,128, "<147>CO<224>NI<222>S HE<242> HA<250> VIOL<245><252><002> <240>T<244>G<228>AC<251>C C<224>N<195>PROTOCOL<013><178>SH<217>LD <247> AVOID<252>" 106 | 7001REM Teorge 107 | 7010DATA 150,0, "<147>C<223><222>RICT<253> <203><242><237><241><233>, <154>" 108 | 7011REM Xeer 109 | 7020DATA 36,0, "A <114> <224>OK<195><207> <229>FT HE<242><208>WHI<229> BACK. LOOK<196>B<217>ND F<253> <238>E<230>" 110 | 7021REM Reesdice 111 | 7030DATA 28,0, "YEP,<208><114><210><207> HAD<208>G<228>AC<251>C HYP<244>DRI<250> F<219>T<196>HE<242>. <236><196><219> TOO" 112 | 7031REM Arexe 113 | 7040DATA 253,1, "<148> <114> <207> DEHYP<196>HE<242> FROM <227>WHE<242>, SUN SKIMM<252><178>JUMP<252>. I HE<238> <219> W<246>T<201><240><234><247>" 114 | 7041REM Errius 115 | 7050DATA 79,1, "<115> <207> W<246>T F<253> ME <245> A<236><238>. MY <249>S<244>S DIDN'T EV<246> SC<248>TCH <147><115>" 116 | 7051REM Inbibe 117 | 7060DATA 53,1, "OH DE<238> ME Y<237>.<208>FRIGHTFUL ROGUE WI<226> WH<245> I <247>LIE<250> <179> PEOP<229> C<228>L<208><229>AD PO<222><244>I<253> SHOT UP <224>TS OF <226>O<218> <247>A<222>LY PI<248>T<237><178>W<246>T<201><236><229>RI" 118 | 7061REM Ausar 119 | 7070DATA 118,1, "<179> C<255> TACK<229> <147><104> <115> IF <179> LIKE. HE'S <245> <253><238><248>" 120 | 7071REM Usleri 121 | 7080DATA 100,130, "<001>COM<195><235><223>: EL<219>E II" 122 | 7081REM 3d Gal 123 | 7090DATA 32,1, "<116>" 124 | 7100DATA 68,1, "<116>" 125 | 7110DATA 164,1, "<116>" 126 | 7120DATA 220,1, "<116>" 127 | 7130DATA 106,1, "<116>" 128 | 7140DATA 16,1, "<116>" 129 | 7150DATA 162,1, "<116>" 130 | 7160DATA 3,1, "<116>" 131 | 7170DATA 107,1, "<116>" 132 | 7180DATA 26,1, "<116>" 133 | 7190DATA 192,1, "<116>" 134 | 7200DATA 184,1, "<116>" 135 | 7210DATA 5,1, "<116>" 136 | 7211REM Pointers to Errius 137 | 7220DATA 101,2, "BOY A<242> <179> <240> <147>WR<223>G G<228>AXY!" 138 | 7221REM 3d Galaxy 139 | 7230DATA 193,1, "<226><244>E'S<208><242><228> <115> PI<248>TE <217>T <226><244>E" 140 | 7231REM Orrara 141 | 7240DATA 41,&82,"<147><193>S OF <109> A<242> <235> A<239>Z<240>GLY PRIMI<251><250> <226><245> <226>EY <222><220>L <226><240>K <019>***** ******<202> 3D" 142 | 7241REM 4th Gal 143 | 7300DATA 1,&90,"<001>WELCOME<201> <147><218><250>NTE<246><226> GA<249>XY!" 144 | 7490DATA "WAZEE!" 145 | 9000REM 146 | 9920OSCLI"SAVE :2.IANTOK "+STR$~CODE+" "+STR$~O%+" "+STR$~TKN1+" "+STR$~TKN1 147 | 9930PRINT~TKN1 RUTOK RUPLA RUGAL ,NRU% 148 | 9940PRINT~RUTOK-TKN1 RUPLA-TKN1 RUGAL-TKN1 149 | 9950PRINT"RUTOK RUPLA RUGAL" 150 | 9999END 151 | 10000IF A$=""THEN?O%=0EORVE:O%=O%+1:P%=P%+1:RETURN 152 | 10010FORJ%=1TOLENA$:IF MID$(A$,J%,1)="<" THEN [OPTZ:EQUB(VAL(MID$(A$,J%+1,3)))EORVE:]:J%=J%+4 ELSE [OPTZ:EQUB(ASC(MID$(A$,J%,1)))EORVE:] 153 | 10020NEXTJ%:[OPTZ:EQUBVE:]:RETURN 154 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.SCREEN.txt: -------------------------------------------------------------------------------- 1 | 5REM PREPARE INITIAL APPLE SCREEN 2 | 6MODE5:HIMEM=&3000 3 | 10SP=&3000 4 | 20OSCLI("L.:2.$.DIALS5 6D48") 5 | 30CODE2=&5000 6 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:SC=&70:T=&72:CNT1=&73:CNT2=&74:ZP=&76:T1=&78:T2=&79 7 | 42SCH=SC+1 8 | 50[OPTZ:.ENTRY 9 | 60LDX#&20:LDA#(SP MOD256):STASC:LDA#(SP DIV256):STASC+1:LDA#0:TAY 10 | 70.LOOP1 STA(SC),Y:INY:BNELOOP1:INCSC+1:DEX:BNELOOP1 11 | 80.LOOP2 LDX#0:.LOOP3 JSRpoint:BEQdont:JSRplot:.dont INX:INX:BNELOOP3 12 | 90.LOOP4 JSRpoint2:BEQP%+5:JSRplot2:INX:INX:CPX#&18:BNELOOP4 13 | 100INY:CPY#192:BNELOOP2 14 | 110RTS 15 | 150.point STYT1:STXT2:LDA#0:STASC:TYA:LSRA:LSRA:LSRA:STASCH:LSRA:RORSC:LSRA:RORSC:ADCSCH:ADC#&58:STASCH:TXA:AND#&F8:ADCSC:STASC:BCCP%+4:INCSCH:TYA:AND#7:TAY:TXA:AND#7:TAX 16 | 160LDA#0:STAT:LDA(SC),Y:PHA:EORMO5T,X:STA(SC),Y:PLA:ANDMO5T,X:CMP#&10:ROLT:AND#15:CMP#1:ROLT:LDYT1:LDXT2:LDAT:RTS 17 | 170.point2 STYT1:STXT2:LDA#0:STASC:TYA:LSRA:LSRA:LSRA:STASCH:LSRA:RORSC:LSRA:RORSC:ADCSCH:ADC#&59:STASCH:TXA:AND#&F8:ADCSC:STASC:BCCP%+4:INCSCH:TYA:AND#7:TAY:TXA:AND#7:TAX 18 | 180LDA#0:STAT:LDA(SC),Y:PHA:EORMO5T,X:STA(SC),Y:PLA:ANDMO5T,X:CMP#&10:ROLT:AND#15:CMP#1:ROLT:LDYT1:LDXT2:LDAT:RTS 19 | 190.MO5T EQUD&44448888:EQUD&11112222 20 | 194\.... 21 | 200.plot STYT1:STXT2:STAT:CMP#2:BNEP%+3:INX 22 | 205LDAT1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 23 | 210LDYSCTBX1,X:LDAAPT,Y:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX1,X:LDAAPT,Y:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:.plr LDXT2:LDYT1:RTS 24 | 230\.... 25 | 300.plot2 STYT1:STXT2:CMP#2:BNEP%+3:INX:STAT:LDAT1 26 | 305LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 27 | 310LDYSCTBX12,X:LDAAPT,Y:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX12,X:LDAAPT,Y:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDXT2:LDYT1:RTS 28 | 380\.... 29 | 400.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 30 | 402 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 31 | 404 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 32 | 410.SCTBH EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 33 | 412 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 34 | 414 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 35 | 420.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%MOD7:NEXT 36 | 430P%=P%+&100:O%=O%+&100:[OPTZ 37 | 440.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%DIV7:NEXT 38 | 450P%=P%+&100:O%=O%+&100:[OPTZ 39 | 460.SCTBX12 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)MOD7:NEXT 40 | 470P%=P%+&100:O%=O%+&100:[OPTZ 41 | 480.SCTBX22 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)DIV7:NEXT 42 | 490P%=P%+&100:O%=O%+&100:[OPTZ 43 | 510.APT EQUD&08040201:EQUD&80402010 44 | 580\.... 45 | 700.SLIDE LDA#2:STACNT1 46 | 710.LOOP1 LDA#&00:STAZP:LDA#&58:STAZP+1:LDA#32:STACNT2 47 | 720.LOOP2 LDY#7 48 | 730.LOOP3 LDX#39:LDA#0:STAT1:LDAZP:STASC:LDAZP+1:STASC+1 49 | 740.LOOP4 LDA(SC),Y:AND#&11:ASLA:ASLA:ASLA:PHA:LDA(SC),Y:AND#&EE:LSRA:ORAT1:STA(SC),Y:PLA:STAT1 50 | 745LDASC:CLC:ADC#8:STASC:BCCP%+4:INCSC+1:DEX:BPLLOOP4 51 | 750DEY:BPLLOOP3 52 | 760LDAZP:CLC:ADC#&40:STAZP:LDAZP+1:ADC#1:STAZP+1:DECCNT2:BNELOOP2 53 | 770DECCNT1:BNELOOP1 54 | 780RTS 55 | 800]:NEXTZ 56 | 1600GCOL0,2 57 | 2000PROCM(7,24*8-1):PROCD(7,0) 58 | 2010PROCM(&108,24*8-1):PROCD(&108,0) 59 | 2020PRINTTAB(3,5)"SCREEN DUMP" 60 | 2030PRINTTAB(3,7)"PICTURE HERE" 61 | 2040COLOUR2:PRINTTAB(3,10)"28 JULY 85" 62 | 3000CALLSLIDE 63 | 3010CALLENTRY 64 | 3100OSCLI("S.:2.A.SCREEN "+STR$~SP +" +2000 2000") 65 | 3200REMOSCLI("MSEND "+STR$~SP +" +2000 2000") 66 | 4000END 67 | 5000DEFPROCD(X,Y):DRAW4*X,1020-4*Y:ENDPROC 68 | 5100DEFPROCM(X,Y):MOVE4*X,1020-4*Y:ENDPROC 69 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.SCREEN2 (drive 0).txt: -------------------------------------------------------------------------------- 1 | 5REM PREPARE INITIAL APPLE SCREEN 2 | 6MODE2 3 | 7DIM C%(8) 4 | 10SP=&3000:HIMEM=SP 5 | 15FORI%=&3000TO&4FFC STEP4:!I%=0:NEXT 6 | 20OSCLI("L.:2.$.DIALS25 FFFF5A90") 7 | 30CODE2=&5000 8 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:T=&72:CNT1=&73:CNT2=&74:ZP=&76:T1=&78:T2=&79:T3=&7A:SC=&80 9 | 42SCH=SC+1 10 | 50RED=5:GREEN=1:VIOLET=2:BLUE=4:WHITE=3 11 | 60C%(0)=0:C%(1)=0:C%(2)=GREEN:C%(3)=BLUE:C%(4)=WHITE 12 | 70C%(5)=VIOLET:C%(6)=GREEN:C%(7)=0:C%(8)=RED 13 | 100[OPTZ:.ENTRY 14 | 200.plot STYT1:STXT2:STAT:LSRA:BCCP%+3:INX:CMP#2:LDA#&FF:RORA:STAT3 15 | 205LDAT1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 16 | 210LDYSCTBX1,X:LDAAPT,Y:ANDT3:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX1,X:LDAAPT,Y:ANDT3:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:.plr LDXT2:LDYT1:RTS 17 | 230\.... 18 | 300.plot2 STYT1:STXT2:STAT:LSRA:BCCP%+3:INX:CMP#2:LDA#&FF:RORA:STAT3:LDAT1 19 | 305LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 20 | 310LDYSCTBX12,X:LDAAPT,Y:ANDT3:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX12,X:LDAAPT,Y:ANDT3:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDXT2:LDYT1:RTS 21 | 380\.... 22 | 400.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 23 | 402 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 24 | 404 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 25 | 410.SCTBH EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 26 | 412 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 27 | 414 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 28 | 420.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%MOD7:NEXT 29 | 430P%=P%+&100:O%=O%+&100:[OPTZ 30 | 440.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%DIV7:NEXT 31 | 450P%=P%+&100:O%=O%+&100:[OPTZ 32 | 460.SCTBX12 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)MOD7:NEXT 33 | 470P%=P%+&100:O%=O%+&100:[OPTZ 34 | 480.SCTBX22 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)DIV7:NEXT 35 | 490P%=P%+&100:O%=O%+&100:[OPTZ 36 | 510.APT EQUD&88848281:EQUD&80C0A090 37 | 580\.... 38 | 800]:NEXTZ 39 | 1600GCOL0,3 40 | 2000PROCM(7,24*8-1):PROCD(7,0):PROCD(&108,0) 41 | 2010PROCM(&108,24*8-1):PROCD(&108,0) 42 | 2020COLOUR5:PRINTTAB(3,5)"SCREEN DUMP" 43 | 2030PRINTTAB(3,7)"PICTURE HERE" 44 | 2040COLOUR2:PRINTTAB(3,10)"23 SEPT 1985" 45 | 3000GCOL3,7 46 | 3010FORX%=0TO278 STEP2:FORY%=0TO191:A%=C%(POINT(4*X%,1020-4*Y%)) 47 | 3020IF A%=0 GOTO3030 48 | 3025IF X%>255 CALLplot2 ELSE CALLplot 49 | 3030NEXT:PLOT69,4*X%,4:NEXT 50 | 3100OSCLI("S.:2.A.SCREEN "+STR$~SP +" +2000 2000") 51 | 3200OSCLI("MSEND "+STR$~SP +" +2000 2000") 52 | 4000END 53 | 5000DEFPROCD(X,Y):DRAW4*X,1020-4*Y:ENDPROC 54 | 5100DEFPROCM(X,Y):MOVE4*X,1020-4*Y:ENDPROC 55 | -------------------------------------------------------------------------------- /1-source-files/original-sources/S.SCREEN2.txt: -------------------------------------------------------------------------------- 1 | 5REM PREPARE INITIAL APPLE SCREEN 2 | 6MODE2 3 | 7DIM C%(8) 4 | 10SP=&3000:HIMEM=SP 5 | 15FORI%=&3000TO&4FFC STEP4:!I%=0:NEXT 6 | 20OSCLI("L.:2.$.DIALS25 FFFF5A90") 7 | 30CODE2=&5000 8 | 40FORZ=4TO6STEP2:P%=CODE2:O%=CODE2:T=&72:CNT1=&73:CNT2=&74:ZP=&76:T1=&78:T2=&79:T3=&7A:SC=&80 9 | 42SCH=SC+1 10 | 50RED=5:GREEN=1:VIOLET=2:BLUE=4:WHITE=3 11 | 60C%(0)=0:C%(1)=0:C%(2)=GREEN:C%(3)=BLUE:C%(4)=WHITE 12 | 70C%(5)=VIOLET:C%(6)=GREEN:C%(7)=0:C%(8)=RED 13 | 100[OPTZ:.ENTRY 14 | 200.plot STYT1:STXT2:STAT:LSRA:BCCP%+3:INX:CMP#2:LDA#&FF:RORA:STAT3 15 | 205LDAT1:LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 16 | 210LDYSCTBX1,X:LDAAPT,Y:ANDT3:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX1,X:LDAAPT,Y:ANDT3:LDYSCTBX2,X:ORA(SC),Y:STA(SC),Y:.plr LDXT2:LDYT1:RTS 17 | 230\.... 18 | 300.plot2 STYT1:STXT2:STAT:LSRA:BCCP%+3:INX:CMP#2:LDA#&FF:RORA:STAT3:LDAT1 19 | 305LSRA:LSRA:LSRA:TAY:LDASCTBL,Y:STASC:LDAT1:AND#7:ASLA:ASLA:ADCSCTBH,Y:STASC+1 20 | 310LDYSCTBX12,X:LDAAPT,Y:ANDT3:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDAT:CMP#3:BNEplr:INX:LDYSCTBX12,X:LDAAPT,Y:ANDT3:LDYSCTBX22,X:ORA(SC),Y:STA(SC),Y:LDXT2:LDYT1:RTS 21 | 380\.... 22 | 400.SCTBL EQUW&8000:EQUW&8000:EQUW&8000:EQUW&8000 23 | 402 EQUW&A828:EQUW&A828:EQUW&A828:EQUW&A828 24 | 404 EQUW&D050:EQUW&D050:EQUW&D050:EQUW&D050 25 | 410.SCTBH EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 26 | 412 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 27 | 414 EQUW&3030:EQUW&3131:EQUW&3232:EQUW&3333 28 | 420.SCTBX1 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%MOD7:NEXT 29 | 430P%=P%+&100:O%=O%+&100:[OPTZ 30 | 440.SCTBX2 :]:IF Z=6 FOR I%=0TO255:I%?O%=I%DIV7:NEXT 31 | 450P%=P%+&100:O%=O%+&100:[OPTZ 32 | 460.SCTBX12 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)MOD7:NEXT 33 | 470P%=P%+&100:O%=O%+&100:[OPTZ 34 | 480.SCTBX22 :]:IF Z=6 FOR I%=0TO255:I%?O%=(I%+256)DIV7:NEXT 35 | 490P%=P%+&100:O%=O%+&100:[OPTZ 36 | 510.APT EQUD&88848281:EQUD&80C0A090 37 | 580\.... 38 | 800]:NEXTZ 39 | 1600GCOL0,3 40 | 2000PROCM(7,24*8-1):PROCD(7,0):PROCD(&108,0) 41 | 2010PROCM(&108,24*8-1):PROCD(&108,0) 42 | 2020COLOUR5:PRINTTAB(3,5)"SCREEN DUMP" 43 | 2030PRINTTAB(3,7)"PICTURE HERE" 44 | 2040COLOUR2:PRINTTAB(3,10)"1 SEPT 1985" 45 | 3000GCOL3,7 46 | 3010FORX%=0TO278 STEP2:FORY%=0TO191:A%=C%(POINT(4*X%,1020-4*Y%)) 47 | 3020IF A%=0 GOTO3030 48 | 3025IF X%>255 CALLplot2 ELSE CALLplot 49 | 3030NEXT:PLOT69,4*X%,4:NEXT 50 | 3100OSCLI("S.:2.A.SCREEN "+STR$~SP +" +2000 2000") 51 | 3200OSCLI("MSEND "+STR$~SP +" +2000 2000") 52 | 4000END 53 | 5000DEFPROCD(X,Y):DRAW4*X,1020-4*Y:ENDPROC 54 | 5100DEFPROCM(X,Y):MOVE4*X,1020-4*Y:ENDPROC 55 | -------------------------------------------------------------------------------- /1-source-files/other-files/4am-crack/blank.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/other-files/4am-crack/blank.dsk -------------------------------------------------------------------------------- /1-source-files/other-files/4am-crack/elite#0x0801.bas: -------------------------------------------------------------------------------- 1 | 10 D$ = CHR$ (4) 2 | 20 PRINT D$;"BRUN ELA" 3 | 30 PRINT D$;"BRUN SEC3" 4 | -------------------------------------------------------------------------------- /1-source-files/other-files/README.md: -------------------------------------------------------------------------------- 1 | # Other files for the Apple II version of Elite 2 | 3 | This folder contains other binaries from the original game disk for the Apple II version of Elite on Ian Bell's personal website. 4 | 5 | * [4am-crack/blank.dsk](4am-crack/blank.dsk) is a blank Apple DOS disk that contains the correct hello BASIC program for each variant 6 | 7 | * [4am-crack/elite#0x0801.bas](4am-crack/elite#0x0801.bas) is the BASIC loader for the game 8 | 9 | I can't seem to persuade diskm8 to add the BASIC loader program to the disk image in a way that works (I just get I/O errors), so this folder includes pre-rolled disk images for each variant that already contain the correct versions of the loader program for each variant. 10 | 11 | --- 12 | 13 | Right on, Commanders! 14 | 15 | _Mark Moxon_ -------------------------------------------------------------------------------- /1-source-files/other-files/ib-disk/blank.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/other-files/ib-disk/blank.dsk -------------------------------------------------------------------------------- /1-source-files/other-files/ib-disk/hello#0x0801.bas: -------------------------------------------------------------------------------- 1 | 10 TEXT : HOME 2 | 20 PRINT CHR$ (4);"BLOAD ELITEPIC,A$2000" 3 | 30 POKE 49234,0: POKE 49232,0: POKE 49239,0 4 | 40 POKE - 16255,0: POKE - 16255,0 5 | 50 PRINT CHR$ (4);"BLOAD NINE,A$D000" 6 | 60 POKE - 16254,0 7 | 70 PRINT CHR$ (4);"BLOAD FOUR,A$4000" 8 | 80 PRINT CHR$ (4);"BLOAD BEE,A$B00" 9 | 90 PRINT CHR$ (4);"BRUN MOVER,A$300" 10 | -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-build/blank.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/other-files/source-disk-build/blank.dsk -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-build/hello#0x0801.bas: -------------------------------------------------------------------------------- 1 | 10 TEXT : HOME 2 | 20 PRINT CHR$ (4);"BLOAD ELITEPIC,A$2000" 3 | 30 POKE 49234,0: POKE 49232,0: POKE 49239,0 4 | 40 POKE - 16255,0: POKE - 16255,0 5 | 50 PRINT CHR$ (4);"BLOAD NINE,A$D000" 6 | 60 POKE - 16254,0 7 | 70 PRINT CHR$ (4);"BLOAD FOUR,A$4000" 8 | 80 PRINT CHR$ (4);"BLOAD BEE,A$B60" 9 | 90 PRINT CHR$ (4);"BRUN MOVER,A$300" 10 | -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-code-files/blank.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/other-files/source-disk-code-files/blank.dsk -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-code-files/hello#0x0801.bas: -------------------------------------------------------------------------------- 1 | 10 TEXT : HOME 2 | 20 PRINT CHR$ (4);"BLOAD ELITEPIC,A$2000" 3 | 30 POKE 49234,0: POKE 49232,0: POKE 49239,0 4 | 40 POKE - 16255,0: POKE - 16255,0 5 | 50 PRINT CHR$ (4);"BLOAD NINE,A$D000" 6 | 60 POKE - 16254,0 7 | 70 PRINT CHR$ (4);"BLOAD FOUR,A$4000" 8 | 80 PRINT CHR$ (4);"BLOAD BEE,A$B60" 9 | 90 PRINT CHR$ (4);"BRUN MOVER,A$300" 10 | -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-elt-files/blank.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/1-source-files/other-files/source-disk-elt-files/blank.dsk -------------------------------------------------------------------------------- /1-source-files/other-files/source-disk-elt-files/hello#0x0801.bas: -------------------------------------------------------------------------------- 1 | 10 TEXT : HOME 2 | 20 PRINT CHR$ (4);"BLOAD ELITEPIC,A$2000" 3 | 30 POKE 49234,0: POKE 49232,0: POKE 49239,0 4 | 40 POKE - 16255,0: POKE - 16255,0 5 | 50 PRINT CHR$ (4);"BLOAD NINE,A$D000" 6 | 60 POKE - 16254,0 7 | 70 PRINT CHR$ (4);"BLOAD FOUR,A$4000" 8 | 80 PRINT CHR$ (4);"BLOAD BEE,A$B60" 9 | 90 PRINT CHR$ (4);"BRUN MOVER,A$300" 10 | -------------------------------------------------------------------------------- /2-build-files/README.md: -------------------------------------------------------------------------------- 1 | # Build files for the Apple II version of Elite 2 | 3 | This folder contains support scripts for building the Apple II version of Elite. 4 | 5 | * [crc32.py](crc32.py) calculates checksums during the verify stage and compares the results with the relevant binaries in the [4-reference-binaries](../4-reference-binaries) folder 6 | 7 | * [elite-checksum.py](elite-checksum.py) adds checksums and encryption to the assembled output 8 | 9 | * [elite-decrypt.py](elite-decrypt.py) decrypts an encrypted game binary by doing the opposite to the elite-checksum.py script (this is not used in the build process, but is useful when trying to decrypt any new releases that might be found) 10 | 11 | It also contains the `make.exe` executable for Windows, plus the required DLL files. 12 | 13 | --- 14 | 15 | Right on, Commanders! 16 | 17 | _Mark Moxon_ -------------------------------------------------------------------------------- /2-build-files/crc32.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # ****************************************************************************** 4 | # 5 | # ELITE VERIFICATION SCRIPT 6 | # 7 | # Written by Kieran Connell, extended by Mark Moxon 8 | # 9 | # This script performs checksums on the compiled files from the build process, 10 | # and checks them against the extracted files from the original source disk 11 | # 12 | # ****************************************************************************** 13 | 14 | from __future__ import print_function 15 | import sys 16 | import os 17 | import os.path 18 | import zlib 19 | 20 | 21 | def main(): 22 | if len(sys.argv) <= 2: 23 | # Do CRC on single folder 24 | folder = sys.argv[1] if len(sys.argv) == 2 else "." 25 | names = sorted(os.listdir(folder)) 26 | 27 | print() 28 | print('Checksum Size Filename') 29 | print('------------------------------------------') 30 | 31 | for name in names: 32 | if name.endswith(".bin"): 33 | full_name = os.path.join(folder, name) 34 | if not os.path.isfile(full_name): 35 | continue 36 | with open(full_name, 'rb') as f: 37 | data = f.read() 38 | print('%08x %5d %s' % ( 39 | zlib.crc32(data) & 0xffffffff, 40 | len(data), 41 | full_name) 42 | ) 43 | print() 44 | else: 45 | # Do CRC on two folders 46 | folder1 = sys.argv[1] 47 | names1 = sorted(os.listdir(folder1)) 48 | folder2 = sys.argv[2] 49 | names2 = sorted(os.listdir(folder2)) 50 | names = list(names1) 51 | names.extend(x for x in names2 if x not in names) 52 | 53 | if '4-reference-binaries' in folder1: 54 | src = '[--originals--]' 55 | elif 'output' in folder1: 56 | src = '[---output----]' 57 | else: 58 | src = '[{0: ^13}]'.format(folder1[0:13]).replace(' ', '-') 59 | 60 | if '4-reference-binaries' in folder2: 61 | dest = '[--originals--]' 62 | elif 'output' in folder2: 63 | dest = '[---output----]' 64 | else: 65 | dest = '[{0: ^13}]'.format(folder2[0:13]).replace(' ', '-') 66 | 67 | print('Results for variant: ' + os.path.basename(folder1)) 68 | print(src + ' ' + dest) 69 | print('Checksum Size Checksum Size Match Filename') 70 | print('-----------------------------------------------------------') 71 | 72 | for name in names: 73 | if name.endswith(".bin"): 74 | full_name1 = os.path.join(folder1, name) 75 | full_name2 = os.path.join(folder2, name) 76 | 77 | if name in names1 and name in names2 and os.path.isfile(full_name1) and os.path.isfile(full_name2): 78 | with open(full_name1, 'rb') as f: 79 | data1 = f.read() 80 | with open(full_name2, 'rb') as f: 81 | data2 = f.read() 82 | crc1 = zlib.crc32(data1) & 0xffffffff 83 | crc2 = zlib.crc32(data2) & 0xffffffff 84 | match = ' Yes ' if crc1 == crc2 and len(data1) == len(data2) else ' No ' 85 | print('%08x %5d %08x %5d %s %s' % ( 86 | crc1, 87 | len(data1), 88 | crc2, 89 | len(data2), 90 | match, 91 | name) 92 | ) 93 | elif name in names1 and os.path.isfile(full_name1): 94 | with open(full_name1, 'rb') as f: 95 | data = f.read() 96 | print('%08x %5d %s %s %s %s' % ( 97 | zlib.crc32(data) & 0xffffffff, 98 | len(data), 99 | '- ', 100 | ' -', 101 | ' - ', 102 | name) 103 | ) 104 | elif name in names2 and os.path.isfile(full_name2): 105 | with open(full_name2, 'rb') as f: 106 | data = f.read() 107 | print('%s %s %08x %5d %s %s' % ( 108 | '- ', 109 | ' -', 110 | zlib.crc32(data) & 0xffffffff, 111 | len(data), 112 | ' - ', 113 | name) 114 | ) 115 | print() 116 | 117 | 118 | if __name__ == '__main__': 119 | main() 120 | -------------------------------------------------------------------------------- /2-build-files/elite-checksum.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # ****************************************************************************** 4 | # 5 | # APPLE II ELITE CHECKSUM SCRIPT 6 | # 7 | # Written by Mark Moxon, and inspired by Kieran Connell's version for the 8 | # cassette version of Elite 9 | # 10 | # This script applies encryption and checksums to the compiled binaries for the 11 | # Apple II version of Elite 12 | # 13 | # ****************************************************************************** 14 | 15 | from __future__ import print_function 16 | import sys 17 | 18 | argv = sys.argv 19 | encrypt = True 20 | release = 1 21 | 22 | for arg in argv[1:]: 23 | if arg == "-u": 24 | encrypt = False 25 | if arg == "-rel1": 26 | release = 1 27 | encrypt = False 28 | if arg == "-rel2": 29 | release = 2 30 | if arg == "-rel3": 31 | release = 3 32 | if arg == "-rel4": 33 | release = 4 34 | if arg == "-rel5": 35 | release = 5 36 | 37 | print("Apple II Elite Checksum") 38 | print("Encryption = ", encrypt) 39 | 40 | # Configuration variables for scrambling code and calculating checksums 41 | # 42 | # Values must match those in 3-assembled-output/compile.txt 43 | # 44 | # If you alter the source code, then you should extract the correct values for 45 | # the following variables and plug them into the following, otherwise the game 46 | # will fail the checksum process and will hang on loading 47 | # 48 | # You can find the correct values for these variables by building your updated 49 | # source, and then searching compile.txt for "elite-checksum.py", where the new 50 | # values will be listed 51 | 52 | if release == 1: 53 | 54 | # Ian Bell disk 55 | b = 0x4000 # B% 56 | g = 0x45EA # G% 57 | na2_per_cent = 0x4DF3 # NA2% 58 | 59 | elif release == 2: 60 | 61 | # Source disk build 62 | b = 0x4000 # B% 63 | g = 0x45E9 # G% 64 | na2_per_cent = 0x4DEE # NA2% 65 | 66 | elif release == 3: 67 | 68 | # Source disk CODE files 69 | b = 0x4000 # B% 70 | g = 0x45E9 # G% 71 | na2_per_cent = 0x4DF2 # NA2% 72 | 73 | elif release == 4: 74 | 75 | # Source disk ELT files 76 | b = 0x4000 # B% 77 | g = 0x45E9 # G% 78 | na2_per_cent = 0x4DEE # NA2% 79 | 80 | elif release == 5: 81 | 82 | # 4am crack 83 | b = 0x4000 # B% 84 | g = 0x45E9 # G% 85 | na2_per_cent = 0x4DF3 # NA2% 86 | 87 | # Load assembled code files that make up the CODE1 and CODE2 files 88 | 89 | data_block = bytearray() 90 | 91 | # Append all assembled code files 92 | 93 | elite_file = open("3-assembled-output/CODE.unprot.bin", "rb") 94 | data_block.extend(elite_file.read()) 95 | elite_file.close() 96 | 97 | # Commander data checksum 98 | 99 | commander_start = na2_per_cent - b 100 | commander_offset = 0x52 101 | CH = 0x4C - 3 102 | CY = 0 103 | for i in range(CH, 0, -1): 104 | CH = CH + CY + data_block[commander_start + i + 7] 105 | CY = (CH > 255) & 1 106 | CH = CH % 256 107 | CH = CH ^ data_block[commander_start + i + 8] 108 | 109 | print("Commander checksum = ", hex(CH)) 110 | 111 | data_block[commander_start + commander_offset] = CH ^ 0xA9 112 | data_block[commander_start + commander_offset + 2] = CH 113 | 114 | CH3 = 0x4C - 3 115 | CY = 0 116 | for i in range(CH3, 0, -1): 117 | CH3 = CH3 ^ i 118 | CY3 = CH3 & 1 119 | CH3 = (CH3 >> 1) | (CY << 7) 120 | CY = CY3 121 | CH3 = CH3 + CY + data_block[commander_start + i + 7] 122 | CY = (CH3 > 255) & 1 123 | CH3 = CH3 % 256 124 | CH3 = CH3 ^ data_block[commander_start + i + 8] 125 | 126 | print("Commander checksum 3 = ", hex(CH3)) 127 | 128 | data_block[commander_start + commander_offset + 1] = CH3 129 | 130 | # Encrypt the CODE file 131 | 132 | scramble_from = g - b 133 | scramble_to = len(data_block) - 2 134 | seed = 0x15 135 | 136 | if encrypt: 137 | for n in range(scramble_from, scramble_to): 138 | data_block[n] = (data_block[n] + data_block[n + 1]) % 256 139 | 140 | data_block[scramble_to] = (data_block[scramble_to] + seed) % 256 141 | 142 | # Write output file for CODE1 (first 0x5000 bytes) 143 | 144 | output_file = open("3-assembled-output/CODE1.bin", "wb") 145 | output_file.write(data_block[:0x5000]) 146 | output_file.close() 147 | 148 | print("versions/apple/3-assembled-output/CODE1.bin file saved") 149 | 150 | # Write output file for CODE2 (rest of the file) 151 | 152 | output_file = open("3-assembled-output/CODE2.bin", "wb") 153 | output_file.write(data_block[0x5000:]) 154 | output_file.close() 155 | 156 | print("versions/apple/3-assembled-output/CODE2.bin file saved") 157 | 158 | # Load assembled code file for DATA 159 | 160 | data_block = bytearray() 161 | 162 | elite_file = open("3-assembled-output/DATA.unprot.bin", "rb") 163 | data_block.extend(elite_file.read()) 164 | elite_file.close() 165 | 166 | # Encrypt the DATA file 167 | 168 | scramble_from = 0 169 | scramble_to = len(data_block) - 1 170 | seed = 0x69 171 | 172 | if encrypt: 173 | for n in range(scramble_from, scramble_to): 174 | data_block[n] = (data_block[n] + data_block[n + 1]) % 256 175 | 176 | data_block[scramble_to] = (data_block[scramble_to] + seed) % 256 177 | 178 | # Write output file for DATA 179 | 180 | output_file = open("3-assembled-output/DATA.bin", "wb") 181 | output_file.write(data_block) 182 | output_file.close() 183 | 184 | print("versions/apple/3-assembled-output/DATA.bin file saved") 185 | -------------------------------------------------------------------------------- /2-build-files/elite-decrypt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # ****************************************************************************** 4 | # 5 | # APPLE II ELITE DECRYPTION SCRIPT 6 | # 7 | # Written by Mark Moxon 8 | # 9 | # This script removes encryption and checksums from the compiled binaries for 10 | # the Apple II version of Elite 11 | # 12 | # Files are saved using the decrypt.bin suffix so they don't overwrite any 13 | # existing unprot.bin files, so they can be compared if required 14 | # 15 | # Run this script by changing directory to the repository's root folder and 16 | # running the script with "python 2-build-files/elite-decrypt.py" 17 | # 18 | # You can decrypt specific releases by adding the following arguments, as in 19 | # "python 2-build-files/elite-decrypt.py -rel2" for example: 20 | # 21 | # -rel1 Decrypt the game disk on Ian Bell's site 22 | # -rel2 Decrypt the version built by the source disk 23 | # -rel3 Decrypt the CODE* binaries already on the source disk 24 | # -rel3 Decrypt the ELY* binaries already on the source disk 25 | # 26 | # Note that the script will do nothing for rel1, as the files are not encrypted 27 | # in that variant 28 | # 29 | # If unspecified, the default is rel2 30 | # 31 | # ****************************************************************************** 32 | 33 | from __future__ import print_function 34 | import sys 35 | 36 | print() 37 | print("Apple II Elite decryption") 38 | 39 | argv = sys.argv 40 | release = 2 41 | folder = "source-disk-build" 42 | 43 | for arg in argv[1:]: 44 | if arg == "-rel1": 45 | release = 1 46 | folder = "ib-disk" 47 | print("The ib-disk variant is not encrypted: exiting now") 48 | exit() 49 | if arg == "-rel2": 50 | release = 2 51 | folder = "source-disk-build" 52 | if arg == "-rel3": 53 | release = 3 54 | folder = "source-disk-code-files" 55 | if arg == "-rel4": 56 | release = 4 57 | folder = "source-disk-elt-files" 58 | if arg == "-rel5": 59 | release = 5 60 | folder = "4am-crack" 61 | 62 | # Configuration variables for scrambling code and calculating checksums 63 | # 64 | # Values must match those in 3-assembled-output/compile.txt 65 | # 66 | # If you alter the source code, then you should extract the correct values for 67 | # the following variables and plug them into the following, otherwise the game 68 | # will fail the checksum process and will hang on loading 69 | # 70 | # You can find the correct values for these variables by building your updated 71 | # source, and then searching compile.txt for "elite-checksum.py", where the new 72 | # values will be listed 73 | 74 | b = 0x4000 # B% 75 | g = 0x45E9 # G% 76 | na2_per_cent = 0x4DEE # NA2% 77 | 78 | # Load assembled CODE1 and CODE2 files 79 | 80 | data_block = bytearray() 81 | 82 | elite_file = open("4-reference-binaries/" + folder + "/CODE1.bin", "rb") 83 | data_block.extend(elite_file.read()) 84 | elite_file = open("4-reference-binaries/" + folder + "/CODE2.bin", "rb") 85 | data_block.extend(elite_file.read()) 86 | elite_file.close() 87 | 88 | print() 89 | print("[ Read ] 4-reference-binaries/" + folder + "/CODE1.bin") 90 | print("[ Read ] 4-reference-binaries/" + folder + "/CODE2.bin") 91 | 92 | # Do decryption 93 | 94 | seed = 0x15 95 | unscramble_from = len(data_block) - 2 96 | unscramble_to = g - b - 1 97 | 98 | updated_seed = seed 99 | 100 | for n in range(unscramble_from, unscramble_to, -1): 101 | new = (data_block[n] - updated_seed) % 256 102 | data_block[n] = new 103 | updated_seed = new 104 | 105 | print("[ Decrypt ] 4-reference-binaries/" + folder + "/CODE1.bin") 106 | print("[ Decrypt ] 4-reference-binaries/" + folder + "/CODE2.bin") 107 | 108 | # Save decrypted files 109 | 110 | output_file = open("4-reference-binaries/" + folder + "/CODE.decrypted.bin", "wb") 111 | output_file.write(data_block) 112 | output_file.close() 113 | 114 | print("[ Save ] 4-reference-binaries/" + folder + "/CODE.decrypted.bin") 115 | 116 | output_file = open("4-reference-binaries/" + folder + "/CODE1.decrypted.bin", "wb") 117 | output_file.write(data_block[:0x5000]) 118 | output_file.close() 119 | 120 | print("[ Save ] 4-reference-binaries/" + folder + "/CODE1.decrypted.bin") 121 | 122 | output_file = open("4-reference-binaries/" + folder + "/CODE2.decrypted.bin", "wb") 123 | output_file.write(data_block[0x5000:]) 124 | output_file.close() 125 | 126 | print("[ Save ] 4-reference-binaries/" + folder + "/CODE2.decrypted.bin") 127 | 128 | # Load assembled DATA file 129 | 130 | data_block = bytearray() 131 | 132 | elite_file = open("4-reference-binaries/" + folder + "/DATA.bin", "rb") 133 | data_block.extend(elite_file.read()) 134 | elite_file.close() 135 | 136 | print() 137 | print("[ Read ] 4-reference-binaries/" + folder + "/DATA.bin") 138 | 139 | # Do decryption 140 | 141 | seed = 0x69 142 | unscramble_from = len(data_block) - 1 143 | unscramble_to = 0 - 1 144 | 145 | updated_seed = seed 146 | 147 | for n in range(unscramble_from, unscramble_to, -1): 148 | new = (data_block[n] - updated_seed) % 256 149 | data_block[n] = new 150 | updated_seed = new 151 | 152 | print("[ Decrypt ] 4-reference-binaries/" + folder + "/DATA.bin") 153 | 154 | # Save decrypted file 155 | 156 | output_file = open("4-reference-binaries/" + folder + "/DATA.decrypted.bin", "wb") 157 | output_file.write(data_block) 158 | output_file.close() 159 | 160 | print("[ Save ] 4-reference-binaries/" + folder + "/DATA.decrypted.bin") 161 | print() 162 | -------------------------------------------------------------------------------- /2-build-files/libiconv2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/2-build-files/libiconv2.dll -------------------------------------------------------------------------------- /2-build-files/libintl3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/2-build-files/libintl3.dll -------------------------------------------------------------------------------- /2-build-files/make.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/2-build-files/make.exe -------------------------------------------------------------------------------- /3-assembled-output/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/CODE.unprot.bin -------------------------------------------------------------------------------- /3-assembled-output/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/CODE1.bin -------------------------------------------------------------------------------- /3-assembled-output/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/CODE1.unprot.bin -------------------------------------------------------------------------------- /3-assembled-output/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/CODE2.bin -------------------------------------------------------------------------------- /3-assembled-output/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/CODE2.unprot.bin -------------------------------------------------------------------------------- /3-assembled-output/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/DATA.bin -------------------------------------------------------------------------------- /3-assembled-output/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/DATA.unprot.bin -------------------------------------------------------------------------------- /3-assembled-output/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELA.bin -------------------------------------------------------------------------------- /3-assembled-output/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELB.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTA.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTB.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTC.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTD.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTE.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTF.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTG.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTH.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTI.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTJ.bin -------------------------------------------------------------------------------- /3-assembled-output/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/ELTK.bin -------------------------------------------------------------------------------- /3-assembled-output/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/IANTOK.bin -------------------------------------------------------------------------------- /3-assembled-output/MOVER.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/MOVER.bin -------------------------------------------------------------------------------- /3-assembled-output/README.md: -------------------------------------------------------------------------------- 1 | # Assembled output for the Apple II version of Elite 2 | 3 | This folder contains the output binaries from the build process for the Apple II version of Elite. 4 | 5 | It also contains [compile.txt](compile.txt), which contains the output from the assembly process. This is very useful when debugging the build process. 6 | 7 | --- 8 | 9 | Right on, Commanders! 10 | 11 | _Mark Moxon_ -------------------------------------------------------------------------------- /3-assembled-output/README.txt: -------------------------------------------------------------------------------- 1 | --------------------------------------- FIREBIRD ELITE VERSION: APPLE II VARIANT: 4AM CRACK (FIREBIRD RELEASE) SEE WWW.BBCELITE.COM FOR DETAILS --------------------------------------- -------------------------------------------------------------------------------- /3-assembled-output/SEC3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/SEC3.bin -------------------------------------------------------------------------------- /3-assembled-output/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/SHIPS.bin -------------------------------------------------------------------------------- /3-assembled-output/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/3-assembled-output/WORDS.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/CODE.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/CODE1.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/CODE1.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/CODE2.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/CODE2.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/DATA.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/DATA.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELA.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELB.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTA.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTB.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTC.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTD.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTE.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTF.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTG.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTH.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTI.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTJ.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/ELTK.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/IANTOK.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/SEC3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/SEC3.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/SHIPS.bin -------------------------------------------------------------------------------- /4-reference-binaries/4am-crack/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/4am-crack/WORDS.bin -------------------------------------------------------------------------------- /4-reference-binaries/README.md: -------------------------------------------------------------------------------- 1 | # Original binaries for the Apple II version of Elite 2 | 3 | This folder contains the binaries from the game disk for the Apple II version of Elite on Ian Bell's personal website, as well as reference binaries for the other releases. 4 | 5 | * [ib-disk](ib-disk) contains the binaries from the Apple II version on Ian Bell's personal website 6 | 7 | * [source-disk-build](source-disk-build) contains the binaries from running the build process on the source disk from Ian Bell's personal website 8 | 9 | * [source-disk-code-files](source-disk-files) contains the variant produced using the CODE* binaries from the source disk on Ian Bell's personal website, which differ slightly from the binaries that are produced by running the build process 10 | 11 | * [source-disk-elt-files](source-disk-files) contains the variant produced using the ELT* binaries from the source disk on Ian Bell's personal website, which differ slightly from the binaries that are produced by running the build process 12 | 13 | --- 14 | 15 | Right on, Commanders! 16 | 17 | _Mark Moxon_ -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/CODE.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/CODE1.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/CODE1.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/CODE2.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/CODE2.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/DATA.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/DATA.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELA.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELB.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTA.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTB.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTC.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTD.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTE.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTF.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTG.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTH.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTI.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTJ.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/ELTK.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/IANTOK.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/MOVER.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/MOVER.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/SHIPS.bin -------------------------------------------------------------------------------- /4-reference-binaries/ib-disk/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/ib-disk/WORDS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/CODE.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/CODE1.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/CODE1.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/CODE2.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/CODE2.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/DATA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/DATA.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTC.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTD.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTE.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTF.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTG.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTH.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTI.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTJ.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/ELTK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/IANTOK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/SHIPS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-build/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-build/WORDS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/CODE.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/CODE1.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/CODE1.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/CODE2.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/CODE2.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/DATA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/DATA.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTC.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTD.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTE.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTF.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTG.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTH.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTI.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTJ.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/ELTK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/IANTOK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/SHIPS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-code-files/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-code-files/WORDS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/CODE.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/CODE.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/CODE1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/CODE1.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/CODE1.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/CODE1.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/CODE2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/CODE2.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/CODE2.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/CODE2.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/DATA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/DATA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/DATA.unprot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/DATA.unprot.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTA.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTB.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTB.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTC.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTC.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTD.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTD.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTE.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTE.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTF.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTF.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTG.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTG.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTH.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTH.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTI.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTJ.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTJ.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/ELTK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/ELTK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/IANTOK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/IANTOK.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/SHIPS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/SHIPS.bin -------------------------------------------------------------------------------- /4-reference-binaries/source-disk-elt-files/WORDS.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/4-reference-binaries/source-disk-elt-files/WORDS.bin -------------------------------------------------------------------------------- /5-compiled-game-disks/README.md: -------------------------------------------------------------------------------- 1 | # Compiled game disks for the Apple II version of Elite 2 | 3 | This folder contains the DSK disk images for the Apple II version of Elite, as produced by the build process. There is one DSK file for each supported release. These DSK images can be loaded into an emulator like MicroM8, or into a real Apple II. 4 | 5 | --- 6 | 7 | Right on, Commanders! 8 | 9 | _Mark Moxon_ -------------------------------------------------------------------------------- /5-compiled-game-disks/elite-apple-4am-crack.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/5-compiled-game-disks/elite-apple-4am-crack.dsk -------------------------------------------------------------------------------- /5-compiled-game-disks/elite-apple-ib-disk.dsk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markmoxon/elite-source-code-apple-ii/f7b8916b18ee8215adcc71884ff351412564d4c9/5-compiled-game-disks/elite-apple-ib-disk.dsk -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | BEEBASM?=beebasm 2 | PYTHON?=python 3 | DISKM8?=diskm8 4 | 5 | # A make command with no arguments will build the source disk variant with 6 | # encrypted binaries, checksums enabled, the standard commander and crc32 7 | # verification of the game binaries 8 | # 9 | # Optional arguments for the make command are: 10 | # 11 | # variant= Build the specified variant: 12 | # 13 | # ib-disk (default) 14 | # source-disk-build (the binaries we get from running a build) 15 | # source-disk-code-files (the CODE* binaries already on the source disk) 16 | # source-disk-elt-files (the ELT* binaries already on the source disk) 17 | # 18 | # commander=max Start with a maxed-out commander 19 | # 20 | # encrypt=no Disable encryption and checksum routines 21 | # 22 | # match=no Do not attempt to match the original game binaries 23 | # (i.e. omit workspace noise) 24 | # 25 | # verify=no Disable crc32 verification of the game binaries 26 | # 27 | # So, for example: 28 | # 29 | # make variant=source-disk-build commander=max encrypt=no match=no verify=no 30 | # 31 | # will build an unencrypted source disk variant with a maxed-out commander, 32 | # no workspace noise and no crc32 verification 33 | # 34 | # The following variables are written into elite-build-options.asm depending on 35 | # the above arguments, so they can be passed to BeebAsm: 36 | # 37 | # _VERSION 38 | # 9 = Apple II 39 | # 40 | # _VARIANT 41 | # 1 = Ian Bell's game disk 42 | # 2 = source disk build (the binaries from running a build of the source disk) 43 | # 3 = source disk CODE files (the CODE* binaries already on the source disk) 44 | # 4 = source disk ELT files (the ELT* binaries already on the source disk) 45 | # 5 = 4am crack (default) 46 | # 47 | # _MAX_COMMANDER 48 | # TRUE = Maxed-out commander 49 | # FALSE = Standard commander 50 | # 51 | # _REMOVE_CHECKSUMS 52 | # TRUE = Disable checksum routines 53 | # FALSE = Enable checksum routines 54 | # 55 | # _MATCH_ORIGINAL_BINARIES 56 | # TRUE = Match binaries to released version (i.e. fill workspaces with noise) 57 | # FALSE = Zero-fill workspaces 58 | # 59 | # The encrypt and verify arguments are passed to the elite-checksum.py and 60 | # crc32.py scripts, rather than BeebAsm 61 | 62 | ifeq ($(commander), max) 63 | max-commander=TRUE 64 | else 65 | max-commander=FALSE 66 | endif 67 | 68 | ifeq ($(encrypt), no) 69 | unencrypt=-u 70 | remove-checksums=TRUE 71 | else 72 | unencrypt= 73 | remove-checksums=FALSE 74 | endif 75 | 76 | ifeq ($(match), no) 77 | match-original-binaries=FALSE 78 | else 79 | match-original-binaries=TRUE 80 | endif 81 | 82 | ifeq ($(variant), ib-disk) 83 | variant-number=1 84 | folder=ib-disk 85 | suffix=-ib-disk 86 | else ifeq ($(variant), source-disk-build) 87 | variant-number=2 88 | folder=source-disk-build 89 | suffix=-source-disk-build 90 | else ifeq ($(variant), source-disk-code-files) 91 | variant-number=3 92 | folder=source-disk-code-files 93 | suffix=-source-disk-code-files 94 | else ifeq ($(variant), source-disk-elt-files) 95 | variant-number=4 96 | folder=source-disk-elt-files 97 | suffix=-source-disk-elt-files 98 | else 99 | variant-number=5 100 | folder=4am-crack 101 | suffix=-4am-crack 102 | endif 103 | 104 | .PHONY:all 105 | all: apple-build apple-disk 106 | 107 | apple-build: 108 | echo _VERSION=9 > 1-source-files/main-sources/elite-build-options.asm 109 | echo _VARIANT=$(variant-number) >> 1-source-files/main-sources/elite-build-options.asm 110 | echo _REMOVE_CHECKSUMS=$(remove-checksums) >> 1-source-files/main-sources/elite-build-options.asm 111 | echo _MATCH_ORIGINAL_BINARIES=$(match-original-binaries) >> 1-source-files/main-sources/elite-build-options.asm 112 | echo _MAX_COMMANDER=$(max-commander) >> 1-source-files/main-sources/elite-build-options.asm 113 | $(BEEBASM) -i 1-source-files/main-sources/elite-data.asm -v > 3-assembled-output/compile.txt 114 | $(BEEBASM) -i 1-source-files/main-sources/elite-source.asm -v >> 3-assembled-output/compile.txt 115 | $(BEEBASM) -i 1-source-files/main-sources/elite-bcfs.asm -v >> 3-assembled-output/compile.txt 116 | $(BEEBASM) -i 1-source-files/main-sources/elite-mover.asm -v >> 3-assembled-output/compile.txt 117 | $(BEEBASM) -i 1-source-files/main-sources/elite-loader.asm -v >> 3-assembled-output/compile.txt 118 | $(PYTHON) 2-build-files/elite-checksum.py $(unencrypt) -rel$(variant-number) 119 | $(BEEBASM) -i 1-source-files/main-sources/elite-transfer.asm -v >> 3-assembled-output/compile.txt 120 | $(BEEBASM) -i 1-source-files/main-sources/elite-readme.asm -v >> 3-assembled-output/compile.txt 121 | ifneq ($(verify), no) 122 | @$(PYTHON) 2-build-files/crc32.py 4-reference-binaries/$(folder) 3-assembled-output 123 | endif 124 | 125 | apple-disk: 126 | ifeq ($(variant-number), 1) 127 | ifeq ($(OS), Windows_NT) 128 | del /Q /F 5-compiled-game-disks\*.bin 129 | copy 1-source-files\other-files\$(folder)\blank.dsk 5-compiled-game-disks\elite-apple$(suffix).dsk 130 | copy 1-source-files\images\$(folder)\A.SCREEN.bin 5-compiled-game-disks\elitepic#0x2000.bin 131 | copy 3-assembled-output\DATA.bin 5-compiled-game-disks\bee#0x3b00.bin 132 | copy 3-assembled-output\CODE1.bin 5-compiled-game-disks\four#0x4000.bin 133 | copy 3-assembled-output\CODE2.bin 5-compiled-game-disks\nine#0x5000.bin 134 | copy 3-assembled-output\MOVER.bin 5-compiled-game-disks\mover#0x0300.bin 135 | else 136 | rm -fr 5-compiled-game-disks/*.bin 137 | cp 1-source-files/other-files/$(folder)/blank.dsk 5-compiled-game-disks/elite-apple$(suffix).dsk 138 | cp 1-source-files/images/$(folder)/A.SCREEN.bin 5-compiled-game-disks/elitepic#0x2000.bin 139 | cp 3-assembled-output/DATA.bin 5-compiled-game-disks/bee#0x3b00.bin 140 | cp 3-assembled-output/CODE1.bin 5-compiled-game-disks/four#0x4000.bin 141 | cp 3-assembled-output/CODE2.bin 5-compiled-game-disks/nine#0x5000.bin 142 | cp 3-assembled-output/MOVER.bin 5-compiled-game-disks/mover#0x0300.bin 143 | endif 144 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/elitepic#0x2000.bin 145 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/nine#0x5000.bin 146 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/bee#0x3b00.bin 147 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/four#0x4000.bin 148 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/mover#0x0300.bin 149 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 3-assembled-output/readme.txt 150 | ifeq ($(OS), Windows_NT) 151 | del /Q /F 5-compiled-game-disks\*.bin 152 | else 153 | rm -fr 5-compiled-game-disks/*.bin 154 | endif 155 | endif 156 | ifeq ($(variant-number), 5) 157 | ifeq ($(OS), Windows_NT) 158 | del /Q /F 5-compiled-game-disks\*.bin 159 | copy 1-source-files\other-files\$(folder)\blank.dsk 5-compiled-game-disks\elite-apple$(suffix).dsk 160 | copy 1-source-files\images\$(folder)\A.SCREEN1.bin 5-compiled-game-disks\elitepic#0x2000.bin 161 | copy 3-assembled-output\ELA.bin 5-compiled-game-disks\ela#0x0a00.bin 162 | copy 3-assembled-output\ELB.bin 5-compiled-game-disks\elb1#0x4000.bin 163 | copy 3-assembled-output\SEC3.bin 5-compiled-game-disks\sec3#0x2000.bin 164 | else 165 | rm -fr 5-compiled-game-disks/*.bin 166 | cp 1-source-files/other-files/$(folder)/blank.dsk 5-compiled-game-disks/elite-apple$(suffix).dsk 167 | cp 1-source-files/images/$(folder)/A.SCREEN1.bin 5-compiled-game-disks/scrn#0x2000.bin 168 | cp 3-assembled-output/ELA.bin 5-compiled-game-disks/ela#0x0a00.bin 169 | cp 3-assembled-output/ELB.bin 5-compiled-game-disks/elb1#0x4000.bin 170 | cp 3-assembled-output/SEC3.bin 5-compiled-game-disks/sec3#0x2000.bin 171 | endif 172 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/sec3#0x2000.bin 173 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/scrn#0x2000.bin 174 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/elb1#0x4000.bin 175 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 5-compiled-game-disks/ela#0x0a00.bin 176 | $(DISKM8) -with-disk 5-compiled-game-disks/elite-apple$(suffix).dsk -file-put 3-assembled-output/readme.txt 177 | ifeq ($(OS), Windows_NT) 178 | del /Q /F 5-compiled-game-disks\*.bin 179 | else 180 | rm -fr 5-compiled-game-disks/*.bin 181 | endif 182 | endif 183 | -------------------------------------------------------------------------------- /make.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | SETLOCAL 3 | SET BEEBASM=C:\Users\user\bin\beebasm.exe 4 | SET PYTHON=C:\Users\user\AppData\Local\Microsoft\WindowsApps\python.exe 5 | SET DISKM8=C:\Users\user\bin\diskm8.exe 6 | 2-build-files\make %* 7 | --------------------------------------------------------------------------------