Home » Personal collection » Acorn ADFS disks » Electron » Utilities_1.ADF » UTILITIES/ROMmaker

UTILITIES/ROMmaker

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 » Personal collection » Acorn ADFS disks » Electron » Utilities_1.ADF
Filename: UTILITIES/ROMmaker
Read OK:
File size: 0DF4 bytes
Load address: FFFF0E00
Exec address: FFFF8023
Duplicates

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

File contents
   10REM BASIC > ROM IMAGE
   20REM (c) 1988 A&B COMPUTING
   30MODE4
   40PROCinit
   50PROCcls
   60PROCtitle
   70PROCwindow(2,12,35,15)
   80INPUT'"Basic program filename:"Fname$
   90IF LEN(Fname$)>9 GOTO 80
  100Action$="L. "+Fname$+" 3700":OSCLI(Action$)
  110param=&C00:file=&C20:$file=Fname$+CHR$13:param?0=file MOD 256:param?1=file DIV 256:A%=5:X%=param MOD 256:Y%=param DIV 256:CALL &FFDD
  120CALL &FFDD
  130exec=param?6+256*param?7
  140L%=param?10+256*param?11
  150IF exec<>&8023 AND exec<>&801F PRINT''"Sorry, not a BASIC program. Try again."':GOTO80
  160CLS:DIM GR(4):HIMEM=&3500:PRINT'"  BASIC program length:&";~L%:*FX15,0
  170L%=L%+&100
  180INPUT''"Enter desired load address: &"bB$:llA%=EVAL("&"+bB$):lA%=llA% DIV 256  
  190INPUT"Eprom title (Max.20) :"T$  
  200T$=LEFT$(T$,20):TL%=LEN(T$)
  210INPUT"Author's name (Max.15) :"C$
  220C$=LEFT$(C$,15):CL%=LEN(C$)
  230INPUT"Activation command (Max.10): *"COM$
  240COM$=LEFT$(COM$,10):COM%=LEN(COM$)
  250FOR X%=0 TO 2 STEP 2
  260P%=&3500
  270[OPT X%
  280BRK
  290BRK
  300BRK
  310JMP&8030
  320]
  330?P%=&82
  340P%=P%+1
  350?P%=(9+TL%)
  360P%=P%+1
  370?P%=00
  380P%=P%+1
  390$P%=T$
  400P%=P%+TL%
  410?P%=00
  420P%=P%+1
  430?P%=&28
  440P%=P%+1
  450?P%=&43
  460P%=P%+1
  470?P%=&29
  480P%=P%+1
  490$P%=C$ 
  500P%=P%+CL%
  510P%=&3530
  520[OPT X%
  530CMP #&04
  540BEQ ASEPT
  550RTS
  560.FINISH
  570PLA
  580TAX
  590PLA
  600TAY
  610PLA
  620RTS
  630RTS
  640.ASEPT
  650PHA
  660TYA
  670PHA
  680TXA
  690PHA
  700]
  710R%=P%+3
  720FOR H%=1 TO COM%
  730[OPT X%
  740LDA (&F2),Y
  750CMP #&00
  760BNE FINISH
  770INY
  780]
  790NEXT H%
  800 [OPT X%
  810LDA (&F2),Y
  820CMP #&0D
  830BNE FINISH
  840LDA #lA% 
  850STA &71
  860LDA #&82
  870STA &73
  880LDA #&00
  890STA &70
  900STA &72
  910LDY #&FF
  920.MAINLOOP
  930]
  940S%=P%
  950[OPT X%
  960LDA &73
  970CMP #&00
  980BEQ LASTLOOP
  990INY
 1000LDA (&72),Y
 1010STA (&70),Y
 1020CPY #&FF
 1030BNE MAINLOOP
 1040INC &71
 1050INC &73
 1060CLC
 1070BCC MAINLOOP
 1080.LASTLOOP
 1090INY
 1100CPY #&00
 1110BEQ DONE
 1120LDA (&72),Y
 1130STA (&70),Y
 1140CLC
 1150BCC LASTLOOP
 1160.DONE
 1170LDX #&00
 1180LDA #&8A
 1190LDY #&50
 1200JSR &FFF4
 1210LDY #&41
 1220JSR &FFF4
 1230LDY #&2E
 1240JSR &FFF4
 1250LDY #&3D
 1260JSR &FFF4
 1270LDY #&26
 1280JSR &FFF4
 1290]
 1300IF LEN(bB$)=3 THEN bB$="0"+bB$
 1310FOR GY=1 TO 4
 1320GR(GY)=ASC(MID$(bB$,GY,1))
 1330NEXT GY
 1340[OPT X%
 1350LDY #GR(1)
 1360JSR &FFF4
 1370LDY #GR(2)
 1380JSR &FFF4
 1390LDY #GR(3)
 1400JSR &FFF4
 1410LDY #GR(4)
 1420JSR &FFF4
 1430LDY #&D
 1440JSR &FFF4
 1450LDY #&4F
 1460JSR &FFF4
 1470LDY #&4C
 1480JSR &FFF4
 1490LDY #&44
 1500JSR &FFF4
 1510LDY #&0D
 1520JSR &FFF4
 1530LDY #&52
 1540JSR &FFF4
 1550LDY #&55
 1560JSR &FFF4
 1570LDY #&4E
 1580JSR &FFF4
 1590LDY #&0D
 1600JSR &FFF4
 1610PLA
 1620TAX
 1630PLA
 1640TAY
 1650PLA
 1660LDA #&00
 1670RTS
 1680]
 1690NEXT X%
 1700FOR X%=1 TO COM%
 1710?R%=ASC(MID$(COM$,X%,1))
 1720R%=R%+7
 1730NEXT X%
 1740PLH%=(L% DIV 256)+&82
 1750PLL%=(L% MOD 256)
 1760S%?3=PLH%
 1770S%?24=PLL%
 1780PRINT'"The ROM image is now located in memory at &4000 to &";~((&4200+L%)-1);". It can be"'"either loaded in sideways RAM or Blown int an EPROM (with appropriate hardware and software)."
 1790PRINT'"Save to Disc (Y/N) ?";
 1800G$=GET$
 1810PRINT;G$
 1820IF G$="Y" OR G$="y" THEN GOTO 1840
 1830PAGE=&1900:PRINT'':*BASIC
 1840INPUT''"Enter Filename: "File$
 1850IF LEN(File$)>9 THEN 1840
 1860IF (&200+L%)<&4000 THEN Len$="4000"
 1870IF (&200+L%)<&2000 THEN Len$="2000"
 1880IF (&200+L%)<&1000 THEN Len$="1000"
 1890IF (&200+L%)<&400 THEN Len$="400"
 1900Action$="*SAVE "+File$+" 3500+"+Len$+" D9CD 8000"
 1910PRINT'" ";Action$
 1920OSCLI(Action$) 
 1930END
 1940 
 1950DEF PROCcls
 1960VDU26
 1970FOR I%=1 TO 5
 1980PRINT STRING$(248,CHR$224);
 1990NEXT
 2000MOVE 0,28:DRAW 0,1023
 2010DRAW 1278,1023:DRAW 1278,28
 2020DRAW 0,28
 2030ENDPROC
 2040DEF PROCinit
 2050VDU 23,224,85,170,85,170,85,170,85,170
 2060COLOUR 129:COLOUR 0
 2070ENDPROC
 2080DEF PROCwindow(X%,Y%,W%,H%)
 2090VDU28,X%+1,Y%+1+H%,X%+1+W%,Y%+1
 2100COLOUR 128:CLS
 2110VDU28,X%,Y%+H%,X%+W%,Y%
 2120COLOUR129:CLS
 2130VDU28 X%+1,Y%+H%,X%+W%,Y%+1 
 2140ENDPROC
 2150DEF PROCtitle
 2160PROCwindow(4,2,30,6) 
 2170PRINT"ROM IMAGE CREATER V2.02 1991"
 2180PRINT:PRINT"UPGRADED BY BOB (c) A&B 1988"
 2190ENDPROC

