Home » CEEFAX disks » telesoftware14.adl » 24-02-89/Scroll

24-02-89/Scroll

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 » telesoftware14.adl
Filename: 24-02-89/Scroll
Read OK:
File size: 0523 bytes
Load address: FFFF0E00
Exec address: FFFF802B
File contents
   10REM Super-scroll
   20REM by William Frisby
   30MODE 7:DIM addr% 80
   40VDU30:FORY%=0TO24:VDU150,8,10:NEXT
   50VDU 30,23;8202;0;0;0;
   60FOR X%=0 TO 39
   70REMY%=10+SINRAD(X%*10)*8
   80REMY%=2+ATNRAD(X%*10)*10
   90REMY%=2+X%/3
  100Y%=2+(X%-20)^2/24
  110A%=&7C00+Y%*40+X%
  120addr%!(X%*2)=A%:NEXT
  130PROCassemble
  140T$="...BBC Telesoftware demonstration of 'Scroll' from Micro-User"
  150L%=LENT$:P%=1
  160REPEAT A%=ASCMID$(T$,P%)
  170CALL char%:P%=P%MODL%+1:UNTIL0
  180DEF PROCassemble
  190FOR pass%=0 TO 2 STEP 2
  200P%=&A00:[OPT pass%
  210.scroll% LDX #1
  220.loop1% TXA:ASL A:TAY
  230 LDA addr%,Y:STA &72
  240 LDA addr%+1,Y:STA &73
  250 LDA addr%+2,Y:STA &70
  260 LDA addr%+3,Y:STA &71
  270 TXA:PHA:LDX #8:LDY #0
  280.loop2% LDA (&70),Y:STA (&72),Y
  290 CLC:LDA &70:ADC #40:STA &70
  300 LDA &71:ADC #0:STA &71
  310 CLC:LDA &72:ADC #40:STA &72
  320 LDA &73:ADC #0:STA &73
  330 DEX:BNE loop2%:PLA:TAX:INX
  340 CPX #39:BNE loop1%:RTS
  350.char% STA mem%:LDA #10
  360 LDX #mem%MOD256
  370 LDY #mem%DIV256:JSR &FFF1
  380 LDA #128:STA mask%
  390.loop3%:LDX #1:LDY #0
  400 LDA #A%MOD256:STA &72
  410 LDA #A%DIV256:STA &73
  420.loop4% LDA mem%,X:AND mask%
  430 BEQ space%:LDA #255
  440.cont% STA (&72),Y:CLC
  450 LDA &72:ADC #40:STA &72
  460 LDA &73:ADC #0:STA &73
  470 INX:CPX #9:BNE loop4%
  480 JSR scroll%
  490 LDA #19:JSR &FFF4
  500 CLC:LDA mask%:ROR A:STA mask%
  510 BNE loop3%:RTS
  520.space% LDA #0:JMP cont%
  530.mask% BRK
  540.mem%:]:NEXT:ENDPROC

