Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape21a_acorn_eu_1991_april.wav » R.QCsrce

R.QCsrce

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 tapes » Electron_User » Electron_User_tape21a_acorn_eu_1991_april.wav
Filename: R.QCsrce
Read OK:
File size: 0771 bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

There are 5 duplicate copies of this file in the archive:

File contents
   10REM Quick Commands
   20REM by Richard Hindle
   30REM (c) The Micro User
   40FOR pass=0 TO 2 STEP 2:P%=&900
   50[OPT pass:.install
   60LDA &220:CMP #start MOD 256:BNE okinstall:LDA &221:CMP #start DIV 256:BNE okinstall:BRK:BRK:OPT FNequs("QC is already installed"):BRK
   70.okinstall LDA &220:STA ovec:LDA &221:STA ovec+1:LDA #247:LDX #&4C:LDY #0:JSR &FFF4:LDA #248:LDX #break MOD 256:LDY #0:JSR &FFF4
   80LDA #249:LDX #break DIV 256:LDY #0:JSR &FFF4:LDA #start MOD 256:STA &220:LDA #start DIV 256:STA &221:LDA #14:LDX #2:JSR &FFF4:LDA #7:JSR &FFEE:RTS
  100.break BCS okinstall:RTS:.start PHP:CMP #2:BEQ yeskey:PLP:JMP (ovec)
  110.yeskey PLP:TYA:ORA #&80:STA key:TXA:PHA:LDA #202:LDX #0:LDY #&FF:JSR &FFF4:TXA:AND #&48:CMP #&48:BEQ go:PLA:TAX:JMP fin:.go PLA:LDA key:LDX #&FF
  120.loop INX:CPX #(endtable-table):BEQ fin:LDA table,X:BPL loop
  130.keynum CMP key:BNE loop:CMP #185:BEQ unlink:.comloop INX:LDA table,X:BMI fin:TAY:TXA:PHA:LDA #138:LDX #0:JSR &FFF4:PLA:TAX:JMP comloop
  140.unlink LDA #247:LDX #0:LDY #0:JSR &FFF4:LDA ovec:STA &220:LDA ovec+1:STA &221:LDA #13:LDX #2:JSR &FFF4
  150LDA #138:LDX #0:LDY #13:JSR &FFF4:LDA #7:JSR &FFEE:.fin RTS
  160.table OPT FNequb(185)
  170OPT FNkey("R"):OPT FNequs("RUN"):OPT FNequb(13):OPT FNkey("O"):OPT FNequs("OLD"):OPT FNequb(13)
  180OPT FNkey("L"):OPT FNequs("LIST"):OPT FNequb(13):OPT FNkey("N"):OPT FNequs("RENUMBER"):OPT FNequb(13)
  190OPT FNkey("#"):OPT FNequs("CLOSE#0"):OPT FNequb(13):OPT FNkey(">"):OPT FNequs("*CAT"):OPT FNequb(13)
  200OPT FNkey("C"):OPT FNequs("CHAIN"""):OPT FNkey("M"):OPT FNequs("MODE")
  210OPT FNkey("S"):OPT FNequs("SAVE"""):OPT FNkey("P"):OPT FNequs("PRINT""")
  220OPT FNkey("V"):OPT FNequs("VDU ")
  230OPT FNkey("*"):OPT FNequs("*LOAD "):OPT FNkey("G"):OPT FNequs("GOTO")
  240.endtable OPT FNequb(&FF)
  250.key BRK:.ovec BRK:BRK:]:NEXT
  260*SAVE QC 900 +150
  270CALL install:END
  280DEF FNkey(a$):?P%=&80+ASCa$+64*(ASCa$>64 AND ASCa$<91):P%=P%+1:=pass
  290DEF FNequb(n):?P%=n:P%=P%+1:=pass
  300DEF FNequs(s$):$P%=s$:P%=P%+LEN s$:=pass