� BASIC > ROM IMAGE
� (c) 1988 A&B COMPUTING
�4
(	�init
2�cls
<
�title
F�window(2,12,35,15)
P%�'"Basic program filename:"Fname$
Z� �(Fname$)>9 � �DP@
d+Action$="L. "+Fname$+" 3700":�(Action$)
nzparam=&C00:file=&C20:$file=Fname$+�13:param?0=file � 256:param?1=file � 256:A%=5:X%=param � 256:Y%=param � 256:� &FFDD
x� &FFDD
�exec=param?6+256*param?7
�L%=param?10+256*param?11
�R� exec<>&8023 � exec<>&801F �''"Sorry, not a BASIC program. Try again."':�DP@
�>�:� GR(4):�=&3500:�'"  BASIC program length:&";~L%:*FX15,0
�L%=L%+&100
�J�''"Enter desired load address: &"bB$:llA%=�("&"+bB$):lA%=llA% � 256  
�!�"Eprom title (Max.20) :"T$  
�T$=�T$,20):TL%=�(T$)
�!�"Author's name (Max.15) :"C$
�C$=�C$,15):CL%=�(C$)
�)�"Activation command (Max.10): *"COM$
�COM$=�COM$,10):COM%=�(COM$)
�� X%=0 � 2 � 2
P%=&3500
[OPT X%
BRK
"BRK
,BRK
6JMP&8030
@]
J?P%=&82
TP%=P%+1
^?P%=(9+TL%)
hP%=P%+1
r
?P%=00
|P%=P%+1
�
$P%=T$
�
P%=P%+TL%
�
?P%=00
�P%=P%+1
�?P%=&28
�P%=P%+1
�?P%=&43
�P%=P%+1
�?P%=&29
�P%=P%+1
�$P%=C$ 
�
P%=P%+CL%
�P%=&3530
[OPT X%
CMP #&04

BEQ ASEPT
&RTS
0.FINISH
:PLA
DTAX
NPLA
XTAY
bPLA
lRTS
vRTS
�
.ASEPT
�PHA
�TYA
�PHA
�TXA
�PHA
�]
�R%=P%+3
�� H%=1 � COM%
�[OPT X%
�LDA (&F2),Y
�CMP #&00
�BNE FINISH
INY
]
� H%
  [OPT X%
*LDA (&F2),Y
4CMP #&0D
>BNE FINISH
H
LDA #lA% 
RSTA &71
\LDA #&82
fSTA &73
pLDA #&00
zSTA &70
�STA &72
�LDY #&FF
�
.MAINLOOP
�]
�	S%=P%
�[OPT X%
�LDA &73
�CMP #&00
�BEQ LASTLOOP
�INY
�LDA (&72),Y
�STA (&70),Y
�CPY #&FF
BNE MAINLOOP
INC &71
INC &73
$CLC
.BCC MAINLOOP
8
.LASTLOOP
BINY
LCPY #&00
VBEQ DONE
`LDA (&72),Y
jSTA (&70),Y
tCLC
~BCC LASTLOOP
�	.DONE
�LDX #&00
�LDA #&8A
�LDY #&50
�
JSR &FFF4
�LDY #&41
�
JSR &FFF4
�LDY #&2E
�
JSR &FFF4
�LDY #&3D
�
JSR &FFF4
�LDY #&26

JSR &FFF4

]
� �(bB$)=3 � bB$="0"+bB$
� GY=1 � 4
(GR(GY)=�(�bB$,GY,1))
2� GY
<[OPT X%
FLDY #GR(1)
P
JSR &FFF4
ZLDY #GR(2)
d
JSR &FFF4
nLDY #GR(3)
x
JSR &FFF4
�LDY #GR(4)
�
JSR &FFF4
�LDY #&D
�
JSR &FFF4
�LDY #&4F
�
JSR &FFF4
�LDY #&4C
�
JSR &FFF4
�LDY #&44
�
JSR &FFF4
�LDY #&0D
�
JSR &FFF4
�LDY #&52

JSR &FFF4
LDY #&55

JSR &FFF4
"LDY #&4E
,
JSR &FFF4
6LDY #&0D
@
JSR &FFF4
JPLA
TTAX
^PLA
hTAY
rPLA
|LDA #&00
�RTS
�]
�� X%
�� X%=1 � COM%
�?R%=�(�COM$,X%,1))
�R%=R%+7
�� X%
�PLH%=(L% � 256)+&82
�PLL%=(L% � 256)
�
S%?3=PLH%
�S%?24=PLL%
��'"The ROM image is now located in memory at &4000 to &";~((&4200+L%)-1);". It can be"'"either loaded in sideways RAM or Blown int an EPROM (with appropriate hardware and software)."
��'"Save to Disc (Y/N) ?";
G$=�
�;G$
� G$="Y" � G$="y" � � �TpG
&�=&1900:�'':*BASIC
0�''"Enter Filename: "File$
:� �(File$)>9 � �TpG
D#� (&200+L%)<&4000 � Len$="4000"
N#� (&200+L%)<&2000 � Len$="2000"
X#� (&200+L%)<&1000 � Len$="1000"
b!� (&200+L%)<&400 � Len$="400"
l5Action$="*SAVE "+File$+" 3500+"+Len$+" D9CD 8000"
v�'" ";Action$
��(Action$) 
��
� 
�
� �cls
��26
�� I%=1 � 5
�� �248,�224);
��
�� 0,28:� 0,1023
�� 1278,1023:� 1278,28
�
� 0,28
��
�� �init
(� 23,224,85,170,85,170,85,170,85,170

� 129:� 0
�
 � �window(X%,Y%,W%,H%)
*!�28,X%+1,Y%+1+H%,X%+1+W%,Y%+1
4� 128:�
>�28,X%,Y%+H%,X%+W%,Y%
H
�129:�
R�28 X%+1,Y%+H%,X%+W%,Y%+1 
\�
f� �title
p�window(4,2,30,6) 
z#�"ROM IMAGE CREATER V2.02 1991"
�%�:�"UPGRADED BY BOB (c) A&B 1988"
��
�
00000000  0d 00 0a 17 f4 20 42 41  53 49 43 20 3e 20 52 4f  |..... BASIC > RO|
00000010  4d 20 49 4d 41 47 45 0d  00 14 1c f4 20 28 63 29  |M IMAGE..... (c)|
00000020  20 31 39 38 38 20 41 26  42 20 43 4f 4d 50 55 54  | 1988 A&B COMPUT|
00000030  49 4e 47 0d 00 1e 06 eb  34 0d 00 28 09 f2 69 6e  |ING.....4..(..in|
00000040  69 74 0d 00 32 08 f2 63  6c 73 0d 00 3c 0a f2 74  |it..2..cls..<..t|
00000050  69 74 6c 65 0d 00 46 17  f2 77 69 6e 64 6f 77 28  |itle..F..window(|
00000060  32 2c 31 32 2c 33 35 2c  31 35 29 0d 00 50 25 e8  |2,12,35,15)..P%.|
00000070  27 22 42 61 73 69 63 20  70 72 6f 67 72 61 6d 20  |'"Basic program |
00000080  66 69 6c 65 6e 61 6d 65  3a 22 46 6e 61 6d 65 24  |filename:"Fname$|
00000090  0d 00 5a 18 e7 20 a9 28  46 6e 61 6d 65 24 29 3e  |..Z.. .(Fname$)>|
000000a0  39 20 e5 20 8d 44 50 40  0d 00 64 2b 41 63 74 69  |9 . .DP@..d+Acti|
000000b0  6f 6e 24 3d 22 4c 2e 20  22 2b 46 6e 61 6d 65 24  |on$="L. "+Fname$|
000000c0  2b 22 20 33 37 30 30 22  3a ff 28 41 63 74 69 6f  |+" 3700":.(Actio|
000000d0  6e 24 29 0d 00 6e 7a 70  61 72 61 6d 3d 26 43 30  |n$)..nzparam=&C0|
000000e0  30 3a 66 69 6c 65 3d 26  43 32 30 3a 24 66 69 6c  |0:file=&C20:$fil|
000000f0  65 3d 46 6e 61 6d 65 24  2b bd 31 33 3a 70 61 72  |e=Fname$+.13:par|
00000100  61 6d 3f 30 3d 66 69 6c  65 20 83 20 32 35 36 3a  |am?0=file . 256:|
00000110  70 61 72 61 6d 3f 31 3d  66 69 6c 65 20 81 20 32  |param?1=file . 2|
00000120  35 36 3a 41 25 3d 35 3a  58 25 3d 70 61 72 61 6d  |56:A%=5:X%=param|
00000130  20 83 20 32 35 36 3a 59  25 3d 70 61 72 61 6d 20  | . 256:Y%=param |
00000140  81 20 32 35 36 3a d6 20  26 46 46 44 44 0d 00 78  |. 256:. &FFDD..x|
00000150  0b d6 20 26 46 46 44 44  0d 00 82 1c 65 78 65 63  |.. &FFDD....exec|
00000160  3d 70 61 72 61 6d 3f 36  2b 32 35 36 2a 70 61 72  |=param?6+256*par|
00000170  61 6d 3f 37 0d 00 8c 1c  4c 25 3d 70 61 72 61 6d  |am?7....L%=param|
00000180  3f 31 30 2b 32 35 36 2a  70 61 72 61 6d 3f 31 31  |?10+256*param?11|
00000190  0d 00 96 52 e7 20 65 78  65 63 3c 3e 26 38 30 32  |...R. exec<>&802|
000001a0  33 20 80 20 65 78 65 63  3c 3e 26 38 30 31 46 20  |3 . exec<>&801F |
000001b0  f1 27 27 22 53 6f 72 72  79 2c 20 6e 6f 74 20 61  |.''"Sorry, not a|
000001c0  20 42 41 53 49 43 20 70  72 6f 67 72 61 6d 2e 20  | BASIC program. |
000001d0  54 72 79 20 61 67 61 69  6e 2e 22 27 3a e5 8d 44  |Try again."':..D|
000001e0  50 40 0d 00 a0 3e db 3a  de 20 47 52 28 34 29 3a  |P@...>.:. GR(4):|
000001f0  d3 3d 26 33 35 30 30 3a  f1 27 22 20 20 42 41 53  |.=&3500:.'"  BAS|
00000200  49 43 20 70 72 6f 67 72  61 6d 20 6c 65 6e 67 74  |IC program lengt|
00000210  68 3a 26 22 3b 7e 4c 25  3a 2a 46 58 31 35 2c 30  |h:&";~L%:*FX15,0|
00000220  0d 00 aa 0e 4c 25 3d 4c  25 2b 26 31 30 30 0d 00  |....L%=L%+&100..|
00000230  b4 4a e8 27 27 22 45 6e  74 65 72 20 64 65 73 69  |.J.''"Enter desi|
00000240  72 65 64 20 6c 6f 61 64  20 61 64 64 72 65 73 73  |red load address|
00000250  3a 20 26 22 62 42 24 3a  6c 6c 41 25 3d a0 28 22  |: &"bB$:llA%=.("|
00000260  26 22 2b 62 42 24 29 3a  6c 41 25 3d 6c 6c 41 25  |&"+bB$):lA%=llA%|
00000270  20 81 20 32 35 36 20 20  0d 00 be 21 e8 22 45 70  | . 256  ...!."Ep|
00000280  72 6f 6d 20 74 69 74 6c  65 20 28 4d 61 78 2e 32  |rom title (Max.2|
00000290  30 29 20 3a 22 54 24 20  20 0d 00 c8 18 54 24 3d  |0) :"T$  ....T$=|
000002a0  c0 54 24 2c 32 30 29 3a  54 4c 25 3d a9 28 54 24  |.T$,20):TL%=.(T$|
000002b0  29 0d 00 d2 21 e8 22 41  75 74 68 6f 72 27 73 20  |)...!."Author's |
000002c0  6e 61 6d 65 20 28 4d 61  78 2e 31 35 29 20 3a 22  |name (Max.15) :"|
000002d0  43 24 0d 00 dc 18 43 24  3d c0 43 24 2c 31 35 29  |C$....C$=.C$,15)|
000002e0  3a 43 4c 25 3d a9 28 43  24 29 0d 00 e6 29 e8 22  |:CL%=.(C$)...)."|
000002f0  41 63 74 69 76 61 74 69  6f 6e 20 63 6f 6d 6d 61  |Activation comma|
00000300  6e 64 20 28 4d 61 78 2e  31 30 29 3a 20 2a 22 43  |nd (Max.10): *"C|
00000310  4f 4d 24 0d 00 f0 1f 43  4f 4d 24 3d c0 43 4f 4d  |OM$....COM$=.COM|
00000320  24 2c 31 30 29 3a 43 4f  4d 25 3d a9 28 43 4f 4d  |$,10):COM%=.(COM|
00000330  24 29 0d 00 fa 12 e3 20  58 25 3d 30 20 b8 20 32  |$)..... X%=0 . 2|
00000340  20 88 20 32 0d 01 04 0c  50 25 3d 26 33 35 30 30  | . 2....P%=&3500|
00000350  0d 01 0e 0b 5b 4f 50 54  20 58 25 0d 01 18 07 42  |....[OPT X%....B|
00000360  52 4b 0d 01 22 07 42 52  4b 0d 01 2c 07 42 52 4b  |RK..".BRK..,.BRK|
00000370  0d 01 36 0c 4a 4d 50 26  38 30 33 30 0d 01 40 05  |..6.JMP&8030..@.|
00000380  5d 0d 01 4a 0b 3f 50 25  3d 26 38 32 0d 01 54 0b  |]..J.?P%=&82..T.|
00000390  50 25 3d 50 25 2b 31 0d  01 5e 0f 3f 50 25 3d 28  |P%=P%+1..^.?P%=(|
000003a0  39 2b 54 4c 25 29 0d 01  68 0b 50 25 3d 50 25 2b  |9+TL%)..h.P%=P%+|
000003b0  31 0d 01 72 0a 3f 50 25  3d 30 30 0d 01 7c 0b 50  |1..r.?P%=00..|.P|
000003c0  25 3d 50 25 2b 31 0d 01  86 0a 24 50 25 3d 54 24  |%=P%+1....$P%=T$|
000003d0  0d 01 90 0d 50 25 3d 50  25 2b 54 4c 25 0d 01 9a  |....P%=P%+TL%...|
000003e0  0a 3f 50 25 3d 30 30 0d  01 a4 0b 50 25 3d 50 25  |.?P%=00....P%=P%|
000003f0  2b 31 0d 01 ae 0b 3f 50  25 3d 26 32 38 0d 01 b8  |+1....?P%=&28...|
00000400  0b 50 25 3d 50 25 2b 31  0d 01 c2 0b 3f 50 25 3d  |.P%=P%+1....?P%=|
00000410  26 34 33 0d 01 cc 0b 50  25 3d 50 25 2b 31 0d 01  |&43....P%=P%+1..|
00000420  d6 0b 3f 50 25 3d 26 32  39 0d 01 e0 0b 50 25 3d  |..?P%=&29....P%=|
00000430  50 25 2b 31 0d 01 ea 0b  24 50 25 3d 43 24 20 0d  |P%+1....$P%=C$ .|
00000440  01 f4 0d 50 25 3d 50 25  2b 43 4c 25 0d 01 fe 0c  |...P%=P%+CL%....|
00000450  50 25 3d 26 33 35 33 30  0d 02 08 0b 5b 4f 50 54  |P%=&3530....[OPT|
00000460  20 58 25 0d 02 12 0c 43  4d 50 20 23 26 30 34 0d  | X%....CMP #&04.|
00000470  02 1c 0d 42 45 51 20 41  53 45 50 54 0d 02 26 07  |...BEQ ASEPT..&.|
00000480  52 54 53 0d 02 30 0b 2e  46 49 4e 49 53 48 0d 02  |RTS..0..FINISH..|
00000490  3a 07 50 4c 41 0d 02 44  07 54 41 58 0d 02 4e 07  |:.PLA..D.TAX..N.|
000004a0  50 4c 41 0d 02 58 07 54  41 59 0d 02 62 07 50 4c  |PLA..X.TAY..b.PL|
000004b0  41 0d 02 6c 07 52 54 53  0d 02 76 07 52 54 53 0d  |A..l.RTS..v.RTS.|
000004c0  02 80 0a 2e 41 53 45 50  54 0d 02 8a 07 50 48 41  |....ASEPT....PHA|
000004d0  0d 02 94 07 54 59 41 0d  02 9e 07 50 48 41 0d 02  |....TYA....PHA..|
000004e0  a8 07 54 58 41 0d 02 b2  07 50 48 41 0d 02 bc 05  |..TXA....PHA....|
000004f0  5d 0d 02 c6 0b 52 25 3d  50 25 2b 33 0d 02 d0 11  |]....R%=P%+3....|
00000500  e3 20 48 25 3d 31 20 b8  20 43 4f 4d 25 0d 02 da  |. H%=1 . COM%...|
00000510  0b 5b 4f 50 54 20 58 25  0d 02 e4 0f 4c 44 41 20  |.[OPT X%....LDA |
00000520  28 26 46 32 29 2c 59 0d  02 ee 0c 43 4d 50 20 23  |(&F2),Y....CMP #|
00000530  26 30 30 0d 02 f8 0e 42  4e 45 20 46 49 4e 49 53  |&00....BNE FINIS|
00000540  48 0d 03 02 07 49 4e 59  0d 03 0c 05 5d 0d 03 16  |H....INY....]...|
00000550  08 ed 20 48 25 0d 03 20  0c 20 5b 4f 50 54 20 58  |.. H%.. . [OPT X|
00000560  25 0d 03 2a 0f 4c 44 41  20 28 26 46 32 29 2c 59  |%..*.LDA (&F2),Y|
00000570  0d 03 34 0c 43 4d 50 20  23 26 30 44 0d 03 3e 0e  |..4.CMP #&0D..>.|
00000580  42 4e 45 20 46 49 4e 49  53 48 0d 03 48 0d 4c 44  |BNE FINISH..H.LD|
00000590  41 20 23 6c 41 25 20 0d  03 52 0b 53 54 41 20 26  |A #lA% ..R.STA &|
000005a0  37 31 0d 03 5c 0c 4c 44  41 20 23 26 38 32 0d 03  |71..\.LDA #&82..|
000005b0  66 0b 53 54 41 20 26 37  33 0d 03 70 0c 4c 44 41  |f.STA &73..p.LDA|
000005c0  20 23 26 30 30 0d 03 7a  0b 53 54 41 20 26 37 30  | #&00..z.STA &70|
000005d0  0d 03 84 0b 53 54 41 20  26 37 32 0d 03 8e 0c 4c  |....STA &72....L|
000005e0  44 59 20 23 26 46 46 0d  03 98 0d 2e 4d 41 49 4e  |DY #&FF.....MAIN|
000005f0  4c 4f 4f 50 0d 03 a2 05  5d 0d 03 ac 09 53 25 3d  |LOOP....]....S%=|
00000600  50 25 0d 03 b6 0b 5b 4f  50 54 20 58 25 0d 03 c0  |P%....[OPT X%...|
00000610  0b 4c 44 41 20 26 37 33  0d 03 ca 0c 43 4d 50 20  |.LDA &73....CMP |
00000620  23 26 30 30 0d 03 d4 10  42 45 51 20 4c 41 53 54  |#&00....BEQ LAST|
00000630  4c 4f 4f 50 0d 03 de 07  49 4e 59 0d 03 e8 0f 4c  |LOOP....INY....L|
00000640  44 41 20 28 26 37 32 29  2c 59 0d 03 f2 0f 53 54  |DA (&72),Y....ST|
00000650  41 20 28 26 37 30 29 2c  59 0d 03 fc 0c 43 50 59  |A (&70),Y....CPY|
00000660  20 23 26 46 46 0d 04 06  10 42 4e 45 20 4d 41 49  | #&FF....BNE MAI|
00000670  4e 4c 4f 4f 50 0d 04 10  0b 49 4e 43 20 26 37 31  |NLOOP....INC &71|
00000680  0d 04 1a 0b 49 4e 43 20  26 37 33 0d 04 24 07 43  |....INC &73..$.C|
00000690  4c 43 0d 04 2e 10 42 43  43 20 4d 41 49 4e 4c 4f  |LC....BCC MAINLO|
000006a0  4f 50 0d 04 38 0d 2e 4c  41 53 54 4c 4f 4f 50 0d  |OP..8..LASTLOOP.|
000006b0  04 42 07 49 4e 59 0d 04  4c 0c 43 50 59 20 23 26  |.B.INY..L.CPY #&|
000006c0  30 30 0d 04 56 0c 42 45  51 20 44 4f 4e 45 0d 04  |00..V.BEQ DONE..|
000006d0  60 0f 4c 44 41 20 28 26  37 32 29 2c 59 0d 04 6a  |`.LDA (&72),Y..j|
000006e0  0f 53 54 41 20 28 26 37  30 29 2c 59 0d 04 74 07  |.STA (&70),Y..t.|
000006f0  43 4c 43 0d 04 7e 10 42  43 43 20 4c 41 53 54 4c  |CLC..~.BCC LASTL|
00000700  4f 4f 50 0d 04 88 09 2e  44 4f 4e 45 0d 04 92 0c  |OOP.....DONE....|
00000710  4c 44 58 20 23 26 30 30  0d 04 9c 0c 4c 44 41 20  |LDX #&00....LDA |
00000720  23 26 38 41 0d 04 a6 0c  4c 44 59 20 23 26 35 30  |#&8A....LDY #&50|
00000730  0d 04 b0 0d 4a 53 52 20  26 46 46 46 34 0d 04 ba  |....JSR &FFF4...|
00000740  0c 4c 44 59 20 23 26 34  31 0d 04 c4 0d 4a 53 52  |.LDY #&41....JSR|
00000750  20 26 46 46 46 34 0d 04  ce 0c 4c 44 59 20 23 26  | &FFF4....LDY #&|
00000760  32 45 0d 04 d8 0d 4a 53  52 20 26 46 46 46 34 0d  |2E....JSR &FFF4.|
00000770  04 e2 0c 4c 44 59 20 23  26 33 44 0d 04 ec 0d 4a  |...LDY #&3D....J|
00000780  53 52 20 26 46 46 46 34  0d 04 f6 0c 4c 44 59 20  |SR &FFF4....LDY |
00000790  23 26 32 36 0d 05 00 0d  4a 53 52 20 26 46 46 46  |#&26....JSR &FFF|
000007a0  34 0d 05 0a 05 5d 0d 05  14 1c e7 20 a9 28 62 42  |4....]..... .(bB|
000007b0  24 29 3d 33 20 8c 20 62  42 24 3d 22 30 22 2b 62  |$)=3 . bB$="0"+b|
000007c0  42 24 0d 05 1e 0e e3 20  47 59 3d 31 20 b8 20 34  |B$..... GY=1 . 4|
000007d0  0d 05 28 18 47 52 28 47  59 29 3d 97 28 c1 62 42  |..(.GR(GY)=.(.bB|
000007e0  24 2c 47 59 2c 31 29 29  0d 05 32 08 ed 20 47 59  |$,GY,1))..2.. GY|
000007f0  0d 05 3c 0b 5b 4f 50 54  20 58 25 0d 05 46 0e 4c  |..<.[OPT X%..F.L|
00000800  44 59 20 23 47 52 28 31  29 0d 05 50 0d 4a 53 52  |DY #GR(1)..P.JSR|
00000810  20 26 46 46 46 34 0d 05  5a 0e 4c 44 59 20 23 47  | &FFF4..Z.LDY #G|
00000820  52 28 32 29 0d 05 64 0d  4a 53 52 20 26 46 46 46  |R(2)..d.JSR &FFF|
00000830  34 0d 05 6e 0e 4c 44 59  20 23 47 52 28 33 29 0d  |4..n.LDY #GR(3).|
00000840  05 78 0d 4a 53 52 20 26  46 46 46 34 0d 05 82 0e  |.x.JSR &FFF4....|
00000850  4c 44 59 20 23 47 52 28  34 29 0d 05 8c 0d 4a 53  |LDY #GR(4)....JS|
00000860  52 20 26 46 46 46 34 0d  05 96 0b 4c 44 59 20 23  |R &FFF4....LDY #|
00000870  26 44 0d 05 a0 0d 4a 53  52 20 26 46 46 46 34 0d  |&D....JSR &FFF4.|
00000880  05 aa 0c 4c 44 59 20 23  26 34 46 0d 05 b4 0d 4a  |...LDY #&4F....J|
00000890  53 52 20 26 46 46 46 34  0d 05 be 0c 4c 44 59 20  |SR &FFF4....LDY |
000008a0  23 26 34 43 0d 05 c8 0d  4a 53 52 20 26 46 46 46  |#&4C....JSR &FFF|
000008b0  34 0d 05 d2 0c 4c 44 59  20 23 26 34 34 0d 05 dc  |4....LDY #&44...|
000008c0  0d 4a 53 52 20 26 46 46  46 34 0d 05 e6 0c 4c 44  |.JSR &FFF4....LD|
000008d0  59 20 23 26 30 44 0d 05  f0 0d 4a 53 52 20 26 46  |Y #&0D....JSR &F|
000008e0  46 46 34 0d 05 fa 0c 4c  44 59 20 23 26 35 32 0d  |FF4....LDY #&52.|
000008f0  06 04 0d 4a 53 52 20 26  46 46 46 34 0d 06 0e 0c  |...JSR &FFF4....|
00000900  4c 44 59 20 23 26 35 35  0d 06 18 0d 4a 53 52 20  |LDY #&55....JSR |
00000910  26 46 46 46 34 0d 06 22  0c 4c 44 59 20 23 26 34  |&FFF4..".LDY #&4|
00000920  45 0d 06 2c 0d 4a 53 52  20 26 46 46 46 34 0d 06  |E..,.JSR &FFF4..|
00000930  36 0c 4c 44 59 20 23 26  30 44 0d 06 40 0d 4a 53  |6.LDY #&0D..@.JS|
00000940  52 20 26 46 46 46 34 0d  06 4a 07 50 4c 41 0d 06  |R &FFF4..J.PLA..|
00000950  54 07 54 41 58 0d 06 5e  07 50 4c 41 0d 06 68 07  |T.TAX..^.PLA..h.|
00000960  54 41 59 0d 06 72 07 50  4c 41 0d 06 7c 0c 4c 44  |TAY..r.PLA..|.LD|
00000970  41 20 23 26 30 30 0d 06  86 07 52 54 53 0d 06 90  |A #&00....RTS...|
00000980  05 5d 0d 06 9a 08 ed 20  58 25 0d 06 a4 11 e3 20  |.]..... X%..... |
00000990  58 25 3d 31 20 b8 20 43  4f 4d 25 0d 06 ae 16 3f  |X%=1 . COM%....?|
000009a0  52 25 3d 97 28 c1 43 4f  4d 24 2c 58 25 2c 31 29  |R%=.(.COM$,X%,1)|
000009b0  29 0d 06 b8 0b 52 25 3d  52 25 2b 37 0d 06 c2 08  |)....R%=R%+7....|
000009c0  ed 20 58 25 0d 06 cc 17  50 4c 48 25 3d 28 4c 25  |. X%....PLH%=(L%|
000009d0  20 81 20 32 35 36 29 2b  26 38 32 0d 06 d6 13 50  | . 256)+&82....P|
000009e0  4c 4c 25 3d 28 4c 25 20  83 20 32 35 36 29 0d 06  |LL%=(L% . 256)..|
000009f0  e0 0d 53 25 3f 33 3d 50  4c 48 25 0d 06 ea 0e 53  |..S%?3=PLH%....S|
00000a00  25 3f 32 34 3d 50 4c 4c  25 0d 06 f4 ba f1 27 22  |%?24=PLL%.....'"|
00000a10  54 68 65 20 52 4f 4d 20  69 6d 61 67 65 20 69 73  |The ROM image is|
00000a20  20 6e 6f 77 20 6c 6f 63  61 74 65 64 20 69 6e 20  | now located in |
00000a30  6d 65 6d 6f 72 79 20 61  74 20 26 34 30 30 30 20  |memory at &4000 |
00000a40  74 6f 20 26 22 3b 7e 28  28 26 34 32 30 30 2b 4c  |to &";~((&4200+L|
00000a50  25 29 2d 31 29 3b 22 2e  20 49 74 20 63 61 6e 20  |%)-1);". It can |
00000a60  62 65 22 27 22 65 69 74  68 65 72 20 6c 6f 61 64  |be"'"either load|
00000a70  65 64 20 69 6e 20 73 69  64 65 77 61 79 73 20 52  |ed in sideways R|
00000a80  41 4d 20 6f 72 20 42 6c  6f 77 6e 20 69 6e 74 20  |AM or Blown int |
00000a90  61 6e 20 45 50 52 4f 4d  20 28 77 69 74 68 20 61  |an EPROM (with a|
00000aa0  70 70 72 6f 70 72 69 61  74 65 20 68 61 72 64 77  |ppropriate hardw|
00000ab0  61 72 65 20 61 6e 64 20  73 6f 66 74 77 61 72 65  |are and software|
00000ac0  29 2e 22 0d 06 fe 1d f1  27 22 53 61 76 65 20 74  |).".....'"Save t|
00000ad0  6f 20 44 69 73 63 20 28  59 2f 4e 29 20 3f 22 3b  |o Disc (Y/N) ?";|
00000ae0  0d 07 08 08 47 24 3d be  0d 07 12 08 f1 3b 47 24  |....G$=......;G$|
00000af0  0d 07 1c 1e e7 20 47 24  3d 22 59 22 20 84 20 47  |..... G$="Y" . G|
00000b00  24 3d 22 79 22 20 8c 20  e5 20 8d 54 70 47 0d 07  |$="y" . . .TpG..|
00000b10  26 16 d0 3d 26 31 39 30  30 3a f1 27 27 3a 2a 42  |&..=&1900:.'':*B|
00000b20  41 53 49 43 0d 07 30 1e  e8 27 27 22 45 6e 74 65  |ASIC..0..''"Ente|
00000b30  72 20 46 69 6c 65 6e 61  6d 65 3a 20 22 46 69 6c  |r Filename: "Fil|
00000b40  65 24 0d 07 3a 17 e7 20  a9 28 46 69 6c 65 24 29  |e$..:.. .(File$)|
00000b50  3e 39 20 8c 20 8d 54 70  47 0d 07 44 23 e7 20 28  |>9 . .TpG..D#. (|
00000b60  26 32 30 30 2b 4c 25 29  3c 26 34 30 30 30 20 8c  |&200+L%)<&4000 .|
00000b70  20 4c 65 6e 24 3d 22 34  30 30 30 22 0d 07 4e 23  | Len$="4000"..N#|
00000b80  e7 20 28 26 32 30 30 2b  4c 25 29 3c 26 32 30 30  |. (&200+L%)<&200|
00000b90  30 20 8c 20 4c 65 6e 24  3d 22 32 30 30 30 22 0d  |0 . Len$="2000".|
00000ba0  07 58 23 e7 20 28 26 32  30 30 2b 4c 25 29 3c 26  |.X#. (&200+L%)<&|
00000bb0  31 30 30 30 20 8c 20 4c  65 6e 24 3d 22 31 30 30  |1000 . Len$="100|
00000bc0  30 22 0d 07 62 21 e7 20  28 26 32 30 30 2b 4c 25  |0"..b!. (&200+L%|
00000bd0  29 3c 26 34 30 30 20 8c  20 4c 65 6e 24 3d 22 34  |)<&400 . Len$="4|
00000be0  30 30 22 0d 07 6c 35 41  63 74 69 6f 6e 24 3d 22  |00"..l5Action$="|
00000bf0  2a 53 41 56 45 20 22 2b  46 69 6c 65 24 2b 22 20  |*SAVE "+File$+" |
00000c00  33 35 30 30 2b 22 2b 4c  65 6e 24 2b 22 20 44 39  |3500+"+Len$+" D9|
00000c10  43 44 20 38 30 30 30 22  0d 07 76 11 f1 27 22 20  |CD 8000"..v..'" |
00000c20  22 3b 41 63 74 69 6f 6e  24 0d 07 80 0f ff 28 41  |";Action$.....(A|
00000c30  63 74 69 6f 6e 24 29 20  0d 07 8a 05 e0 0d 07 94  |ction$) ........|
00000c40  05 20 0d 07 9e 0a dd 20  f2 63 6c 73 0d 07 a8 07  |. ..... .cls....|
00000c50  ef 32 36 0d 07 b2 0e e3  20 49 25 3d 31 20 b8 20  |.26..... I%=1 . |
00000c60  35 0d 07 bc 11 f1 20 c4  32 34 38 2c bd 32 32 34  |5..... .248,.224|
00000c70  29 3b 0d 07 c6 05 ed 0d  07 d0 13 ec 20 30 2c 32  |);.......... 0,2|
00000c80  38 3a df 20 30 2c 31 30  32 33 0d 07 da 19 df 20  |8:. 0,1023..... |
00000c90  31 32 37 38 2c 31 30 32  33 3a df 20 31 32 37 38  |1278,1023:. 1278|
00000ca0  2c 32 38 0d 07 e4 0a df  20 30 2c 32 38 0d 07 ee  |,28..... 0,28...|
00000cb0  05 e1 0d 07 f8 0b dd 20  f2 69 6e 69 74 0d 08 02  |....... .init...|
00000cc0  28 ef 20 32 33 2c 32 32  34 2c 38 35 2c 31 37 30  |(. 23,224,85,170|
00000cd0  2c 38 35 2c 31 37 30 2c  38 35 2c 31 37 30 2c 38  |,85,170,85,170,8|
00000ce0  35 2c 31 37 30 0d 08 0c  0d fb 20 31 32 39 3a fb  |5,170..... 129:.|
00000cf0  20 30 0d 08 16 05 e1 0d  08 20 1a dd 20 f2 77 69  | 0....... .. .wi|
00000d00  6e 64 6f 77 28 58 25 2c  59 25 2c 57 25 2c 48 25  |ndow(X%,Y%,W%,H%|
00000d10  29 0d 08 2a 21 ef 32 38  2c 58 25 2b 31 2c 59 25  |)..*!.28,X%+1,Y%|
00000d20  2b 31 2b 48 25 2c 58 25  2b 31 2b 57 25 2c 59 25  |+1+H%,X%+1+W%,Y%|
00000d30  2b 31 0d 08 34 0b fb 20  31 32 38 3a db 0d 08 3e  |+1..4.. 128:...>|
00000d40  19 ef 32 38 2c 58 25 2c  59 25 2b 48 25 2c 58 25  |..28,X%,Y%+H%,X%|
00000d50  2b 57 25 2c 59 25 0d 08  48 0a fb 31 32 39 3a db  |+W%,Y%..H..129:.|
00000d60  0d 08 52 1e ef 32 38 20  58 25 2b 31 2c 59 25 2b  |..R..28 X%+1,Y%+|
00000d70  48 25 2c 58 25 2b 57 25  2c 59 25 2b 31 20 0d 08  |H%,X%+W%,Y%+1 ..|
00000d80  5c 05 e1 0d 08 66 0c dd  20 f2 74 69 74 6c 65 0d  |\....f.. .title.|
00000d90  08 70 16 f2 77 69 6e 64  6f 77 28 34 2c 32 2c 33  |.p..window(4,2,3|
00000da0  30 2c 36 29 20 0d 08 7a  23 f1 22 52 4f 4d 20 49  |0,6) ..z#."ROM I|
00000db0  4d 41 47 45 20 43 52 45  41 54 45 52 20 56 32 2e  |MAGE CREATER V2.|
00000dc0  30 32 20 31 39 39 31 22  0d 08 84 25 f1 3a f1 22  |02 1991"...%.:."|
00000dd0  55 50 47 52 41 44 45 44  20 42 59 20 42 4f 42 20  |UPGRADED BY BOB |
00000de0  28 63 29 20 41 26 42 20  31 39 38 38 22 0d 08 8e  |(c) A&B 1988"...|
00000df0  05 e1 0d ff                                       |....|
00000df4
UTILITIES/ROMmaker.m0
UTILITIES/ROMmaker.m1
UTILITIES/ROMmaker.m2
UTILITIES/ROMmaker.m4
UTILITIES/ROMmaker.m5