Home » CEEFAX disks » telesoftware11.adl » 16-12-88/MODTWO

16-12-88/MODTWO

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware11.adl
Filename: 16-12-88/MODTWO
Read OK:
File size: 0E7A bytes
Load address: 0800
Exec address: 8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM: MODTWO
   20HIMEM=&3C00
   30diff=&8000-HIMEM
   40address=&70
   50comvec=&F2
   60stack=&105
   70gsinit=&FFC2
   80gsread=&FFC5
   90osasci=&FFE3
  100osword=&FFF1
  110printer=C%
  120FOR pass = 0 TO 2 STEP 2
  130P%=O%
  140[OPT pass
  150LDA address
  160PHA
  170LDA address+1
  180PHA
  190TSX
  200LDA stack,X
  210CMP #9
  220BNE tryfour
  230SEC
  240JSR gsinit
  250LDX #0
  260JSR gsread
  270BCC tryextended
  280LDX #(helpmsg+diff) MOD 256
  290LDY #(helpmsg+diff) DIV 256
  300JSR printer+diff
  310BEQ quit
  320.helploop
  330INX
  340JSR gsread
  350.tryextended
  360CMP #ASC(".")
  370BEQ okextended
  380AND #&DF
  390CMP helptitle+diff,X
  400BEQ helploop
  410LDA #&FF
  420CMP helptitle+diff,X
  430BNE quit
  440.okextended
  450LDX #(helpinfo+diff) MOD 256
  460LDY #(helpinfo+diff) DIV 256
  470JSR printer+diff
  480BEQ quit
  490.tryfour
  500CMP #4
  510BNE quit
  520LDX #&FE
  530TYA
  540PHA
  550.firstchar
  560INX
  570PLA
  580TAY
  590PHA
  600LDA (comvec),Y
  610AND #&DF
  620CMP #ASC("X")
  630BNE interpret
  640INY
  650.interpret
  660INX
  670LDA commtable+diff,X
  680BMI found
  690LDA (comvec),Y
  700INY
  710CMP #ASC(".")
  720BEQ founddot
  730AND #&DF
  740CMP commtable+diff,X
  750BEQ interpret
  760.another
  770INX
  780LDA commtable+diff,X
  790BPL another
  800CMP #&FF
  810BNE firstchar
  820.exit
  830PLA
  840.quit
  850PLA
  860STA address+1
  870PLA
  880STA address
  890PLA
  900TAY
  910PLA
  920TAX
  930PLA
  940RTS
  950.founddot
  960INX
  970LDA commtable+diff,X
  980BPL founddot
  990.found
 1000CMP #&FF
 1010BEQ exit
 1020STA address+1
 1030INX
 1040LDA commtable+diff,X
 1050STA address
 1060PLA
 1070SEC
 1080JSR gsinit
 1090JMP (address)
 1100.commtable
 1110OPT FNequs("REVERB")
 1120OPT FNequb((reverb+diff) DIV 256)
 1130OPT FNequb((reverb+diff) MOD 256)
 1140OPT FNequs("ALARM")
 1150OPT FNequb((alarm+diff) DIV 256)
 1160OPT FNequb((alarm+diff) MOD 256)
 1170OPT FNequs("ZOING")
 1180OPT FNequb((zoing+diff) DIV 256)
 1190OPT FNequb((zoing+diff) MOD 256)
 1200OPT FNequb(&FF)
 1210.helpmsg
 1220OPT FNequb(&0D)
 1230OPT FNequs("MODULAR ROM")
 1240OPT FNequb(&0D)
 1250OPT FNequw(&2020)
 1260.helptitle
 1270OPT FNequs("MOD")
 1280OPT FNequw(&0DFF)
 1290BRK
 1300.helpinfo
 1310OPT FNequw(&200D)
 1320OPT FNequs("*ALARM")
 1330OPT FNequw(&200D)
 1340OPT FNequs("*REVERB")
 1350OPT FNequw(&200D)
 1360OPT FNequs("*ZOING")
 1370OPT FNequw(&000D)
 1380.alarm
 1390LDA #8
 1400LDX #(ealarm+diff) MOD 256
 1410LDY #(ealarm+diff) DIV 256
 1420JSR osword \ Envelope
 1430LDA #7
 1440LDX #(salarm+diff) MOD 256
 1450LDY #(salarm+diff) DIV 256
 1460JSR osword \ Sound
 1470.pullout
 1480PLA
 1490STA address+1
 1500PLA
 1510STA address
 1520PLA
 1530PLA
 1540PLA
 1550LDA #0
 1560RTS
 1570.reverb
 1580LDA #8
 1590LDX #(ereverb+diff) MOD 256
 1600LDY #(ereverb+diff) DIV 256
 1610JSR osword \ Envelope
 1620LDA #7
 1630LDX #(sreverb+diff) MOD 256
 1640LDY #(sreverb+diff) DIV 256
 1650JSR osword \ Sound
 1660JMP pullout+diff
 1670.zoing
 1680LDA #8
 1690LDX #(ezoing+diff) MOD 256
 1700LDY #(ezoing+diff) DIV 256
 1710JSR osword \ Envelope
 1720LDA #7
 1730LDX #(szoing+diff) MOD 256
 1740LDY #(szoing+diff) DIV 256
 1750JSR osword \ Sound
 1760JMP pullout+diff
 1770.ealarm
 1780OPT FNequd(&00010101)
 1790OPT FNequd(&00004800)
 1800OPT FNequd(&01FF00FD)
 1810OPT FNequw(&7E7E)
 1820.salarm
 1830OPT FNequd(&00010011)
 1840OPT FNequd(&00FF0032)
 1850.ereverb
 1860OPT FNequd(&FF010803)
 1870OPT FNequd(&01010101)
 1880OPT FNequd(&79F6FBFE)
 1890OPT FNequw(&7E7E)
 1900.sreverb
 1910OPT FNequd(&00030010)
 1920OPT FNequd(&00400000)
 1930.ezoing
 1940OPT FNequd(&EC140102)
 1950OPT FNequd(&64646414)
 1960OPT FNequd(&0000FF7F)
 1970OPT FNequd(&007E)
 1980.szoing
 1990OPT FNequd(&00020012)
 2000OPT FNequd(&003200CC)
 2010.lastbyte
 2020]
 2030NEXT
 2040A%?1=((lastbyte+diff) MOD 256)
 2050B%?1=((lastbyte+diff) DIV 256)
 2060REM: Poke address of the start of
 2070REM: RFS into MODONE
 2080O%=lastbyte
 2090CHAIN"RFSGEN"
 2100END
 2110DEFFNequb(byte)
 2120?P%=byte
 2130P%=P%+1
 2140=pass
 2150DEFFNequw(word)
 2160?P%=word MOD 256
 2170P%?1=word DIV 256
 2180P%=P%+2
 2190=pass
 2200DEFFNequd(double)
 2210!P%=double
 2220P%=P%+4
 2230=pass
 2240DEFFNequs(string$)
 2250$P%=string$
 2260P%=P%+LEN(string$)
 2270=pass