� Quick Commands
� by Richard Hindle
� (c) The Micro User
(� pass=0 � 2 � 2:P%=&900
2[OPT pass:.install
<�LDA &220:CMP #start � 256:BNE okinstall:LDA &221:CMP #start � 256:BNE okinstall:BRK:BRK:OPT �equs("QC is already installed"):BRK
F�.okinstall LDA &220:STA ovec:LDA &221:STA ovec+1:LDA #247:LDX #&4C:LDY #0:JSR &FFF4:LDA #248:LDX #break � 256:LDY #0:JSR &FFF4
P�LDA #249:LDX #break � 256:LDY #0:JSR &FFF4:LDA #start � 256:STA &220:LDA #start � 256:STA &221:LDA #14:LDX #2:JSR &FFF4:LDA #7:JSR &FFEE:RTS
dH.break BCS okinstall:RTS:.start PHP:CMP #2:BEQ yeskey:PLP:JMP (ovec)
n�.yeskey PLP:TYA:�A #&80:STA key:TXA:PHA:LDA #202:LDX #0:LDY #&FF:JSR &FFF4:TXA:� #&48:CMP #&48:BEQ go:PLA:TAX:JMP fin:.go PLA:LDA key:LDX #&FF
x@.loop INX:CPX #(endtable-table):BEQ fin:LDA table,X:BPL loop
��.keynum CMP key:BNE loop:CMP #185:BEQ unlink:.comloop INX:LDA table,X:BMI fin:TAY:TXA:PHA:LDA #138:LDX #0:JSR &FFF4:PLA:TAX:JMP comloop
�k.unlink LDA #247:LDX #0:LDY #0:JSR &FFF4:LDA ovec:STA &220:LDA ovec+1:STA &221:LDA #13:LDX #2:JSR &FFF4
�?LDA #138:LDX #0:LDY #13:JSR &FFF4:LDA #7:JSR &FFEE:.fin RTS
�.table OPT �equb(185)
�]OPT �key("R"):OPT �equs("RUN"):OPT �equb(13):OPT �key("O"):OPT �equs("OLD"):OPT �equb(13)
�cOPT �key("L"):OPT �equs("LIST"):OPT �equb(13):OPT �key("N"):OPT �equs("RENUMBER"):OPT �equb(13)
�bOPT �key("#"):OPT �equs("CLOSE#0"):OPT �equb(13):OPT �key(">"):OPT �equs("*CAT"):OPT �equb(13)
�FOPT �key("C"):OPT �equs("CHAIN"""):OPT �key("M"):OPT �equs("MODE")
�HOPT �key("S"):OPT �equs("SAVE"""):OPT �key("P"):OPT �equs("PRINT""")
�#OPT �key("V"):OPT �equs("VDU ")
�EOPT �key("*"):OPT �equs("*LOAD "):OPT �key("G"):OPT �equs("GOTO")
�.endtable OPT �equb(&FF)
�.key BRK:.ovec BRK:BRK:]:�
*SAVE QC 900 +150
� install:�
=� �key(a$):?P%=&80+�a$+64*(�a$>64 � �a$<91):P%=P%+1:=pass
""� �equb(n):?P%=n:P%=P%+1:=pass
,'� �equs(s$):$P%=s$:P%=P%+� s$:=pass
�
00000000  0d 00 0a 14 f4 20 51 75  69 63 6b 20 43 6f 6d 6d  |..... Quick Comm|
00000010  61 6e 64 73 0d 00 14 17  f4 20 62 79 20 52 69 63  |ands..... by Ric|
00000020  68 61 72 64 20 48 69 6e  64 6c 65 0d 00 1e 18 f4  |hard Hindle.....|
00000030  20 28 63 29 20 54 68 65  20 4d 69 63 72 6f 20 55  | (c) The Micro U|
00000040  73 65 72 0d 00 28 1c e3  20 70 61 73 73 3d 30 20  |ser..(.. pass=0 |
00000050  b8 20 32 20 88 20 32 3a  50 25 3d 26 39 30 30 0d  |. 2 . 2:P%=&900.|
00000060  00 32 16 5b 4f 50 54 20  70 61 73 73 3a 2e 69 6e  |.2.[OPT pass:.in|
00000070  73 74 61 6c 6c 0d 00 3c  84 4c 44 41 20 26 32 32  |stall..<.LDA &22|
00000080  30 3a 43 4d 50 20 23 73  74 61 72 74 20 83 20 32  |0:CMP #start . 2|
00000090  35 36 3a 42 4e 45 20 6f  6b 69 6e 73 74 61 6c 6c  |56:BNE okinstall|
000000a0  3a 4c 44 41 20 26 32 32  31 3a 43 4d 50 20 23 73  |:LDA &221:CMP #s|
000000b0  74 61 72 74 20 81 20 32  35 36 3a 42 4e 45 20 6f  |tart . 256:BNE o|
000000c0  6b 69 6e 73 74 61 6c 6c  3a 42 52 4b 3a 42 52 4b  |kinstall:BRK:BRK|
000000d0  3a 4f 50 54 20 a4 65 71  75 73 28 22 51 43 20 69  |:OPT .equs("QC i|
000000e0  73 20 61 6c 72 65 61 64  79 20 69 6e 73 74 61 6c  |s already instal|
000000f0  6c 65 64 22 29 3a 42 52  4b 0d 00 46 82 2e 6f 6b  |led"):BRK..F..ok|
00000100  69 6e 73 74 61 6c 6c 20  4c 44 41 20 26 32 32 30  |install LDA &220|
00000110  3a 53 54 41 20 6f 76 65  63 3a 4c 44 41 20 26 32  |:STA ovec:LDA &2|
00000120  32 31 3a 53 54 41 20 6f  76 65 63 2b 31 3a 4c 44  |21:STA ovec+1:LD|
00000130  41 20 23 32 34 37 3a 4c  44 58 20 23 26 34 43 3a  |A #247:LDX #&4C:|
00000140  4c 44 59 20 23 30 3a 4a  53 52 20 26 46 46 46 34  |LDY #0:JSR &FFF4|
00000150  3a 4c 44 41 20 23 32 34  38 3a 4c 44 58 20 23 62  |:LDA #248:LDX #b|
00000160  72 65 61 6b 20 83 20 32  35 36 3a 4c 44 59 20 23  |reak . 256:LDY #|
00000170  30 3a 4a 53 52 20 26 46  46 46 34 0d 00 50 90 4c  |0:JSR &FFF4..P.L|
00000180  44 41 20 23 32 34 39 3a  4c 44 58 20 23 62 72 65  |DA #249:LDX #bre|
00000190  61 6b 20 81 20 32 35 36  3a 4c 44 59 20 23 30 3a  |ak . 256:LDY #0:|
000001a0  4a 53 52 20 26 46 46 46  34 3a 4c 44 41 20 23 73  |JSR &FFF4:LDA #s|
000001b0  74 61 72 74 20 83 20 32  35 36 3a 53 54 41 20 26  |tart . 256:STA &|
000001c0  32 32 30 3a 4c 44 41 20  23 73 74 61 72 74 20 81  |220:LDA #start .|
000001d0  20 32 35 36 3a 53 54 41  20 26 32 32 31 3a 4c 44  | 256:STA &221:LD|
000001e0  41 20 23 31 34 3a 4c 44  58 20 23 32 3a 4a 53 52  |A #14:LDX #2:JSR|
000001f0  20 26 46 46 46 34 3a 4c  44 41 20 23 37 3a 4a 53  | &FFF4:LDA #7:JS|
00000200  52 20 26 46 46 45 45 3a  52 54 53 0d 00 64 48 2e  |R &FFEE:RTS..dH.|
00000210  62 72 65 61 6b 20 42 43  53 20 6f 6b 69 6e 73 74  |break BCS okinst|
00000220  61 6c 6c 3a 52 54 53 3a  2e 73 74 61 72 74 20 50  |all:RTS:.start P|
00000230  48 50 3a 43 4d 50 20 23  32 3a 42 45 51 20 79 65  |HP:CMP #2:BEQ ye|
00000240  73 6b 65 79 3a 50 4c 50  3a 4a 4d 50 20 28 6f 76  |skey:PLP:JMP (ov|
00000250  65 63 29 0d 00 6e 92 2e  79 65 73 6b 65 79 20 50  |ec)..n..yeskey P|
00000260  4c 50 3a 54 59 41 3a 84  41 20 23 26 38 30 3a 53  |LP:TYA:.A #&80:S|
00000270  54 41 20 6b 65 79 3a 54  58 41 3a 50 48 41 3a 4c  |TA key:TXA:PHA:L|
00000280  44 41 20 23 32 30 32 3a  4c 44 58 20 23 30 3a 4c  |DA #202:LDX #0:L|
00000290  44 59 20 23 26 46 46 3a  4a 53 52 20 26 46 46 46  |DY #&FF:JSR &FFF|
000002a0  34 3a 54 58 41 3a 80 20  23 26 34 38 3a 43 4d 50  |4:TXA:. #&48:CMP|
000002b0  20 23 26 34 38 3a 42 45  51 20 67 6f 3a 50 4c 41  | #&48:BEQ go:PLA|
000002c0  3a 54 41 58 3a 4a 4d 50  20 66 69 6e 3a 2e 67 6f  |:TAX:JMP fin:.go|
000002d0  20 50 4c 41 3a 4c 44 41  20 6b 65 79 3a 4c 44 58  | PLA:LDA key:LDX|
000002e0  20 23 26 46 46 0d 00 78  40 2e 6c 6f 6f 70 20 49  | #&FF..x@.loop I|
000002f0  4e 58 3a 43 50 58 20 23  28 65 6e 64 74 61 62 6c  |NX:CPX #(endtabl|
00000300  65 2d 74 61 62 6c 65 29  3a 42 45 51 20 66 69 6e  |e-table):BEQ fin|
00000310  3a 4c 44 41 20 74 61 62  6c 65 2c 58 3a 42 50 4c  |:LDA table,X:BPL|
00000320  20 6c 6f 6f 70 0d 00 82  8b 2e 6b 65 79 6e 75 6d  | loop.....keynum|
00000330  20 43 4d 50 20 6b 65 79  3a 42 4e 45 20 6c 6f 6f  | CMP key:BNE loo|
00000340  70 3a 43 4d 50 20 23 31  38 35 3a 42 45 51 20 75  |p:CMP #185:BEQ u|
00000350  6e 6c 69 6e 6b 3a 2e 63  6f 6d 6c 6f 6f 70 20 49  |nlink:.comloop I|
00000360  4e 58 3a 4c 44 41 20 74  61 62 6c 65 2c 58 3a 42  |NX:LDA table,X:B|
00000370  4d 49 20 66 69 6e 3a 54  41 59 3a 54 58 41 3a 50  |MI fin:TAY:TXA:P|
00000380  48 41 3a 4c 44 41 20 23  31 33 38 3a 4c 44 58 20  |HA:LDA #138:LDX |
00000390  23 30 3a 4a 53 52 20 26  46 46 46 34 3a 50 4c 41  |#0:JSR &FFF4:PLA|
000003a0  3a 54 41 58 3a 4a 4d 50  20 63 6f 6d 6c 6f 6f 70  |:TAX:JMP comloop|
000003b0  0d 00 8c 6b 2e 75 6e 6c  69 6e 6b 20 4c 44 41 20  |...k.unlink LDA |
000003c0  23 32 34 37 3a 4c 44 58  20 23 30 3a 4c 44 59 20  |#247:LDX #0:LDY |
000003d0  23 30 3a 4a 53 52 20 26  46 46 46 34 3a 4c 44 41  |#0:JSR &FFF4:LDA|
000003e0  20 6f 76 65 63 3a 53 54  41 20 26 32 32 30 3a 4c  | ovec:STA &220:L|
000003f0  44 41 20 6f 76 65 63 2b  31 3a 53 54 41 20 26 32  |DA ovec+1:STA &2|
00000400  32 31 3a 4c 44 41 20 23  31 33 3a 4c 44 58 20 23  |21:LDA #13:LDX #|
00000410  32 3a 4a 53 52 20 26 46  46 46 34 0d 00 96 3f 4c  |2:JSR &FFF4...?L|
00000420  44 41 20 23 31 33 38 3a  4c 44 58 20 23 30 3a 4c  |DA #138:LDX #0:L|
00000430  44 59 20 23 31 33 3a 4a  53 52 20 26 46 46 46 34  |DY #13:JSR &FFF4|
00000440  3a 4c 44 41 20 23 37 3a  4a 53 52 20 26 46 46 45  |:LDA #7:JSR &FFE|
00000450  45 3a 2e 66 69 6e 20 52  54 53 0d 00 a0 19 2e 74  |E:.fin RTS.....t|
00000460  61 62 6c 65 20 4f 50 54  20 a4 65 71 75 62 28 31  |able OPT .equb(1|
00000470  38 35 29 0d 00 aa 5d 4f  50 54 20 a4 6b 65 79 28  |85)...]OPT .key(|
00000480  22 52 22 29 3a 4f 50 54  20 a4 65 71 75 73 28 22  |"R"):OPT .equs("|
00000490  52 55 4e 22 29 3a 4f 50  54 20 a4 65 71 75 62 28  |RUN"):OPT .equb(|
000004a0  31 33 29 3a 4f 50 54 20  a4 6b 65 79 28 22 4f 22  |13):OPT .key("O"|
000004b0  29 3a 4f 50 54 20 a4 65  71 75 73 28 22 4f 4c 44  |):OPT .equs("OLD|
000004c0  22 29 3a 4f 50 54 20 a4  65 71 75 62 28 31 33 29  |"):OPT .equb(13)|
000004d0  0d 00 b4 63 4f 50 54 20  a4 6b 65 79 28 22 4c 22  |...cOPT .key("L"|
000004e0  29 3a 4f 50 54 20 a4 65  71 75 73 28 22 4c 49 53  |):OPT .equs("LIS|
000004f0  54 22 29 3a 4f 50 54 20  a4 65 71 75 62 28 31 33  |T"):OPT .equb(13|
00000500  29 3a 4f 50 54 20 a4 6b  65 79 28 22 4e 22 29 3a  |):OPT .key("N"):|
00000510  4f 50 54 20 a4 65 71 75  73 28 22 52 45 4e 55 4d  |OPT .equs("RENUM|
00000520  42 45 52 22 29 3a 4f 50  54 20 a4 65 71 75 62 28  |BER"):OPT .equb(|
00000530  31 33 29 0d 00 be 62 4f  50 54 20 a4 6b 65 79 28  |13)...bOPT .key(|
00000540  22 23 22 29 3a 4f 50 54  20 a4 65 71 75 73 28 22  |"#"):OPT .equs("|
00000550  43 4c 4f 53 45 23 30 22  29 3a 4f 50 54 20 a4 65  |CLOSE#0"):OPT .e|
00000560  71 75 62 28 31 33 29 3a  4f 50 54 20 a4 6b 65 79  |qub(13):OPT .key|
00000570  28 22 3e 22 29 3a 4f 50  54 20 a4 65 71 75 73 28  |(">"):OPT .equs(|
00000580  22 2a 43 41 54 22 29 3a  4f 50 54 20 a4 65 71 75  |"*CAT"):OPT .equ|
00000590  62 28 31 33 29 0d 00 c8  46 4f 50 54 20 a4 6b 65  |b(13)...FOPT .ke|
000005a0  79 28 22 43 22 29 3a 4f  50 54 20 a4 65 71 75 73  |y("C"):OPT .equs|
000005b0  28 22 43 48 41 49 4e 22  22 22 29 3a 4f 50 54 20  |("CHAIN"""):OPT |
000005c0  a4 6b 65 79 28 22 4d 22  29 3a 4f 50 54 20 a4 65  |.key("M"):OPT .e|
000005d0  71 75 73 28 22 4d 4f 44  45 22 29 0d 00 d2 48 4f  |qus("MODE")...HO|
000005e0  50 54 20 a4 6b 65 79 28  22 53 22 29 3a 4f 50 54  |PT .key("S"):OPT|
000005f0  20 a4 65 71 75 73 28 22  53 41 56 45 22 22 22 29  | .equs("SAVE""")|
00000600  3a 4f 50 54 20 a4 6b 65  79 28 22 50 22 29 3a 4f  |:OPT .key("P"):O|
00000610  50 54 20 a4 65 71 75 73  28 22 50 52 49 4e 54 22  |PT .equs("PRINT"|
00000620  22 22 29 0d 00 dc 23 4f  50 54 20 a4 6b 65 79 28  |"")...#OPT .key(|
00000630  22 56 22 29 3a 4f 50 54  20 a4 65 71 75 73 28 22  |"V"):OPT .equs("|
00000640  56 44 55 20 22 29 0d 00  e6 45 4f 50 54 20 a4 6b  |VDU ")...EOPT .k|
00000650  65 79 28 22 2a 22 29 3a  4f 50 54 20 a4 65 71 75  |ey("*"):OPT .equ|
00000660  73 28 22 2a 4c 4f 41 44  20 22 29 3a 4f 50 54 20  |s("*LOAD "):OPT |
00000670  a4 6b 65 79 28 22 47 22  29 3a 4f 50 54 20 a4 65  |.key("G"):OPT .e|
00000680  71 75 73 28 22 47 4f 54  4f 22 29 0d 00 f0 1c 2e  |qus("GOTO").....|
00000690  65 6e 64 74 61 62 6c 65  20 4f 50 54 20 a4 65 71  |endtable OPT .eq|
000006a0  75 62 28 26 46 46 29 0d  00 fa 1e 2e 6b 65 79 20  |ub(&FF).....key |
000006b0  42 52 4b 3a 2e 6f 76 65  63 20 42 52 4b 3a 42 52  |BRK:.ovec BRK:BR|
000006c0  4b 3a 5d 3a ed 0d 01 04  15 2a 53 41 56 45 20 51  |K:]:.....*SAVE Q|
000006d0  43 20 39 30 30 20 2b 31  35 30 0d 01 0e 0f d6 20  |C 900 +150..... |
000006e0  69 6e 73 74 61 6c 6c 3a  e0 0d 01 18 3d dd 20 a4  |install:....=. .|
000006f0  6b 65 79 28 61 24 29 3a  3f 50 25 3d 26 38 30 2b  |key(a$):?P%=&80+|
00000700  97 61 24 2b 36 34 2a 28  97 61 24 3e 36 34 20 80  |.a$+64*(.a$>64 .|
00000710  20 97 61 24 3c 39 31 29  3a 50 25 3d 50 25 2b 31  | .a$<91):P%=P%+1|
00000720  3a 3d 70 61 73 73 0d 01  22 22 dd 20 a4 65 71 75  |:=pass.."". .equ|
00000730  62 28 6e 29 3a 3f 50 25  3d 6e 3a 50 25 3d 50 25  |b(n):?P%=n:P%=P%|
00000740  2b 31 3a 3d 70 61 73 73  0d 01 2c 27 dd 20 a4 65  |+1:=pass..,'. .e|
00000750  71 75 73 28 73 24 29 3a  24 50 25 3d 73 24 3a 50  |qus(s$):$P%=s$:P|
00000760  25 3d 50 25 2b a9 20 73  24 3a 3d 70 61 73 73 0d  |%=P%+. s$:=pass.|
00000770  ff                                                |.|
00000771
R.QCsrce.m0
R.QCsrce.m1
R.QCsrce.m2
R.QCsrce.m4
R.QCsrce.m5