Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape20a_acorn_eu_1991_march.wav » R.DTPconv

R.DTPconv

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_tape20a_acorn_eu_1991_march.wav
Filename: R.DTPconv
Read OK:
File size: 06F4 bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

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

File contents
   10REM FSE to Stop-Press
   20REM Direct screen convertor
   30REM by Stephen Brown
   40REM (c) The Micro User
   50REM March 1991
   60MODE 7:ctrl=&70:screen=&74:PROCcode:*SAVE "FSE-SP" 7000 +150 200F 2000
   70END
   80DEFPROCcode:FOR pass=4 TO 7 STEP 3:P%=&2000:O%=&7000:[OPT pass
   90.error1 BRK:EQUB &FF:EQUS "Filename ???":BRK:.go SEC:JSR &FFC2:BEQ error1:LDX #0:.loop JSR &FFC5:BCS done:STA namest,X:INX:CPX #7:BEQ done:JMP loop
  100.done LDA #13:STA namest,X:SEI:LDA &220:STA temp:LDA &221:STA temp+1:LDA #start MOD 256:STA &220:LDA #start DIV 256:STA &221:CLI:RTS
  110.start DEC counter1:BEQ now:RTS
  120.now SEI:LDA temp:STA &220:LDA temp+1:STA &221:CLI:LDX #7
  130.swap LDA ctrl,X:STA stack,X:LDA data,X:STA ctrl,X:DEX:BPL swap:LDA #&C0:LDX #name MOD 256:LDY #name DIV 256:JSR &FFCE:STA channel:TAY:LDA #1:LDX #ctrl:JSR &FFDA:LDX #22:STX counter1
  140.loop1 LDX #31:STX counter2
  150.loop2 LDX #0:STX counter3
  160.loop3 LDY channel:JSR &FFD7:JSR double:LDY counter3:STA (screen),Y:LDA result+1:STA (screen+2),Y:INY:STY counter3:CPY #8:BNE loop3:LDA #&10:LDX #0:JSR add:LDA #&10:LDX #2
  170JSR add:DEC counter2:BPL loop2:LDA #&80:LDX #0:JSR add:LDA #&80:LDX #2:JSR add:DEC counter1:BPL loop1:LDY channel:LDA #0:JSR &FFCE:LDX #7
  180.loop6 LDA stack,X:STA ctrl,X:DEX:BPL loop6:BRK:EQUB &FF:EQUS "FSE file has loaded.":BRK
  190.add CLC:ADC screen,X:STA screen,X:LDA screen+1,X:ADC #0:STA screen+1,X:RTS:.double STA byte:LDX #0:.loop4 LDY #3
  200.loop5 LDA byte:ROL A:LDA result,X:ROL A:STA result,X:LDA byte:ROL A:STA byte:LDA result,X:ROL A
  210STA result,X:DEY:BPL loop5:INX:CPX #2:BNE loop4:LDA result:RTS
  220.name EQUS "G."
  230.namest EQUD 0:EQUD 0
  240.stack EQUD 0:EQUD 0
  250.counter1 EQUB 200
  260.counter2 BRK:.counter3 BRK
  270.result EQUW 0:.temp EQUW 0
  280.byte BRK:.channel BRK
  290.data EQUD &00000604:EQUD &3CC03CB8:]:NEXT:ENDPROC