�: MODTWO
�=&3C00
diff=&8000-�
(address=&70
2comvec=&F2
<stack=&105
Fgsinit=&FFC2
Pgsread=&FFC5
Zosasci=&FFE3
dosword=&FFF1
nprinter=C%
x� pass = 0 � 2 � 2
�	P%=O%
�
[OPT pass
�LDA address
�PHA
�LDA address+1
�PHA
�TSX
�LDA stack,X
�
CMP #9
�BNE tryfour
�SEC
�JSR gsinit
�
LDX #0
JSR gsread
BCC tryextended
LDX #(helpmsg+diff) � 256
"LDY #(helpmsg+diff) � 256
,JSR printer+diff
6BEQ quit
@
.helploop
JINX
TJSR gsread
^.tryextended
hCMP #�(".")
rBEQ okextended
|
� #&DF
�CMP helptitle+diff,X
�BEQ helploop
�LDA #&FF
�CMP helptitle+diff,X
�BNE quit
�.okextended
�LDX #(helpinfo+diff) � 256
�LDY #(helpinfo+diff) � 256
�JSR printer+diff
�BEQ quit
�.tryfour
�
CMP #4
�BNE quit
LDX #&FE
TYA
PHA
&.firstchar
0INX
:PLA
DTAY
NPHA
XLDA (comvec),Y
b
� #&DF
lCMP #�("X")
vBNE interpret
�INY
�.interpret
�INX
�LDA commtable+diff,X
�
BMI found
�LDA (comvec),Y
�INY
�CMP #�(".")
�BEQ founddot
�
� #&DF
�CMP commtable+diff,X
�BEQ interpret
�.another
INX
LDA commtable+diff,X
BPL another
 CMP #&FF
*BNE firstchar
4	.exit
>PLA
H	.quit
RPLA
\STA address+1
fPLA
pSTA address
zPLA
�TAY
�PLA
�TAX
�PLA
�RTS
�
.founddot
�INX
�LDA commtable+diff,X
�BPL founddot
�
.found
�CMP #&FF
�BEQ exit
�STA address+1
INX
LDA commtable+diff,X
STA address
$PLA
.SEC
8JSR gsinit
BJMP (address)
L.commtable
VOPT �equs("REVERB")
`"OPT �equb((reverb+diff) � 256)
j"OPT �equb((reverb+diff) � 256)
tOPT �equs("ALARM")
~!OPT �equb((alarm+diff) � 256)
�!OPT �equb((alarm+diff) � 256)
�OPT �equs("ZOING")
�!OPT �equb((zoing+diff) � 256)
�!OPT �equb((zoing+diff) � 256)
�OPT �equb(&FF)
�.helpmsg
�OPT �equb(&0D)
�OPT �equs("MODULAR ROM")
�OPT �equb(&0D)
�OPT �equw(&2020)
�.helptitle
�OPT �equs("MOD")
OPT �equw(&0DFF)

BRK

.helpinfo
OPT �equw(&200D)
(OPT �equs("*ALARM")
2OPT �equw(&200D)
<OPT �equs("*REVERB")
FOPT �equw(&200D)
POPT �equs("*ZOING")
ZOPT �equw(&000D)
d
.alarm
n
LDA #8
xLDX #(ealarm+diff) � 256
�LDY #(ealarm+diff) � 256
�JSR osword \ Envelope
�
LDA #7
�LDX #(salarm+diff) � 256
�LDY #(salarm+diff) � 256
�JSR osword \ Sound
�.pullout
�PLA
�STA address+1
�PLA
�STA address
�PLA
�PLA
PLA

LDA #0
RTS
".reverb
,
LDA #8
6LDX #(ereverb+diff) � 256
@LDY #(ereverb+diff) � 256
JJSR osword \ Envelope
T
LDA #7
^LDX #(sreverb+diff) � 256
hLDY #(sreverb+diff) � 256
rJSR osword \ Sound
|JMP pullout+diff
�
.zoing
�
LDA #8
�LDX #(ezoing+diff) � 256
�LDY #(ezoing+diff) � 256
�JSR osword \ Envelope
�
LDA #7
�LDX #(szoing+diff) � 256
�LDY #(szoing+diff) � 256
�JSR osword \ Sound
�JMP pullout+diff
�.ealarm
�OPT �equd(&00010101)
�OPT �equd(&00004800)
OPT �equd(&01FF00FD)
OPT �equw(&7E7E)
.salarm
&OPT �equd(&00010011)
0OPT �equd(&00FF0032)
:.ereverb
DOPT �equd(&FF010803)
NOPT �equd(&01010101)
XOPT �equd(&79F6FBFE)
bOPT �equw(&7E7E)
l.sreverb
vOPT �equd(&00030010)
�OPT �equd(&00400000)
�.ezoing
�OPT �equd(&EC140102)
�OPT �equd(&64646414)
�OPT �equd(&0000FF7F)
�OPT �equd(&007E)
�.szoing
�OPT �equd(&00020012)
�OPT �equd(&003200CC)
�
.lastbyte
�]
��
� A%?1=((lastbyte+diff) � 256)
 B%?1=((lastbyte+diff) � 256)
#�: Poke address of the start of
�: RFS into MODONE
 O%=lastbyte
*
�"RFSGEN"
4�
>ݤequb(byte)
H?P%=byte
RP%=P%+1
\	=pass
fݤequw(word)
p?P%=word � 256
zP%?1=word � 256
�P%=P%+2
�	=pass
�ݤequd(double)
�!P%=double
�P%=P%+4
�	=pass
�ݤequs(string$)
�$P%=string$
�P%=P%+�(string$)
�	=pass
�
00000000  0d 00 0a 0d f4 3a 20 4d  4f 44 54 57 4f 0d 00 14  |.....: MODTWO...|
00000010  0b d3 3d 26 33 43 30 30  0d 00 1e 10 64 69 66 66  |..=&3C00....diff|
00000020  3d 26 38 30 30 30 2d 93  0d 00 28 0f 61 64 64 72  |=&8000-...(.addr|
00000030  65 73 73 3d 26 37 30 0d  00 32 0e 63 6f 6d 76 65  |ess=&70..2.comve|
00000040  63 3d 26 46 32 0d 00 3c  0e 73 74 61 63 6b 3d 26  |c=&F2..<.stack=&|
00000050  31 30 35 0d 00 46 10 67  73 69 6e 69 74 3d 26 46  |105..F.gsinit=&F|
00000060  46 43 32 0d 00 50 10 67  73 72 65 61 64 3d 26 46  |FC2..P.gsread=&F|
00000070  46 43 35 0d 00 5a 10 6f  73 61 73 63 69 3d 26 46  |FC5..Z.osasci=&F|
00000080  46 45 33 0d 00 64 10 6f  73 77 6f 72 64 3d 26 46  |FE3..d.osword=&F|
00000090  46 46 31 0d 00 6e 0e 70  72 69 6e 74 65 72 3d 43  |FF1..n.printer=C|
000000a0  25 0d 00 78 16 e3 20 70  61 73 73 20 3d 20 30 20  |%..x.. pass = 0 |
000000b0  b8 20 32 20 88 20 32 0d  00 82 09 50 25 3d 4f 25  |. 2 . 2....P%=O%|
000000c0  0d 00 8c 0d 5b 4f 50 54  20 70 61 73 73 0d 00 96  |....[OPT pass...|
000000d0  0f 4c 44 41 20 61 64 64  72 65 73 73 0d 00 a0 07  |.LDA address....|
000000e0  50 48 41 0d 00 aa 11 4c  44 41 20 61 64 64 72 65  |PHA....LDA addre|
000000f0  73 73 2b 31 0d 00 b4 07  50 48 41 0d 00 be 07 54  |ss+1....PHA....T|
00000100  53 58 0d 00 c8 0f 4c 44  41 20 73 74 61 63 6b 2c  |SX....LDA stack,|
00000110  58 0d 00 d2 0a 43 4d 50  20 23 39 0d 00 dc 0f 42  |X....CMP #9....B|
00000120  4e 45 20 74 72 79 66 6f  75 72 0d 00 e6 07 53 45  |NE tryfour....SE|
00000130  43 0d 00 f0 0e 4a 53 52  20 67 73 69 6e 69 74 0d  |C....JSR gsinit.|
00000140  00 fa 0a 4c 44 58 20 23  30 0d 01 04 0e 4a 53 52  |...LDX #0....JSR|
00000150  20 67 73 72 65 61 64 0d  01 0e 13 42 43 43 20 74  | gsread....BCC t|
00000160  72 79 65 78 74 65 6e 64  65 64 0d 01 18 1d 4c 44  |ryextended....LD|
00000170  58 20 23 28 68 65 6c 70  6d 73 67 2b 64 69 66 66  |X #(helpmsg+diff|
00000180  29 20 83 20 32 35 36 0d  01 22 1d 4c 44 59 20 23  |) . 256..".LDY #|
00000190  28 68 65 6c 70 6d 73 67  2b 64 69 66 66 29 20 81  |(helpmsg+diff) .|
000001a0  20 32 35 36 0d 01 2c 14  4a 53 52 20 70 72 69 6e  | 256..,.JSR prin|
000001b0  74 65 72 2b 64 69 66 66  0d 01 36 0c 42 45 51 20  |ter+diff..6.BEQ |
000001c0  71 75 69 74 0d 01 40 0d  2e 68 65 6c 70 6c 6f 6f  |quit..@..helploo|
000001d0  70 0d 01 4a 07 49 4e 58  0d 01 54 0e 4a 53 52 20  |p..J.INX..T.JSR |
000001e0  67 73 72 65 61 64 0d 01  5e 10 2e 74 72 79 65 78  |gsread..^..tryex|
000001f0  74 65 6e 64 65 64 0d 01  68 0f 43 4d 50 20 23 97  |tended..h.CMP #.|
00000200  28 22 2e 22 29 0d 01 72  12 42 45 51 20 6f 6b 65  |(".")..r.BEQ oke|
00000210  78 74 65 6e 64 65 64 0d  01 7c 0a 80 20 23 26 44  |xtended..|.. #&D|
00000220  46 0d 01 86 18 43 4d 50  20 68 65 6c 70 74 69 74  |F....CMP helptit|
00000230  6c 65 2b 64 69 66 66 2c  58 0d 01 90 10 42 45 51  |le+diff,X....BEQ|
00000240  20 68 65 6c 70 6c 6f 6f  70 0d 01 9a 0c 4c 44 41  | helploop....LDA|
00000250  20 23 26 46 46 0d 01 a4  18 43 4d 50 20 68 65 6c  | #&FF....CMP hel|
00000260  70 74 69 74 6c 65 2b 64  69 66 66 2c 58 0d 01 ae  |ptitle+diff,X...|
00000270  0c 42 4e 45 20 71 75 69  74 0d 01 b8 0f 2e 6f 6b  |.BNE quit.....ok|
00000280  65 78 74 65 6e 64 65 64  0d 01 c2 1e 4c 44 58 20  |extended....LDX |
00000290  23 28 68 65 6c 70 69 6e  66 6f 2b 64 69 66 66 29  |#(helpinfo+diff)|
000002a0  20 83 20 32 35 36 0d 01  cc 1e 4c 44 59 20 23 28  | . 256....LDY #(|
000002b0  68 65 6c 70 69 6e 66 6f  2b 64 69 66 66 29 20 81  |helpinfo+diff) .|
000002c0  20 32 35 36 0d 01 d6 14  4a 53 52 20 70 72 69 6e  | 256....JSR prin|
000002d0  74 65 72 2b 64 69 66 66  0d 01 e0 0c 42 45 51 20  |ter+diff....BEQ |
000002e0  71 75 69 74 0d 01 ea 0c  2e 74 72 79 66 6f 75 72  |quit.....tryfour|
000002f0  0d 01 f4 0a 43 4d 50 20  23 34 0d 01 fe 0c 42 4e  |....CMP #4....BN|
00000300  45 20 71 75 69 74 0d 02  08 0c 4c 44 58 20 23 26  |E quit....LDX #&|
00000310  46 45 0d 02 12 07 54 59  41 0d 02 1c 07 50 48 41  |FE....TYA....PHA|
00000320  0d 02 26 0e 2e 66 69 72  73 74 63 68 61 72 0d 02  |..&..firstchar..|
00000330  30 07 49 4e 58 0d 02 3a  07 50 4c 41 0d 02 44 07  |0.INX..:.PLA..D.|
00000340  54 41 59 0d 02 4e 07 50  48 41 0d 02 58 12 4c 44  |TAY..N.PHA..X.LD|
00000350  41 20 28 63 6f 6d 76 65  63 29 2c 59 0d 02 62 0a  |A (comvec),Y..b.|
00000360  80 20 23 26 44 46 0d 02  6c 0f 43 4d 50 20 23 97  |. #&DF..l.CMP #.|
00000370  28 22 58 22 29 0d 02 76  11 42 4e 45 20 69 6e 74  |("X")..v.BNE int|
00000380  65 72 70 72 65 74 0d 02  80 07 49 4e 59 0d 02 8a  |erpret....INY...|
00000390  0e 2e 69 6e 74 65 72 70  72 65 74 0d 02 94 07 49  |..interpret....I|
000003a0  4e 58 0d 02 9e 18 4c 44  41 20 63 6f 6d 6d 74 61  |NX....LDA commta|
000003b0  62 6c 65 2b 64 69 66 66  2c 58 0d 02 a8 0d 42 4d  |ble+diff,X....BM|
000003c0  49 20 66 6f 75 6e 64 0d  02 b2 12 4c 44 41 20 28  |I found....LDA (|
000003d0  63 6f 6d 76 65 63 29 2c  59 0d 02 bc 07 49 4e 59  |comvec),Y....INY|
000003e0  0d 02 c6 0f 43 4d 50 20  23 97 28 22 2e 22 29 0d  |....CMP #.(".").|
000003f0  02 d0 10 42 45 51 20 66  6f 75 6e 64 64 6f 74 0d  |...BEQ founddot.|
00000400  02 da 0a 80 20 23 26 44  46 0d 02 e4 18 43 4d 50  |.... #&DF....CMP|
00000410  20 63 6f 6d 6d 74 61 62  6c 65 2b 64 69 66 66 2c  | commtable+diff,|
00000420  58 0d 02 ee 11 42 45 51  20 69 6e 74 65 72 70 72  |X....BEQ interpr|
00000430  65 74 0d 02 f8 0c 2e 61  6e 6f 74 68 65 72 0d 03  |et.....another..|
00000440  02 07 49 4e 58 0d 03 0c  18 4c 44 41 20 63 6f 6d  |..INX....LDA com|
00000450  6d 74 61 62 6c 65 2b 64  69 66 66 2c 58 0d 03 16  |mtable+diff,X...|
00000460  0f 42 50 4c 20 61 6e 6f  74 68 65 72 0d 03 20 0c  |.BPL another.. .|
00000470  43 4d 50 20 23 26 46 46  0d 03 2a 11 42 4e 45 20  |CMP #&FF..*.BNE |
00000480  66 69 72 73 74 63 68 61  72 0d 03 34 09 2e 65 78  |firstchar..4..ex|
00000490  69 74 0d 03 3e 07 50 4c  41 0d 03 48 09 2e 71 75  |it..>.PLA..H..qu|
000004a0  69 74 0d 03 52 07 50 4c  41 0d 03 5c 11 53 54 41  |it..R.PLA..\.STA|
000004b0  20 61 64 64 72 65 73 73  2b 31 0d 03 66 07 50 4c  | address+1..f.PL|
000004c0  41 0d 03 70 0f 53 54 41  20 61 64 64 72 65 73 73  |A..p.STA address|
000004d0  0d 03 7a 07 50 4c 41 0d  03 84 07 54 41 59 0d 03  |..z.PLA....TAY..|
000004e0  8e 07 50 4c 41 0d 03 98  07 54 41 58 0d 03 a2 07  |..PLA....TAX....|
000004f0  50 4c 41 0d 03 ac 07 52  54 53 0d 03 b6 0d 2e 66  |PLA....RTS.....f|
00000500  6f 75 6e 64 64 6f 74 0d  03 c0 07 49 4e 58 0d 03  |ounddot....INX..|
00000510  ca 18 4c 44 41 20 63 6f  6d 6d 74 61 62 6c 65 2b  |..LDA commtable+|
00000520  64 69 66 66 2c 58 0d 03  d4 10 42 50 4c 20 66 6f  |diff,X....BPL fo|
00000530  75 6e 64 64 6f 74 0d 03  de 0a 2e 66 6f 75 6e 64  |unddot.....found|
00000540  0d 03 e8 0c 43 4d 50 20  23 26 46 46 0d 03 f2 0c  |....CMP #&FF....|
00000550  42 45 51 20 65 78 69 74  0d 03 fc 11 53 54 41 20  |BEQ exit....STA |
00000560  61 64 64 72 65 73 73 2b  31 0d 04 06 07 49 4e 58  |address+1....INX|
00000570  0d 04 10 18 4c 44 41 20  63 6f 6d 6d 74 61 62 6c  |....LDA commtabl|
00000580  65 2b 64 69 66 66 2c 58  0d 04 1a 0f 53 54 41 20  |e+diff,X....STA |
00000590  61 64 64 72 65 73 73 0d  04 24 07 50 4c 41 0d 04  |address..$.PLA..|
000005a0  2e 07 53 45 43 0d 04 38  0e 4a 53 52 20 67 73 69  |..SEC..8.JSR gsi|
000005b0  6e 69 74 0d 04 42 11 4a  4d 50 20 28 61 64 64 72  |nit..B.JMP (addr|
000005c0  65 73 73 29 0d 04 4c 0e  2e 63 6f 6d 6d 74 61 62  |ess)..L..commtab|
000005d0  6c 65 0d 04 56 17 4f 50  54 20 a4 65 71 75 73 28  |le..V.OPT .equs(|
000005e0  22 52 45 56 45 52 42 22  29 0d 04 60 22 4f 50 54  |"REVERB")..`"OPT|
000005f0  20 a4 65 71 75 62 28 28  72 65 76 65 72 62 2b 64  | .equb((reverb+d|
00000600  69 66 66 29 20 81 20 32  35 36 29 0d 04 6a 22 4f  |iff) . 256)..j"O|
00000610  50 54 20 a4 65 71 75 62  28 28 72 65 76 65 72 62  |PT .equb((reverb|
00000620  2b 64 69 66 66 29 20 83  20 32 35 36 29 0d 04 74  |+diff) . 256)..t|
00000630  16 4f 50 54 20 a4 65 71  75 73 28 22 41 4c 41 52  |.OPT .equs("ALAR|
00000640  4d 22 29 0d 04 7e 21 4f  50 54 20 a4 65 71 75 62  |M")..~!OPT .equb|
00000650  28 28 61 6c 61 72 6d 2b  64 69 66 66 29 20 81 20  |((alarm+diff) . |
00000660  32 35 36 29 0d 04 88 21  4f 50 54 20 a4 65 71 75  |256)...!OPT .equ|
00000670  62 28 28 61 6c 61 72 6d  2b 64 69 66 66 29 20 83  |b((alarm+diff) .|
00000680  20 32 35 36 29 0d 04 92  16 4f 50 54 20 a4 65 71  | 256)....OPT .eq|
00000690  75 73 28 22 5a 4f 49 4e  47 22 29 0d 04 9c 21 4f  |us("ZOING")...!O|
000006a0  50 54 20 a4 65 71 75 62  28 28 7a 6f 69 6e 67 2b  |PT .equb((zoing+|
000006b0  64 69 66 66 29 20 81 20  32 35 36 29 0d 04 a6 21  |diff) . 256)...!|
000006c0  4f 50 54 20 a4 65 71 75  62 28 28 7a 6f 69 6e 67  |OPT .equb((zoing|
000006d0  2b 64 69 66 66 29 20 83  20 32 35 36 29 0d 04 b0  |+diff) . 256)...|
000006e0  12 4f 50 54 20 a4 65 71  75 62 28 26 46 46 29 0d  |.OPT .equb(&FF).|
000006f0  04 ba 0c 2e 68 65 6c 70  6d 73 67 0d 04 c4 12 4f  |....helpmsg....O|
00000700  50 54 20 a4 65 71 75 62  28 26 30 44 29 0d 04 ce  |PT .equb(&0D)...|
00000710  1c 4f 50 54 20 a4 65 71  75 73 28 22 4d 4f 44 55  |.OPT .equs("MODU|
00000720  4c 41 52 20 52 4f 4d 22  29 0d 04 d8 12 4f 50 54  |LAR ROM")....OPT|
00000730  20 a4 65 71 75 62 28 26  30 44 29 0d 04 e2 14 4f  | .equb(&0D)....O|
00000740  50 54 20 a4 65 71 75 77  28 26 32 30 32 30 29 0d  |PT .equw(&2020).|
00000750  04 ec 0e 2e 68 65 6c 70  74 69 74 6c 65 0d 04 f6  |....helptitle...|
00000760  14 4f 50 54 20 a4 65 71  75 73 28 22 4d 4f 44 22  |.OPT .equs("MOD"|
00000770  29 0d 05 00 14 4f 50 54  20 a4 65 71 75 77 28 26  |)....OPT .equw(&|
00000780  30 44 46 46 29 0d 05 0a  07 42 52 4b 0d 05 14 0d  |0DFF)....BRK....|
00000790  2e 68 65 6c 70 69 6e 66  6f 0d 05 1e 14 4f 50 54  |.helpinfo....OPT|
000007a0  20 a4 65 71 75 77 28 26  32 30 30 44 29 0d 05 28  | .equw(&200D)..(|
000007b0  17 4f 50 54 20 a4 65 71  75 73 28 22 2a 41 4c 41  |.OPT .equs("*ALA|
000007c0  52 4d 22 29 0d 05 32 14  4f 50 54 20 a4 65 71 75  |RM")..2.OPT .equ|
000007d0  77 28 26 32 30 30 44 29  0d 05 3c 18 4f 50 54 20  |w(&200D)..<.OPT |
000007e0  a4 65 71 75 73 28 22 2a  52 45 56 45 52 42 22 29  |.equs("*REVERB")|
000007f0  0d 05 46 14 4f 50 54 20  a4 65 71 75 77 28 26 32  |..F.OPT .equw(&2|
00000800  30 30 44 29 0d 05 50 17  4f 50 54 20 a4 65 71 75  |00D)..P.OPT .equ|
00000810  73 28 22 2a 5a 4f 49 4e  47 22 29 0d 05 5a 14 4f  |s("*ZOING")..Z.O|
00000820  50 54 20 a4 65 71 75 77  28 26 30 30 30 44 29 0d  |PT .equw(&000D).|
00000830  05 64 0a 2e 61 6c 61 72  6d 0d 05 6e 0a 4c 44 41  |.d..alarm..n.LDA|
00000840  20 23 38 0d 05 78 1c 4c  44 58 20 23 28 65 61 6c  | #8..x.LDX #(eal|
00000850  61 72 6d 2b 64 69 66 66  29 20 83 20 32 35 36 0d  |arm+diff) . 256.|
00000860  05 82 1c 4c 44 59 20 23  28 65 61 6c 61 72 6d 2b  |...LDY #(ealarm+|
00000870  64 69 66 66 29 20 81 20  32 35 36 0d 05 8c 19 4a  |diff) . 256....J|
00000880  53 52 20 6f 73 77 6f 72  64 20 5c 20 45 6e 76 65  |SR osword \ Enve|
00000890  6c 6f 70 65 0d 05 96 0a  4c 44 41 20 23 37 0d 05  |lope....LDA #7..|
000008a0  a0 1c 4c 44 58 20 23 28  73 61 6c 61 72 6d 2b 64  |..LDX #(salarm+d|
000008b0  69 66 66 29 20 83 20 32  35 36 0d 05 aa 1c 4c 44  |iff) . 256....LD|
000008c0  59 20 23 28 73 61 6c 61  72 6d 2b 64 69 66 66 29  |Y #(salarm+diff)|
000008d0  20 81 20 32 35 36 0d 05  b4 16 4a 53 52 20 6f 73  | . 256....JSR os|
000008e0  77 6f 72 64 20 5c 20 53  6f 75 6e 64 0d 05 be 0c  |word \ Sound....|
000008f0  2e 70 75 6c 6c 6f 75 74  0d 05 c8 07 50 4c 41 0d  |.pullout....PLA.|
00000900  05 d2 11 53 54 41 20 61  64 64 72 65 73 73 2b 31  |...STA address+1|
00000910  0d 05 dc 07 50 4c 41 0d  05 e6 0f 53 54 41 20 61  |....PLA....STA a|
00000920  64 64 72 65 73 73 0d 05  f0 07 50 4c 41 0d 05 fa  |ddress....PLA...|
00000930  07 50 4c 41 0d 06 04 07  50 4c 41 0d 06 0e 0a 4c  |.PLA....PLA....L|
00000940  44 41 20 23 30 0d 06 18  07 52 54 53 0d 06 22 0b  |DA #0....RTS..".|
00000950  2e 72 65 76 65 72 62 0d  06 2c 0a 4c 44 41 20 23  |.reverb..,.LDA #|
00000960  38 0d 06 36 1d 4c 44 58  20 23 28 65 72 65 76 65  |8..6.LDX #(ereve|
00000970  72 62 2b 64 69 66 66 29  20 83 20 32 35 36 0d 06  |rb+diff) . 256..|
00000980  40 1d 4c 44 59 20 23 28  65 72 65 76 65 72 62 2b  |@.LDY #(ereverb+|
00000990  64 69 66 66 29 20 81 20  32 35 36 0d 06 4a 19 4a  |diff) . 256..J.J|
000009a0  53 52 20 6f 73 77 6f 72  64 20 5c 20 45 6e 76 65  |SR osword \ Enve|
000009b0  6c 6f 70 65 0d 06 54 0a  4c 44 41 20 23 37 0d 06  |lope..T.LDA #7..|
000009c0  5e 1d 4c 44 58 20 23 28  73 72 65 76 65 72 62 2b  |^.LDX #(sreverb+|
000009d0  64 69 66 66 29 20 83 20  32 35 36 0d 06 68 1d 4c  |diff) . 256..h.L|
000009e0  44 59 20 23 28 73 72 65  76 65 72 62 2b 64 69 66  |DY #(sreverb+dif|
000009f0  66 29 20 81 20 32 35 36  0d 06 72 16 4a 53 52 20  |f) . 256..r.JSR |
00000a00  6f 73 77 6f 72 64 20 5c  20 53 6f 75 6e 64 0d 06  |osword \ Sound..|
00000a10  7c 14 4a 4d 50 20 70 75  6c 6c 6f 75 74 2b 64 69  ||.JMP pullout+di|
00000a20  66 66 0d 06 86 0a 2e 7a  6f 69 6e 67 0d 06 90 0a  |ff.....zoing....|
00000a30  4c 44 41 20 23 38 0d 06  9a 1c 4c 44 58 20 23 28  |LDA #8....LDX #(|
00000a40  65 7a 6f 69 6e 67 2b 64  69 66 66 29 20 83 20 32  |ezoing+diff) . 2|
00000a50  35 36 0d 06 a4 1c 4c 44  59 20 23 28 65 7a 6f 69  |56....LDY #(ezoi|
00000a60  6e 67 2b 64 69 66 66 29  20 81 20 32 35 36 0d 06  |ng+diff) . 256..|
00000a70  ae 19 4a 53 52 20 6f 73  77 6f 72 64 20 5c 20 45  |..JSR osword \ E|
00000a80  6e 76 65 6c 6f 70 65 0d  06 b8 0a 4c 44 41 20 23  |nvelope....LDA #|
00000a90  37 0d 06 c2 1c 4c 44 58  20 23 28 73 7a 6f 69 6e  |7....LDX #(szoin|
00000aa0  67 2b 64 69 66 66 29 20  83 20 32 35 36 0d 06 cc  |g+diff) . 256...|
00000ab0  1c 4c 44 59 20 23 28 73  7a 6f 69 6e 67 2b 64 69  |.LDY #(szoing+di|
00000ac0  66 66 29 20 81 20 32 35  36 0d 06 d6 16 4a 53 52  |ff) . 256....JSR|
00000ad0  20 6f 73 77 6f 72 64 20  5c 20 53 6f 75 6e 64 0d  | osword \ Sound.|
00000ae0  06 e0 14 4a 4d 50 20 70  75 6c 6c 6f 75 74 2b 64  |...JMP pullout+d|
00000af0  69 66 66 0d 06 ea 0b 2e  65 61 6c 61 72 6d 0d 06  |iff.....ealarm..|
00000b00  f4 18 4f 50 54 20 a4 65  71 75 64 28 26 30 30 30  |..OPT .equd(&000|
00000b10  31 30 31 30 31 29 0d 06  fe 18 4f 50 54 20 a4 65  |10101)....OPT .e|
00000b20  71 75 64 28 26 30 30 30  30 34 38 30 30 29 0d 07  |qud(&00004800)..|
00000b30  08 18 4f 50 54 20 a4 65  71 75 64 28 26 30 31 46  |..OPT .equd(&01F|
00000b40  46 30 30 46 44 29 0d 07  12 14 4f 50 54 20 a4 65  |F00FD)....OPT .e|
00000b50  71 75 77 28 26 37 45 37  45 29 0d 07 1c 0b 2e 73  |quw(&7E7E).....s|
00000b60  61 6c 61 72 6d 0d 07 26  18 4f 50 54 20 a4 65 71  |alarm..&.OPT .eq|
00000b70  75 64 28 26 30 30 30 31  30 30 31 31 29 0d 07 30  |ud(&00010011)..0|
00000b80  18 4f 50 54 20 a4 65 71  75 64 28 26 30 30 46 46  |.OPT .equd(&00FF|
00000b90  30 30 33 32 29 0d 07 3a  0c 2e 65 72 65 76 65 72  |0032)..:..erever|
00000ba0  62 0d 07 44 18 4f 50 54  20 a4 65 71 75 64 28 26  |b..D.OPT .equd(&|
00000bb0  46 46 30 31 30 38 30 33  29 0d 07 4e 18 4f 50 54  |FF010803)..N.OPT|
00000bc0  20 a4 65 71 75 64 28 26  30 31 30 31 30 31 30 31  | .equd(&01010101|
00000bd0  29 0d 07 58 18 4f 50 54  20 a4 65 71 75 64 28 26  |)..X.OPT .equd(&|
00000be0  37 39 46 36 46 42 46 45  29 0d 07 62 14 4f 50 54  |79F6FBFE)..b.OPT|
00000bf0  20 a4 65 71 75 77 28 26  37 45 37 45 29 0d 07 6c  | .equw(&7E7E)..l|
00000c00  0c 2e 73 72 65 76 65 72  62 0d 07 76 18 4f 50 54  |..sreverb..v.OPT|
00000c10  20 a4 65 71 75 64 28 26  30 30 30 33 30 30 31 30  | .equd(&00030010|
00000c20  29 0d 07 80 18 4f 50 54  20 a4 65 71 75 64 28 26  |)....OPT .equd(&|
00000c30  30 30 34 30 30 30 30 30  29 0d 07 8a 0b 2e 65 7a  |00400000).....ez|
00000c40  6f 69 6e 67 0d 07 94 18  4f 50 54 20 a4 65 71 75  |oing....OPT .equ|
00000c50  64 28 26 45 43 31 34 30  31 30 32 29 0d 07 9e 18  |d(&EC140102)....|
00000c60  4f 50 54 20 a4 65 71 75  64 28 26 36 34 36 34 36  |OPT .equd(&64646|
00000c70  34 31 34 29 0d 07 a8 18  4f 50 54 20 a4 65 71 75  |414)....OPT .equ|
00000c80  64 28 26 30 30 30 30 46  46 37 46 29 0d 07 b2 14  |d(&0000FF7F)....|
00000c90  4f 50 54 20 a4 65 71 75  64 28 26 30 30 37 45 29  |OPT .equd(&007E)|
00000ca0  0d 07 bc 0b 2e 73 7a 6f  69 6e 67 0d 07 c6 18 4f  |.....szoing....O|
00000cb0  50 54 20 a4 65 71 75 64  28 26 30 30 30 32 30 30  |PT .equd(&000200|
00000cc0  31 32 29 0d 07 d0 18 4f  50 54 20 a4 65 71 75 64  |12)....OPT .equd|
00000cd0  28 26 30 30 33 32 30 30  43 43 29 0d 07 da 0d 2e  |(&003200CC).....|
00000ce0  6c 61 73 74 62 79 74 65  0d 07 e4 05 5d 0d 07 ee  |lastbyte....]...|
00000cf0  05 ed 0d 07 f8 20 41 25  3f 31 3d 28 28 6c 61 73  |..... A%?1=((las|
00000d00  74 62 79 74 65 2b 64 69  66 66 29 20 83 20 32 35  |tbyte+diff) . 25|
00000d10  36 29 0d 08 02 20 42 25  3f 31 3d 28 28 6c 61 73  |6)... B%?1=((las|
00000d20  74 62 79 74 65 2b 64 69  66 66 29 20 81 20 32 35  |tbyte+diff) . 25|
00000d30  36 29 0d 08 0c 23 f4 3a  20 50 6f 6b 65 20 61 64  |6)...#.: Poke ad|
00000d40  64 72 65 73 73 20 6f 66  20 74 68 65 20 73 74 61  |dress of the sta|
00000d50  72 74 20 6f 66 0d 08 16  16 f4 3a 20 52 46 53 20  |rt of.....: RFS |
00000d60  69 6e 74 6f 20 4d 4f 44  4f 4e 45 0d 08 20 0f 4f  |into MODONE.. .O|
00000d70  25 3d 6c 61 73 74 62 79  74 65 0d 08 2a 0d d7 22  |%=lastbyte..*.."|
00000d80  52 46 53 47 45 4e 22 0d  08 34 05 e0 0d 08 3e 10  |RFSGEN"..4....>.|
00000d90  dd a4 65 71 75 62 28 62  79 74 65 29 0d 08 48 0c  |..equb(byte)..H.|
00000da0  3f 50 25 3d 62 79 74 65  0d 08 52 0b 50 25 3d 50  |?P%=byte..R.P%=P|
00000db0  25 2b 31 0d 08 5c 09 3d  70 61 73 73 0d 08 66 10  |%+1..\.=pass..f.|
00000dc0  dd a4 65 71 75 77 28 77  6f 72 64 29 0d 08 70 12  |..equw(word)..p.|
00000dd0  3f 50 25 3d 77 6f 72 64  20 83 20 32 35 36 0d 08  |?P%=word . 256..|
00000de0  7a 13 50 25 3f 31 3d 77  6f 72 64 20 81 20 32 35  |z.P%?1=word . 25|
00000df0  36 0d 08 84 0b 50 25 3d  50 25 2b 32 0d 08 8e 09  |6....P%=P%+2....|
00000e00  3d 70 61 73 73 0d 08 98  12 dd a4 65 71 75 64 28  |=pass......equd(|
00000e10  64 6f 75 62 6c 65 29 0d  08 a2 0e 21 50 25 3d 64  |double)....!P%=d|
00000e20  6f 75 62 6c 65 0d 08 ac  0b 50 25 3d 50 25 2b 34  |ouble....P%=P%+4|
00000e30  0d 08 b6 09 3d 70 61 73  73 0d 08 c0 13 dd a4 65  |....=pass......e|
00000e40  71 75 73 28 73 74 72 69  6e 67 24 29 0d 08 ca 0f  |qus(string$)....|
00000e50  24 50 25 3d 73 74 72 69  6e 67 24 0d 08 d4 14 50  |$P%=string$....P|
00000e60  25 3d 50 25 2b a9 28 73  74 72 69 6e 67 24 29 0d  |%=P%+.(string$).|
00000e70  08 de 09 3d 70 61 73 73  0d ff                    |...=pass..|
00000e7a
16-12-88/MODTWO.m0
16-12-88/MODTWO.m1
16-12-88/MODTWO.m2
16-12-88/MODTWO.m4
16-12-88/MODTWO.m5