� Super-scroll
� by William Frisby
� 7:� addr% 80
(�30:�Y%=0�24:�150,8,10:�
2� 30,23;8202;0;0;0;
<� X%=0 � 39
F�Y%=10+SINRAD(X%*10)*8
P�Y%=2+ATNRAD(X%*10)*10
Z�Y%=2+X%/3
dY%=2+(X%-20)^2/24
nA%=&7C00+Y%*40+X%
xaddr%!(X%*2)=A%:�
�
�assemble
�FT$="...BBC Telesoftware demonstration of 'Scroll' from Micro-User"
�L%=�T$:P%=1
�� A%=��T$,P%)
�� char%:P%=P%�L%+1:�0
�� �assemble
�� pass%=0 � 2 � 2
�P%=&A00:[OPT pass%
�.scroll% LDX #1
�.loop1% TXA:ASL A:TAY
� LDA addr%,Y:STA &72
� LDA addr%+1,Y:STA &73
� LDA addr%+2,Y:STA &70
 LDA addr%+3,Y:STA &71
 TXA:PHA:LDX #8:LDY #0
#.loop2% LDA (&70),Y:STA (&72),Y
"  CLC:LDA &70:ADC #40:STA &70
, LDA &71:ADC #0:STA &71
6  CLC:LDA &72:ADC #40:STA &72
@ LDA &73:ADC #0:STA &73
J DEX:BNE loop2%:PLA:TAX:INX
T CPX #39:BNE loop1%:RTS
^.char% STA mem%:LDA #10
h LDX #mem%�256
r LDY #mem%�256:JSR &FFF1
| LDA #128:STA mask%
�.loop3%:LDX #1:LDY #0
� LDA #A%�256:STA &72
� LDA #A%�256:STA &73
�.loop4% LDA mem%,X:� mask%
� BEQ space%:LDA #255
�.cont% STA (&72),Y:CLC
� LDA &72:ADC #40:STA &72
� LDA &73:ADC #0:STA &73
� INX:CPX #9:BNE loop4%
� JSR scroll%
� LDA #19:JSR &FFF4
�" CLC:LDA mask%:ROR A:STA mask%
� BNE loop3%:RTS
.space% LDA #0:JMP cont%
.mask% BRK
.mem%:]:�:�
�
00000000  0d 00 0a 12 f4 20 53 75  70 65 72 2d 73 63 72 6f  |..... Super-scro|
00000010  6c 6c 0d 00 14 17 f4 20  62 79 20 57 69 6c 6c 69  |ll..... by Willi|
00000020  61 6d 20 46 72 69 73 62  79 0d 00 1e 12 eb 20 37  |am Frisby..... 7|
00000030  3a de 20 61 64 64 72 25  20 38 30 0d 00 28 1c ef  |:. addr% 80..(..|
00000040  33 30 3a e3 59 25 3d 30  b8 32 34 3a ef 31 35 30  |30:.Y%=0.24:.150|
00000050  2c 38 2c 31 30 3a ed 0d  00 32 17 ef 20 33 30 2c  |,8,10:...2.. 30,|
00000060  32 33 3b 38 32 30 32 3b  30 3b 30 3b 30 3b 0d 00  |23;8202;0;0;0;..|
00000070  3c 0f e3 20 58 25 3d 30  20 b8 20 33 39 0d 00 46  |<.. X%=0 . 39..F|
00000080  1a f4 59 25 3d 31 30 2b  53 49 4e 52 41 44 28 58  |..Y%=10+SINRAD(X|
00000090  25 2a 31 30 29 2a 38 0d  00 50 1a f4 59 25 3d 32  |%*10)*8..P..Y%=2|
000000a0  2b 41 54 4e 52 41 44 28  58 25 2a 31 30 29 2a 31  |+ATNRAD(X%*10)*1|
000000b0  30 0d 00 5a 0e f4 59 25  3d 32 2b 58 25 2f 33 0d  |0..Z..Y%=2+X%/3.|
000000c0  00 64 15 59 25 3d 32 2b  28 58 25 2d 32 30 29 5e  |.d.Y%=2+(X%-20)^|
000000d0  32 2f 32 34 0d 00 6e 15  41 25 3d 26 37 43 30 30  |2/24..n.A%=&7C00|
000000e0  2b 59 25 2a 34 30 2b 58  25 0d 00 78 15 61 64 64  |+Y%*40+X%..x.add|
000000f0  72 25 21 28 58 25 2a 32  29 3d 41 25 3a ed 0d 00  |r%!(X%*2)=A%:...|
00000100  82 0d f2 61 73 73 65 6d  62 6c 65 0d 00 8c 46 54  |...assemble...FT|
00000110  24 3d 22 2e 2e 2e 42 42  43 20 54 65 6c 65 73 6f  |$="...BBC Teleso|
00000120  66 74 77 61 72 65 20 64  65 6d 6f 6e 73 74 72 61  |ftware demonstra|
00000130  74 69 6f 6e 20 6f 66 20  27 53 63 72 6f 6c 6c 27  |tion of 'Scroll'|
00000140  20 66 72 6f 6d 20 4d 69  63 72 6f 2d 55 73 65 72  | from Micro-User|
00000150  22 0d 00 96 0f 4c 25 3d  a9 54 24 3a 50 25 3d 31  |"....L%=.T$:P%=1|
00000160  0d 00 a0 11 f5 20 41 25  3d 97 c1 54 24 2c 50 25  |..... A%=..T$,P%|
00000170  29 0d 00 aa 19 d6 20 63  68 61 72 25 3a 50 25 3d  |)..... char%:P%=|
00000180  50 25 83 4c 25 2b 31 3a  fd 30 0d 00 b4 0f dd 20  |P%.L%+1:.0..... |
00000190  f2 61 73 73 65 6d 62 6c  65 0d 00 be 15 e3 20 70  |.assemble..... p|
000001a0  61 73 73 25 3d 30 20 b8  20 32 20 88 20 32 0d 00  |ass%=0 . 2 . 2..|
000001b0  c8 16 50 25 3d 26 41 30  30 3a 5b 4f 50 54 20 70  |..P%=&A00:[OPT p|
000001c0  61 73 73 25 0d 00 d2 13  2e 73 63 72 6f 6c 6c 25  |ass%.....scroll%|
000001d0  20 4c 44 58 20 23 31 0d  00 dc 19 2e 6c 6f 6f 70  | LDX #1.....loop|
000001e0  31 25 20 54 58 41 3a 41  53 4c 20 41 3a 54 41 59  |1% TXA:ASL A:TAY|
000001f0  0d 00 e6 18 20 4c 44 41  20 61 64 64 72 25 2c 59  |.... LDA addr%,Y|
00000200  3a 53 54 41 20 26 37 32  0d 00 f0 1a 20 4c 44 41  |:STA &72.... LDA|
00000210  20 61 64 64 72 25 2b 31  2c 59 3a 53 54 41 20 26  | addr%+1,Y:STA &|
00000220  37 33 0d 00 fa 1a 20 4c  44 41 20 61 64 64 72 25  |73.... LDA addr%|
00000230  2b 32 2c 59 3a 53 54 41  20 26 37 30 0d 01 04 1a  |+2,Y:STA &70....|
00000240  20 4c 44 41 20 61 64 64  72 25 2b 33 2c 59 3a 53  | LDA addr%+3,Y:S|
00000250  54 41 20 26 37 31 0d 01  0e 1a 20 54 58 41 3a 50  |TA &71.... TXA:P|
00000260  48 41 3a 4c 44 58 20 23  38 3a 4c 44 59 20 23 30  |HA:LDX #8:LDY #0|
00000270  0d 01 18 23 2e 6c 6f 6f  70 32 25 20 4c 44 41 20  |...#.loop2% LDA |
00000280  28 26 37 30 29 2c 59 3a  53 54 41 20 28 26 37 32  |(&70),Y:STA (&72|
00000290  29 2c 59 0d 01 22 20 20  43 4c 43 3a 4c 44 41 20  |),Y.."  CLC:LDA |
000002a0  26 37 30 3a 41 44 43 20  23 34 30 3a 53 54 41 20  |&70:ADC #40:STA |
000002b0  26 37 30 0d 01 2c 1b 20  4c 44 41 20 26 37 31 3a  |&70..,. LDA &71:|
000002c0  41 44 43 20 23 30 3a 53  54 41 20 26 37 31 0d 01  |ADC #0:STA &71..|
000002d0  36 20 20 43 4c 43 3a 4c  44 41 20 26 37 32 3a 41  |6  CLC:LDA &72:A|
000002e0  44 43 20 23 34 30 3a 53  54 41 20 26 37 32 0d 01  |DC #40:STA &72..|
000002f0  40 1b 20 4c 44 41 20 26  37 33 3a 41 44 43 20 23  |@. LDA &73:ADC #|
00000300  30 3a 53 54 41 20 26 37  33 0d 01 4a 1f 20 44 45  |0:STA &73..J. DE|
00000310  58 3a 42 4e 45 20 6c 6f  6f 70 32 25 3a 50 4c 41  |X:BNE loop2%:PLA|
00000320  3a 54 41 58 3a 49 4e 58  0d 01 54 1b 20 43 50 58  |:TAX:INX..T. CPX|
00000330  20 23 33 39 3a 42 4e 45  20 6c 6f 6f 70 31 25 3a  | #39:BNE loop1%:|
00000340  52 54 53 0d 01 5e 1b 2e  63 68 61 72 25 20 53 54  |RTS..^..char% ST|
00000350  41 20 6d 65 6d 25 3a 4c  44 41 20 23 31 30 0d 01  |A mem%:LDA #10..|
00000360  68 12 20 4c 44 58 20 23  6d 65 6d 25 83 32 35 36  |h. LDX #mem%.256|
00000370  0d 01 72 1c 20 4c 44 59  20 23 6d 65 6d 25 81 32  |..r. LDY #mem%.2|
00000380  35 36 3a 4a 53 52 20 26  46 46 46 31 0d 01 7c 17  |56:JSR &FFF1..|.|
00000390  20 4c 44 41 20 23 31 32  38 3a 53 54 41 20 6d 61  | LDA #128:STA ma|
000003a0  73 6b 25 0d 01 86 19 2e  6c 6f 6f 70 33 25 3a 4c  |sk%.....loop3%:L|
000003b0  44 58 20 23 31 3a 4c 44  59 20 23 30 0d 01 90 18  |DX #1:LDY #0....|
000003c0  20 4c 44 41 20 23 41 25  83 32 35 36 3a 53 54 41  | LDA #A%.256:STA|
000003d0  20 26 37 32 0d 01 9a 18  20 4c 44 41 20 23 41 25  | &72.... LDA #A%|
000003e0  81 32 35 36 3a 53 54 41  20 26 37 33 0d 01 a4 1e  |.256:STA &73....|
000003f0  2e 6c 6f 6f 70 34 25 20  4c 44 41 20 6d 65 6d 25  |.loop4% LDA mem%|
00000400  2c 58 3a 80 20 6d 61 73  6b 25 0d 01 ae 18 20 42  |,X:. mask%.... B|
00000410  45 51 20 73 70 61 63 65  25 3a 4c 44 41 20 23 32  |EQ space%:LDA #2|
00000420  35 35 0d 01 b8 1a 2e 63  6f 6e 74 25 20 53 54 41  |55.....cont% STA|
00000430  20 28 26 37 32 29 2c 59  3a 43 4c 43 0d 01 c2 1c  | (&72),Y:CLC....|
00000440  20 4c 44 41 20 26 37 32  3a 41 44 43 20 23 34 30  | LDA &72:ADC #40|
00000450  3a 53 54 41 20 26 37 32  0d 01 cc 1b 20 4c 44 41  |:STA &72.... LDA|
00000460  20 26 37 33 3a 41 44 43  20 23 30 3a 53 54 41 20  | &73:ADC #0:STA |
00000470  26 37 33 0d 01 d6 1a 20  49 4e 58 3a 43 50 58 20  |&73.... INX:CPX |
00000480  23 39 3a 42 4e 45 20 6c  6f 6f 70 34 25 0d 01 e0  |#9:BNE loop4%...|
00000490  10 20 4a 53 52 20 73 63  72 6f 6c 6c 25 0d 01 ea  |. JSR scroll%...|
000004a0  16 20 4c 44 41 20 23 31  39 3a 4a 53 52 20 26 46  |. LDA #19:JSR &F|
000004b0  46 46 34 0d 01 f4 22 20  43 4c 43 3a 4c 44 41 20  |FF4..." CLC:LDA |
000004c0  6d 61 73 6b 25 3a 52 4f  52 20 41 3a 53 54 41 20  |mask%:ROR A:STA |
000004d0  6d 61 73 6b 25 0d 01 fe  13 20 42 4e 45 20 6c 6f  |mask%.... BNE lo|
000004e0  6f 70 33 25 3a 52 54 53  0d 02 08 1c 2e 73 70 61  |op3%:RTS.....spa|
000004f0  63 65 25 20 4c 44 41 20  23 30 3a 4a 4d 50 20 63  |ce% LDA #0:JMP c|
00000500  6f 6e 74 25 0d 02 12 0e  2e 6d 61 73 6b 25 20 42  |ont%.....mask% B|
00000510  52 4b 0d 02 1c 0f 2e 6d  65 6d 25 3a 5d 3a ed 3a  |RK.....mem%:]:.:|
00000520  e1 0d ff                                          |...|
00000523
24-02-89/Scroll.m0
24-02-89/Scroll.m1
24-02-89/Scroll.m2
24-02-89/Scroll.m4
24-02-89/Scroll.m5