� FSE to Stop-Press
� Direct screen convertor
� by Stephen Brown
(� (c) The Micro User
2� March 1991
<D� 7:ctrl=&70:screen=&74:�code:*SAVE "FSE-SP" 7000 +150 200F 2000
F�
P7��code:� pass=4 � 7 � 3:P%=&2000:O%=&7000:[OPT pass
Z�.error1 BRK:EQUB &FF:EQUS "Filename ???":BRK:.go SEC:JSR &FFC2:BEQ error1:LDX #0:.loop JSR &FFC5:BCS done:STA namest,X:INX:CPX #7:BEQ done:JMP loop
d�.done LDA #13:STA namest,X:SEI:LDA &220:STA temp:LDA &221:STA temp+1:LDA #start � 256:STA &220:LDA #start � 256:STA &221:CLI:RTS
n#.start DEC counter1:BEQ now:RTS
x=.now SEI:LDA temp:STA &220:LDA temp+1:STA &221:CLI:LDX #7
��.swap LDA ctrl,X:STA stack,X:LDA data,X:STA ctrl,X:DEX:BPL swap:LDA #&C0:LDX #name � 256:LDY #name � 256:JSR &FFCE:STA channel:TAY:LDA #1:LDX #ctrl:JSR &FFDA:LDX #22:STX counter1
�.loop1 LDX #31:STX counter2
�.loop2 LDX #0:STX counter3
��.loop3 LDY channel:JSR &FFD7:JSR double:LDY counter3:STA (screen),Y:LDA result+1:STA (screen+2),Y:INY:STY counter3:CPY #8:BNE loop3:LDA #&10:LDX #0:JSR add:LDA #&10:LDX #2
��JSR add:DEC counter2:BPL loop2:LDA #&80:LDX #0:JSR add:LDA #&80:LDX #2:JSR add:DEC counter1:BPL loop1:LDY channel:LDA #0:JSR &FFCE:LDX #7
�\.loop6 LDA stack,X:STA ctrl,X:DEX:BPL loop6:BRK:EQUB &FF:EQUS "FSE file has loaded.":BRK
�u.add CLC:ADC screen,X:STA screen,X:LDA screen+1,X:ADC #0:STA screen+1,X:RTS:.double STA byte:LDX #0:.loop4 LDY #3
�d.loop5 LDA byte:ROL A:LDA result,X:ROL A:STA result,X:LDA byte:ROL A:STA byte:LDA result,X:ROL A
�BSTA result,X:DEY:BPL loop5:INX:CPX #2:BNE loop4:LDA result:RTS
�.name EQUS "G."
�.namest EQUD 0:EQUD 0
�.stack EQUD 0:EQUD 0
�.counter1 EQUB 200
.counter2 BRK:.counter3 BRK
.result EQUW 0:.temp EQUW 0
.byte BRK:.channel BRK
"-.data EQUD &00000604:EQUD &3CC03CB8:]:�:�
�
00000000  0d 00 0a 17 f4 20 46 53  45 20 74 6f 20 53 74 6f  |..... FSE to Sto|
00000010  70 2d 50 72 65 73 73 0d  00 14 1d f4 20 44 69 72  |p-Press..... Dir|
00000020  65 63 74 20 73 63 72 65  65 6e 20 63 6f 6e 76 65  |ect screen conve|
00000030  72 74 6f 72 0d 00 1e 16  f4 20 62 79 20 53 74 65  |rtor..... by Ste|
00000040  70 68 65 6e 20 42 72 6f  77 6e 0d 00 28 18 f4 20  |phen Brown..(.. |
00000050  28 63 29 20 54 68 65 20  4d 69 63 72 6f 20 55 73  |(c) The Micro Us|
00000060  65 72 0d 00 32 10 f4 20  4d 61 72 63 68 20 31 39  |er..2.. March 19|
00000070  39 31 0d 00 3c 44 eb 20  37 3a 63 74 72 6c 3d 26  |91..<D. 7:ctrl=&|
00000080  37 30 3a 73 63 72 65 65  6e 3d 26 37 34 3a f2 63  |70:screen=&74:.c|
00000090  6f 64 65 3a 2a 53 41 56  45 20 22 46 53 45 2d 53  |ode:*SAVE "FSE-S|
000000a0  50 22 20 37 30 30 30 20  2b 31 35 30 20 32 30 30  |P" 7000 +150 200|
000000b0  46 20 32 30 30 30 0d 00  46 05 e0 0d 00 50 37 dd  |F 2000..F....P7.|
000000c0  f2 63 6f 64 65 3a e3 20  70 61 73 73 3d 34 20 b8  |.code:. pass=4 .|
000000d0  20 37 20 88 20 33 3a 50  25 3d 26 32 30 30 30 3a  | 7 . 3:P%=&2000:|
000000e0  4f 25 3d 26 37 30 30 30  3a 5b 4f 50 54 20 70 61  |O%=&7000:[OPT pa|
000000f0  73 73 0d 00 5a 97 2e 65  72 72 6f 72 31 20 42 52  |ss..Z..error1 BR|
00000100  4b 3a 45 51 55 42 20 26  46 46 3a 45 51 55 53 20  |K:EQUB &FF:EQUS |
00000110  22 46 69 6c 65 6e 61 6d  65 20 3f 3f 3f 22 3a 42  |"Filename ???":B|
00000120  52 4b 3a 2e 67 6f 20 53  45 43 3a 4a 53 52 20 26  |RK:.go SEC:JSR &|
00000130  46 46 43 32 3a 42 45 51  20 65 72 72 6f 72 31 3a  |FFC2:BEQ error1:|
00000140  4c 44 58 20 23 30 3a 2e  6c 6f 6f 70 20 4a 53 52  |LDX #0:.loop JSR|
00000150  20 26 46 46 43 35 3a 42  43 53 20 64 6f 6e 65 3a  | &FFC5:BCS done:|
00000160  53 54 41 20 6e 61 6d 65  73 74 2c 58 3a 49 4e 58  |STA namest,X:INX|
00000170  3a 43 50 58 20 23 37 3a  42 45 51 20 64 6f 6e 65  |:CPX #7:BEQ done|
00000180  3a 4a 4d 50 20 6c 6f 6f  70 0d 00 64 84 2e 64 6f  |:JMP loop..d..do|
00000190  6e 65 20 4c 44 41 20 23  31 33 3a 53 54 41 20 6e  |ne LDA #13:STA n|
000001a0  61 6d 65 73 74 2c 58 3a  53 45 49 3a 4c 44 41 20  |amest,X:SEI:LDA |
000001b0  26 32 32 30 3a 53 54 41  20 74 65 6d 70 3a 4c 44  |&220:STA temp:LD|
000001c0  41 20 26 32 32 31 3a 53  54 41 20 74 65 6d 70 2b  |A &221:STA temp+|
000001d0  31 3a 4c 44 41 20 23 73  74 61 72 74 20 83 20 32  |1:LDA #start . 2|
000001e0  35 36 3a 53 54 41 20 26  32 32 30 3a 4c 44 41 20  |56:STA &220:LDA |
000001f0  23 73 74 61 72 74 20 81  20 32 35 36 3a 53 54 41  |#start . 256:STA|
00000200  20 26 32 32 31 3a 43 4c  49 3a 52 54 53 0d 00 6e  | &221:CLI:RTS..n|
00000210  23 2e 73 74 61 72 74 20  44 45 43 20 63 6f 75 6e  |#.start DEC coun|
00000220  74 65 72 31 3a 42 45 51  20 6e 6f 77 3a 52 54 53  |ter1:BEQ now:RTS|
00000230  0d 00 78 3d 2e 6e 6f 77  20 53 45 49 3a 4c 44 41  |..x=.now SEI:LDA|
00000240  20 74 65 6d 70 3a 53 54  41 20 26 32 32 30 3a 4c  | temp:STA &220:L|
00000250  44 41 20 74 65 6d 70 2b  31 3a 53 54 41 20 26 32  |DA temp+1:STA &2|
00000260  32 31 3a 43 4c 49 3a 4c  44 58 20 23 37 0d 00 82  |21:CLI:LDX #7...|
00000270  b6 2e 73 77 61 70 20 4c  44 41 20 63 74 72 6c 2c  |..swap LDA ctrl,|
00000280  58 3a 53 54 41 20 73 74  61 63 6b 2c 58 3a 4c 44  |X:STA stack,X:LD|
00000290  41 20 64 61 74 61 2c 58  3a 53 54 41 20 63 74 72  |A data,X:STA ctr|
000002a0  6c 2c 58 3a 44 45 58 3a  42 50 4c 20 73 77 61 70  |l,X:DEX:BPL swap|
000002b0  3a 4c 44 41 20 23 26 43  30 3a 4c 44 58 20 23 6e  |:LDA #&C0:LDX #n|
000002c0  61 6d 65 20 83 20 32 35  36 3a 4c 44 59 20 23 6e  |ame . 256:LDY #n|
000002d0  61 6d 65 20 81 20 32 35  36 3a 4a 53 52 20 26 46  |ame . 256:JSR &F|
000002e0  46 43 45 3a 53 54 41 20  63 68 61 6e 6e 65 6c 3a  |FCE:STA channel:|
000002f0  54 41 59 3a 4c 44 41 20  23 31 3a 4c 44 58 20 23  |TAY:LDA #1:LDX #|
00000300  63 74 72 6c 3a 4a 53 52  20 26 46 46 44 41 3a 4c  |ctrl:JSR &FFDA:L|
00000310  44 58 20 23 32 32 3a 53  54 58 20 63 6f 75 6e 74  |DX #22:STX count|
00000320  65 72 31 0d 00 8c 1f 2e  6c 6f 6f 70 31 20 4c 44  |er1.....loop1 LD|
00000330  58 20 23 33 31 3a 53 54  58 20 63 6f 75 6e 74 65  |X #31:STX counte|
00000340  72 32 0d 00 96 1e 2e 6c  6f 6f 70 32 20 4c 44 58  |r2.....loop2 LDX|
00000350  20 23 30 3a 53 54 58 20  63 6f 75 6e 74 65 72 33  | #0:STX counter3|
00000360  0d 00 a0 af 2e 6c 6f 6f  70 33 20 4c 44 59 20 63  |.....loop3 LDY c|
00000370  68 61 6e 6e 65 6c 3a 4a  53 52 20 26 46 46 44 37  |hannel:JSR &FFD7|
00000380  3a 4a 53 52 20 64 6f 75  62 6c 65 3a 4c 44 59 20  |:JSR double:LDY |
00000390  63 6f 75 6e 74 65 72 33  3a 53 54 41 20 28 73 63  |counter3:STA (sc|
000003a0  72 65 65 6e 29 2c 59 3a  4c 44 41 20 72 65 73 75  |reen),Y:LDA resu|
000003b0  6c 74 2b 31 3a 53 54 41  20 28 73 63 72 65 65 6e  |lt+1:STA (screen|
000003c0  2b 32 29 2c 59 3a 49 4e  59 3a 53 54 59 20 63 6f  |+2),Y:INY:STY co|
000003d0  75 6e 74 65 72 33 3a 43  50 59 20 23 38 3a 42 4e  |unter3:CPY #8:BN|
000003e0  45 20 6c 6f 6f 70 33 3a  4c 44 41 20 23 26 31 30  |E loop3:LDA #&10|
000003f0  3a 4c 44 58 20 23 30 3a  4a 53 52 20 61 64 64 3a  |:LDX #0:JSR add:|
00000400  4c 44 41 20 23 26 31 30  3a 4c 44 58 20 23 32 0d  |LDA #&10:LDX #2.|
00000410  00 aa 8d 4a 53 52 20 61  64 64 3a 44 45 43 20 63  |...JSR add:DEC c|
00000420  6f 75 6e 74 65 72 32 3a  42 50 4c 20 6c 6f 6f 70  |ounter2:BPL loop|
00000430  32 3a 4c 44 41 20 23 26  38 30 3a 4c 44 58 20 23  |2:LDA #&80:LDX #|
00000440  30 3a 4a 53 52 20 61 64  64 3a 4c 44 41 20 23 26  |0:JSR add:LDA #&|
00000450  38 30 3a 4c 44 58 20 23  32 3a 4a 53 52 20 61 64  |80:LDX #2:JSR ad|
00000460  64 3a 44 45 43 20 63 6f  75 6e 74 65 72 31 3a 42  |d:DEC counter1:B|
00000470  50 4c 20 6c 6f 6f 70 31  3a 4c 44 59 20 63 68 61  |PL loop1:LDY cha|
00000480  6e 6e 65 6c 3a 4c 44 41  20 23 30 3a 4a 53 52 20  |nnel:LDA #0:JSR |
00000490  26 46 46 43 45 3a 4c 44  58 20 23 37 0d 00 b4 5c  |&FFCE:LDX #7...\|
000004a0  2e 6c 6f 6f 70 36 20 4c  44 41 20 73 74 61 63 6b  |.loop6 LDA stack|
000004b0  2c 58 3a 53 54 41 20 63  74 72 6c 2c 58 3a 44 45  |,X:STA ctrl,X:DE|
000004c0  58 3a 42 50 4c 20 6c 6f  6f 70 36 3a 42 52 4b 3a  |X:BPL loop6:BRK:|
000004d0  45 51 55 42 20 26 46 46  3a 45 51 55 53 20 22 46  |EQUB &FF:EQUS "F|
000004e0  53 45 20 66 69 6c 65 20  68 61 73 20 6c 6f 61 64  |SE file has load|
000004f0  65 64 2e 22 3a 42 52 4b  0d 00 be 75 2e 61 64 64  |ed.":BRK...u.add|
00000500  20 43 4c 43 3a 41 44 43  20 73 63 72 65 65 6e 2c  | CLC:ADC screen,|
00000510  58 3a 53 54 41 20 73 63  72 65 65 6e 2c 58 3a 4c  |X:STA screen,X:L|
00000520  44 41 20 73 63 72 65 65  6e 2b 31 2c 58 3a 41 44  |DA screen+1,X:AD|
00000530  43 20 23 30 3a 53 54 41  20 73 63 72 65 65 6e 2b  |C #0:STA screen+|
00000540  31 2c 58 3a 52 54 53 3a  2e 64 6f 75 62 6c 65 20  |1,X:RTS:.double |
00000550  53 54 41 20 62 79 74 65  3a 4c 44 58 20 23 30 3a  |STA byte:LDX #0:|
00000560  2e 6c 6f 6f 70 34 20 4c  44 59 20 23 33 0d 00 c8  |.loop4 LDY #3...|
00000570  64 2e 6c 6f 6f 70 35 20  4c 44 41 20 62 79 74 65  |d.loop5 LDA byte|
00000580  3a 52 4f 4c 20 41 3a 4c  44 41 20 72 65 73 75 6c  |:ROL A:LDA resul|
00000590  74 2c 58 3a 52 4f 4c 20  41 3a 53 54 41 20 72 65  |t,X:ROL A:STA re|
000005a0  73 75 6c 74 2c 58 3a 4c  44 41 20 62 79 74 65 3a  |sult,X:LDA byte:|
000005b0  52 4f 4c 20 41 3a 53 54  41 20 62 79 74 65 3a 4c  |ROL A:STA byte:L|
000005c0  44 41 20 72 65 73 75 6c  74 2c 58 3a 52 4f 4c 20  |DA result,X:ROL |
000005d0  41 0d 00 d2 42 53 54 41  20 72 65 73 75 6c 74 2c  |A...BSTA result,|
000005e0  58 3a 44 45 59 3a 42 50  4c 20 6c 6f 6f 70 35 3a  |X:DEY:BPL loop5:|
000005f0  49 4e 58 3a 43 50 58 20  23 32 3a 42 4e 45 20 6c  |INX:CPX #2:BNE l|
00000600  6f 6f 70 34 3a 4c 44 41  20 72 65 73 75 6c 74 3a  |oop4:LDA result:|
00000610  52 54 53 0d 00 dc 13 2e  6e 61 6d 65 20 45 51 55  |RTS.....name EQU|
00000620  53 20 22 47 2e 22 0d 00  e6 19 2e 6e 61 6d 65 73  |S "G.".....names|
00000630  74 20 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |t EQUD 0:EQUD 0.|
00000640  00 f0 18 2e 73 74 61 63  6b 20 45 51 55 44 20 30  |....stack EQUD 0|
00000650  3a 45 51 55 44 20 30 0d  00 fa 16 2e 63 6f 75 6e  |:EQUD 0.....coun|
00000660  74 65 72 31 20 45 51 55  42 20 32 30 30 0d 01 04  |ter1 EQUB 200...|
00000670  1f 2e 63 6f 75 6e 74 65  72 32 20 42 52 4b 3a 2e  |..counter2 BRK:.|
00000680  63 6f 75 6e 74 65 72 33  20 42 52 4b 0d 01 0e 1f  |counter3 BRK....|
00000690  2e 72 65 73 75 6c 74 20  45 51 55 57 20 30 3a 2e  |.result EQUW 0:.|
000006a0  74 65 6d 70 20 45 51 55  57 20 30 0d 01 18 1a 2e  |temp EQUW 0.....|
000006b0  62 79 74 65 20 42 52 4b  3a 2e 63 68 61 6e 6e 65  |byte BRK:.channe|
000006c0  6c 20 42 52 4b 0d 01 22  2d 2e 64 61 74 61 20 45  |l BRK.."-.data E|
000006d0  51 55 44 20 26 30 30 30  30 30 36 30 34 3a 45 51  |QUD &00000604:EQ|
000006e0  55 44 20 26 33 43 43 30  33 43 42 38 3a 5d 3a ed  |UD &3CC03CB8:]:.|
000006f0  3a e1 0d ff                                       |:...|
000006f4
R.DTPconv.m0
R.DTPconv.m1
R.DTPconv.m2
R.DTPconv.m4
R.DTPconv.m5