Home » Personal collection » Acorn hard disk » misc » misc2 » dcfprogs/BasicAssem

dcfprogs/BasicAssem

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 hard disk » misc » misc2
Filename: dcfprogs/BasicAssem
Read OK:
File size: 049E bytes
Load address: 0000
Exec address: 0000
File contents
   10 MODE 6:z=0:b=0:P%=&4000
   20 VDU 28,0,24,39,20
   30 PRINT"       Basic Assemler"
   40 PRINT"       =============="
   50 INPUT"1.>";c$
   60 m1$=MID$(c$,1,4)
   70 IF m1$="MODE" THENPROCmode
   80 IF m1$="TEXT" THENPROCtext
   90 IF m1$="COLO" THENPROCcolo
  100 IF m1$="FOlo" THENPROCfolo
  110 IF m1$="VDUc" THENPROCvduc
  120 IF m1$="NEXT" THENPROCnext
  130 IF m1$="SAVE" THENPROCsave
  140 IF m1$="END*" THENPROCend*
  150 IF z<>1 THEN PRINT"Mistake!"
  160 z=0:GOTO50
  170 DEFPROCmode
  180 asc=ASC(MID$(c$,5,1))
  190 IFasc<48 THENPRINT"Bad MODE?":b=1
  200 IFasc>55 THENPRINT"Bad MODE?":b=1
  210 IFb=1 THEN b=0:ENDPROC
  220 as=asc-48:[OPT 1
  230 LDA#22:JSR&FFEE:LDA#as:JSR&FFEE
  240 ]:z=1:ENDPROC
  250 DEFPROCtext
  260 INPUT"Message";me$
  270 FORlo=1 TO LEN(me$)
  280 asc=ASC(MID$(me$,lo,1))
  290 [OPT1:LDA#asc:JSR&FFEE:]:NEXT
  300 z=1:ENDPROC
  310 DEFPROCsave:f=&4000
  320 *SAVE Data 4000 7000
  330 ENDPROC
  340 DEFPROCcolo
  350 c=ASC(MID$(c$,5,1))
  360 IFc<48 THENPRINT"Bad COLOUR?":b=1
  370 IFc>55 THENPRINT"Bad COLOUR?":b=1
  380 c2=ASC(MID$(c$,6,1))
  390 IFc2<48THENPRINT"Bad COLOUR?":b=1
  400 IFc2>55THENPRINT"Bad COLOUR?":b=1
  410 IF b=1 THEN b=0:ENDPROC
  420 IFb=1 THEN b=0:ENDPROC
  430 [OPT 0:LDA#17:JSR&FFEE
  440 LDA#c*10+c2:JSR&FFEE:]:z=1
  450 ENDPROC
  460 DEFPROCvduc
  470 INPUT"Code";co
  480 [LDA#co:JSR&FFEE:]:z=1:ENDPROC
  490 ENDPROC
  500 DEFPROCfolo
  510 INPUT"From";f
  520 INPUT"To";t:INPUT"STEP";s
  530 [OPT 1:LDY#f:.loop
  540 ]:ENDPROC
  550 DEFPROCnext
  560 [INY:CPY#t:BNEloop:]:z=1:ENDPROC
  570 DEFPROCend*
  580 [RTS:]
  590 END

 � 6:z=0:b=0:P%=&4000
 � 28,0,24,39,20
 �"       Basic Assemler"
( �"       =============="
2 �"1.>";c$
< m1$=�c$,1,4)
F � m1$="MODE" ��mode
P � m1$="TEXT" ��text
Z � m1$="COLO" ��colo
d � m1$="FOlo" ��folo
n � m1$="VDUc" ��vduc
x � m1$="NEXT" ��next
� � m1$="SAVE" ��save
� � m1$="END*" ��end*
� � z<>1 � �"Mistake!"
� z=0:�Tr@
� ��mode
� asc=�(�c$,5,1))
� �asc<48 ��"Bad MODE?":b=1
� �asc>55 ��"Bad MODE?":b=1
� �b=1 � b=0:�
� as=asc-48:[OPT 1
�$ LDA#22:JSR&FFEE:LDA#as:JSR&FFEE
� ]:z=1:�
� ��text
 �"Message";me$
 �lo=1 � �(me$)
 asc=�(�me$,lo,1))
" [OPT1:LDA#asc:JSR&FFEE:]:�
,
 z=1:�
6 ��save:f=&4000
@ *SAVE Data 4000 7000
J �
T ��colo
^ c=�(�c$,5,1))
h �c<48 ��"Bad COLOUR?":b=1
r �c>55 ��"Bad COLOUR?":b=1
| c2=�(�c$,6,1))
� �c2<48��"Bad COLOUR?":b=1
� �c2>55��"Bad COLOUR?":b=1
� � b=1 � b=0:�
� �b=1 � b=0:�
� [OPT 0:LDA#17:JSR&FFEE
� LDA#c*10+c2:JSR&FFEE:]:z=1
� �
� ��vduc
� �"Code";co
� [LDA#co:JSR&FFEE:]:z=1:�
� �
� ��folo
� �"From";f
 �"To";t:�"STEP";s
 [OPT 1:LDY#f:.loop
 ]:�
& ��next
0 [INY:CPY#t:BNEloop:]:z=1:�
: ��end*
D [RTS:]
N �
�
00000000  0d 00 0a 19 20 eb 20 36  3a 7a 3d 30 3a 62 3d 30  |.... . 6:z=0:b=0|
00000010  3a 50 25 3d 26 34 30 30  30 0d 00 14 14 20 ef 20  |:P%=&4000.... . |
00000020  32 38 2c 30 2c 32 34 2c  33 39 2c 32 30 0d 00 1e  |28,0,24,39,20...|
00000030  1d 20 f1 22 20 20 20 20  20 20 20 42 61 73 69 63  |. ."       Basic|
00000040  20 41 73 73 65 6d 6c 65  72 22 0d 00 28 1d 20 f1  | Assemler"..(. .|
00000050  22 20 20 20 20 20 20 20  3d 3d 3d 3d 3d 3d 3d 3d  |"       ========|
00000060  3d 3d 3d 3d 3d 3d 22 0d  00 32 0e 20 e8 22 31 2e  |======"..2. ."1.|
00000070  3e 22 3b 63 24 0d 00 3c  11 20 6d 31 24 3d c1 63  |>";c$..<. m1$=.c|
00000080  24 2c 31 2c 34 29 0d 00  46 18 20 e7 20 6d 31 24  |$,1,4)..F. . m1$|
00000090  3d 22 4d 4f 44 45 22 20  8c f2 6d 6f 64 65 0d 00  |="MODE" ..mode..|
000000a0  50 18 20 e7 20 6d 31 24  3d 22 54 45 58 54 22 20  |P. . m1$="TEXT" |
000000b0  8c f2 74 65 78 74 0d 00  5a 18 20 e7 20 6d 31 24  |..text..Z. . m1$|
000000c0  3d 22 43 4f 4c 4f 22 20  8c f2 63 6f 6c 6f 0d 00  |="COLO" ..colo..|
000000d0  64 18 20 e7 20 6d 31 24  3d 22 46 4f 6c 6f 22 20  |d. . m1$="FOlo" |
000000e0  8c f2 66 6f 6c 6f 0d 00  6e 18 20 e7 20 6d 31 24  |..folo..n. . m1$|
000000f0  3d 22 56 44 55 63 22 20  8c f2 76 64 75 63 0d 00  |="VDUc" ..vduc..|
00000100  78 18 20 e7 20 6d 31 24  3d 22 4e 45 58 54 22 20  |x. . m1$="NEXT" |
00000110  8c f2 6e 65 78 74 0d 00  82 18 20 e7 20 6d 31 24  |..next.... . m1$|
00000120  3d 22 53 41 56 45 22 20  8c f2 73 61 76 65 0d 00  |="SAVE" ..save..|
00000130  8c 18 20 e7 20 6d 31 24  3d 22 45 4e 44 2a 22 20  |.. . m1$="END*" |
00000140  8c f2 65 6e 64 2a 0d 00  96 19 20 e7 20 7a 3c 3e  |..end*.... . z<>|
00000150  31 20 8c 20 f1 22 4d 69  73 74 61 6b 65 21 22 0d  |1 . ."Mistake!".|
00000160  00 a0 0e 20 7a 3d 30 3a  e5 8d 54 72 40 0d 00 aa  |... z=0:..Tr@...|
00000170  0b 20 dd f2 6d 6f 64 65  0d 00 b4 14 20 61 73 63  |. ..mode.... asc|
00000180  3d 97 28 c1 63 24 2c 35  2c 31 29 29 0d 00 be 1e  |=.(.c$,5,1))....|
00000190  20 e7 61 73 63 3c 34 38  20 8c f1 22 42 61 64 20  | .asc<48 .."Bad |
000001a0  4d 4f 44 45 3f 22 3a 62  3d 31 0d 00 c8 1e 20 e7  |MODE?":b=1.... .|
000001b0  61 73 63 3e 35 35 20 8c  f1 22 42 61 64 20 4d 4f  |asc>55 .."Bad MO|
000001c0  44 45 3f 22 3a 62 3d 31  0d 00 d2 11 20 e7 62 3d  |DE?":b=1.... .b=|
000001d0  31 20 8c 20 62 3d 30 3a  e1 0d 00 dc 15 20 61 73  |1 . b=0:..... as|
000001e0  3d 61 73 63 2d 34 38 3a  5b 4f 50 54 20 31 0d 00  |=asc-48:[OPT 1..|
000001f0  e6 24 20 4c 44 41 23 32  32 3a 4a 53 52 26 46 46  |.$ LDA#22:JSR&FF|
00000200  45 45 3a 4c 44 41 23 61  73 3a 4a 53 52 26 46 46  |EE:LDA#as:JSR&FF|
00000210  45 45 0d 00 f0 0c 20 5d  3a 7a 3d 31 3a e1 0d 00  |EE.... ]:z=1:...|
00000220  fa 0b 20 dd f2 74 65 78  74 0d 01 04 13 20 e8 22  |.. ..text.... ."|
00000230  4d 65 73 73 61 67 65 22  3b 6d 65 24 0d 01 0e 13  |Message";me$....|
00000240  20 e3 6c 6f 3d 31 20 b8  20 a9 28 6d 65 24 29 0d  | .lo=1 . .(me$).|
00000250  01 18 16 20 61 73 63 3d  97 28 c1 6d 65 24 2c 6c  |... asc=.(.me$,l|
00000260  6f 2c 31 29 29 0d 01 22  1f 20 5b 4f 50 54 31 3a  |o,1))..". [OPT1:|
00000270  4c 44 41 23 61 73 63 3a  4a 53 52 26 46 46 45 45  |LDA#asc:JSR&FFEE|
00000280  3a 5d 3a ed 0d 01 2c 0a  20 7a 3d 31 3a e1 0d 01  |:]:...,. z=1:...|
00000290  36 13 20 dd f2 73 61 76  65 3a 66 3d 26 34 30 30  |6. ..save:f=&400|
000002a0  30 0d 01 40 19 20 2a 53  41 56 45 20 44 61 74 61  |0..@. *SAVE Data|
000002b0  20 34 30 30 30 20 37 30  30 30 0d 01 4a 06 20 e1  | 4000 7000..J. .|
000002c0  0d 01 54 0b 20 dd f2 63  6f 6c 6f 0d 01 5e 12 20  |..T. ..colo..^. |
000002d0  63 3d 97 28 c1 63 24 2c  35 2c 31 29 29 0d 01 68  |c=.(.c$,5,1))..h|
000002e0  1e 20 e7 63 3c 34 38 20  8c f1 22 42 61 64 20 43  |. .c<48 .."Bad C|
000002f0  4f 4c 4f 55 52 3f 22 3a  62 3d 31 0d 01 72 1e 20  |OLOUR?":b=1..r. |
00000300  e7 63 3e 35 35 20 8c f1  22 42 61 64 20 43 4f 4c  |.c>55 .."Bad COL|
00000310  4f 55 52 3f 22 3a 62 3d  31 0d 01 7c 13 20 63 32  |OUR?":b=1..|. c2|
00000320  3d 97 28 c1 63 24 2c 36  2c 31 29 29 0d 01 86 1e  |=.(.c$,6,1))....|
00000330  20 e7 63 32 3c 34 38 8c  f1 22 42 61 64 20 43 4f  | .c2<48.."Bad CO|
00000340  4c 4f 55 52 3f 22 3a 62  3d 31 0d 01 90 1e 20 e7  |LOUR?":b=1.... .|
00000350  63 32 3e 35 35 8c f1 22  42 61 64 20 43 4f 4c 4f  |c2>55.."Bad COLO|
00000360  55 52 3f 22 3a 62 3d 31  0d 01 9a 12 20 e7 20 62  |UR?":b=1.... . b|
00000370  3d 31 20 8c 20 62 3d 30  3a e1 0d 01 a4 11 20 e7  |=1 . b=0:..... .|
00000380  62 3d 31 20 8c 20 62 3d  30 3a e1 0d 01 ae 1b 20  |b=1 . b=0:..... |
00000390  5b 4f 50 54 20 30 3a 4c  44 41 23 31 37 3a 4a 53  |[OPT 0:LDA#17:JS|
000003a0  52 26 46 46 45 45 0d 01  b8 1f 20 4c 44 41 23 63  |R&FFEE.... LDA#c|
000003b0  2a 31 30 2b 63 32 3a 4a  53 52 26 46 46 45 45 3a  |*10+c2:JSR&FFEE:|
000003c0  5d 3a 7a 3d 31 0d 01 c2  06 20 e1 0d 01 cc 0b 20  |]:z=1.... ..... |
000003d0  dd f2 76 64 75 63 0d 01  d6 0f 20 e8 22 43 6f 64  |..vduc.... ."Cod|
000003e0  65 22 3b 63 6f 0d 01 e0  1d 20 5b 4c 44 41 23 63  |e";co.... [LDA#c|
000003f0  6f 3a 4a 53 52 26 46 46  45 45 3a 5d 3a 7a 3d 31  |o:JSR&FFEE:]:z=1|
00000400  3a e1 0d 01 ea 06 20 e1  0d 01 f4 0b 20 dd f2 66  |:..... ..... ..f|
00000410  6f 6c 6f 0d 01 fe 0e 20  e8 22 46 72 6f 6d 22 3b  |olo.... ."From";|
00000420  66 0d 02 08 16 20 e8 22  54 6f 22 3b 74 3a e8 22  |f.... ."To";t:."|
00000430  53 54 45 50 22 3b 73 0d  02 12 17 20 5b 4f 50 54  |STEP";s.... [OPT|
00000440  20 31 3a 4c 44 59 23 66  3a 2e 6c 6f 6f 70 0d 02  | 1:LDY#f:.loop..|
00000450  1c 08 20 5d 3a e1 0d 02  26 0b 20 dd f2 6e 65 78  |.. ]:...&. ..nex|
00000460  74 0d 02 30 1f 20 5b 49  4e 59 3a 43 50 59 23 74  |t..0. [INY:CPY#t|
00000470  3a 42 4e 45 6c 6f 6f 70  3a 5d 3a 7a 3d 31 3a e1  |:BNEloop:]:z=1:.|
00000480  0d 02 3a 0b 20 dd f2 65  6e 64 2a 0d 02 44 0b 20  |..:. ..end*..D. |
00000490  5b 52 54 53 3a 5d 0d 02  4e 06 20 e0 0d ff        |[RTS:]..N. ...|
0000049e