Home » Archimedes archive » Archimedes World » AW-1992-10.adf » AWOct92 » !AWOct92/Goodies/DemoMaker/!Example/!RunImage

!AWOct92/Goodies/DemoMaker/!Example/!RunImage

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 » Archimedes archive » Archimedes World » AW-1992-10.adf » AWOct92
Filename: !AWOct92/Goodies/DemoMaker/!Example/!RunImage
Read OK:
File size: 09DA bytes
Load address: 0000
Exec address: 0000
File contents
   19 Lines=9:PROCstart:END
   30DEFPROCshutdown:OSCLI"Rmkill Memalloc":OSCLI"Rmkill Trackermodule":MODE12:OFF:END:ENDPROC
   40DEFPROCstart:NoTEST%=TRUE:DIM CODE% 10000:MODE13:OFF:VDU5:MOVE 2000,2000:GCOL0,0:OSCLI"Sload <Obey$dir>.Sprites":IF NoTEST% THEN startup%=TRUE:PROCcoding
   50CLS::IF NoTEST% PROCfullscreensetup
   60REPEAT:ENDPROC
   70DEFPROCfullscreensetup:MODE13:VDU4:OFF:PROCalphabet:ENDPROC
   80DEFPROCcoding:DIM block% 24,CODE2% 40000:block%!0=150:block%!4=149:block%!8=-1:SYS "OS_ReadVduVariables",block%,block%+12:size%=block%!12:start%=block%!16:sp%=start%:start%+=(320*228):Z%=2:FOR pa%=0 TO Z% STEP Z%:P%=CODE2%
   90[ OPT pa%
  100STMFD R13!,{14}
  110LDR R0,screen3
  120ADR R1,buffer
  130MOV R2,#159
  140.grab
  150LDMIA R0!,{3,4,5,6,7,8,9,10,11,12}
  160STMIA R1!,{3,4,5,6,7,8,9,10,11,12}
  170SUBS R2,R2,#1
  180BPL grab
  190MOV R0,#&13
  200SWI "OS_Byte"
  210LDR R0,screen3
  220ADR R1,buffer
  230ADD R1,R1,#4     
  240MOV R2,#159
  250.put
  260LDMIA R1!,{3,4,5,6,7,8,9,10,11,12}
  270STMIA R0!,{3,4,5,6,7,8,9,10,11,12}
  280SUBS R2,R2,#1
  290BPL put
  300LDR R0,screen3
  310MOV R1,#0
  320SUB R0,R0,#4
  330MOV R2,#20
  340.blank
  350STR R1,[R0,#320]! 
  360SUBS R2,R2,#1
  370BPL blank
  380LDMFD R13!,{PC}
  390.screen EQUD start%
  400.screen3 EQUD start%
  410.zeros                
  420]
  430P%+=40
  440[
  450.buffer
  460]
  470P%+=512*180
  480[
  490OPT pa%
  500.get_letter
  510MOV R2,#0     
  520.loopx
  530LDR R1,screen4
  540MOV R3,#0     
  550ADD R1,R1,R2 
  560.loopy
  570LDMIA R1, {4}
  580STMIA R0!,{4}
  590ADD R3,R3,#1              
  600ADD R1,R1,#320            
  610CMP R3,#20
  620BLT loopy
  630ADD R2,R2,#4                
  640CMP R2,#21*4                
  650BLT loopx                   
  660MOV R15,R14
  670.print_line
  680LDR R1,screen2
  690MOV R3,#0
  700ADD R1,R1,#316
  710.loopy2
  720LDMIA R0!,{4}
  730STMIA R1, {4}
  740ADD R3,R3,#1              
  750ADD R1,R1,#320            
  760CMP R3,#20
  770BLT loopy2
  780MOV R15,R14
  790.screen2
  800EQUD start%
  810.screen4
  820EQUD sp%
  830ALIGN
  840.letters
  850]
  860P%+=(20)*20:NEXT:Z%=0:IF startup% THEN
  870offset=0:FOR J%=1TO61:OSCLI("SCHOOSE "+CHR$(64+J%)):PLOT&ED,0,1044-(20*5):A%=letters+offset:CALL get_letter
  880offset+=20*20:Z%=letters:V%=print_line:NEXT:ENDIF:ENDPROC
  890DEFPROCalphabet:OFF:let=0:xx%=0:Quit%=FALSE:start%=start%+(320*10):PROCloadtext
  900FOR Loopy=0 TO 1000:IF Scrollingtext$(Loopy)="End of scrolling text" THEN GOTO 900
  910FOR jj=1 TO LEN(Scrollingtext$(Loopy)):l%=ASC(MID$(Scrollingtext$(Loopy),jj,1))-65:xx%=(20*20)*l%:FOR rr%=0 TO 4:scr=start%+316:A%=Z%+xx%:CALLV%:CALLCODE2%
  920IF INKEY(-74)THENQuit%=TRUE
  930xx%+=20*4:NEXT rr%:IF Quit% THEN CLS:ENDPROC
  940NEXT:NEXT:GOTO 900
  980DEFPROCloadtext:DIM Scrollingtext$(1000):text$="<Obey$dir>.TEXT":CLOSE#0:t%=OPENIN(text$):tn%=0:REPEAT:Text$=GET$#t%:IF Text$<>"" THEN Scrollingtext$(tn%)=Text$:tn%=tn%+1
 1050UNTIL EOF#t%:CLOSE#t%:ENDPROC
 1051NEXT
 Lines=9:�start:�
C��shutdown:�"Rmkill Memalloc":�"Rmkill Trackermodule":�12:�:�:�
(x��start:NoTEST%=�:� CODE% 10000:�13:�:�5:� 2000,2000:�0,0:�"Sload <Obey$dir>.Sprites":� NoTEST% � startup%=�:�coding
2!�::� NoTEST% �fullscreensetup
<�:�
F*��fullscreensetup:�13:�4:�:�alphabet:�
P���coding:� block% 24,CODE2% 40000:block%!0=150:block%!4=149:block%!8=-1:ș "OS_ReadVduVariables",block%,block%+12:size%=block%!12:start%=block%!16:sp%=start%:start%+=(320*228):Z%=2:� pa%=0 � Z% � Z%:P%=CODE2%
Z
[ OPT pa%
dSTMFD R13!,{14}
nLDR R0,screen3
xADR R1,buffer
�MOV R2,#159
�	.grab
�&LDMIA R0!,{3,4,5,6,7,8,9,10,11,12}
�&STMIA R1!,{3,4,5,6,7,8,9,10,11,12}
�SUBS R2,R2,#1
�BPL grab
�MOV R0,#&13
�SWI "OS_Byte"
�LDR R0,screen3
�ADR R1,buffer
�ADD R1,R1,#4     
�MOV R2,#159
�.put
&LDMIA R1!,{3,4,5,6,7,8,9,10,11,12}
&STMIA R0!,{3,4,5,6,7,8,9,10,11,12}
SUBS R2,R2,#1
"BPL put
,LDR R0,screen3
6
MOV R1,#0
@SUB R0,R0,#4
JMOV R2,#20
T
.blank
^STR R1,[R0,#320]! 
hSUBS R2,R2,#1
r
BPL blank
|LDMFD R13!,{PC}
�.screen EQUD start%
�.screen3 EQUD start%
�.zeros                
�]
�
P%+=40
�[
�.buffer
�]
�P%+=512*180
�[
�OPT pa%
�.get_letter
�MOV R2,#0     

.loopx
LDR R1,screen4
MOV R3,#0     
&ADD R1,R1,R2 
0
.loopy
:LDMIA R1, {4}
DSTMIA R0!,{4}
NADD R3,R3,#1              
XADD R1,R1,#320            
bCMP R3,#20
l
BLT loopy
v ADD R2,R2,#4                
� CMP R2,#21*4                
� BLT loopx                   
�MOV R15,R14
�.print_line
�LDR R1,screen2
�
MOV R3,#0
�ADD R1,R1,#316
�.loopy2
�LDMIA R0!,{4}
�STMIA R1, {4}
�ADD R3,R3,#1              
�ADD R1,R1,#320            
�CMP R3,#20
BLT loopy2
MOV R15,R14
.screen2
 EQUD start%
*.screen4
4EQUD sp%
>	ALIGN
H.letters
R]
\#P%+=(20)*20:�:Z%=0:� startup% �
f_offset=0:� J%=1�61:�("SCHOOSE "+�(64+J%)):�&ED,0,1044-(20*5):A%=letters+offset:� get_letter
p0offset+=20*20:Z%=letters:V%=print_line:�:�:�
zE��alphabet:�:let=0:xx%=0:Quit%=�:start%=start%+(320*10):�loadtext
�M� Loopy=0 � 1000:� Scrollingtext$(Loopy)="End of scrolling text" � � �tDC
��� jj=1 � �(Scrollingtext$(Loopy)):l%=�(�Scrollingtext$(Loopy),jj,1))-65:xx%=(20*20)*l%:� rr%=0 � 4:scr=start%+316:A%=Z%+xx%:�V%:�CODE2%
�� �(-74)�Quit%=�
�!xx%+=20*4:� rr%:� Quit% � �:�
��:�:� �tDC
Ԓ��loadtext:� Scrollingtext$(1000):text$="<Obey$dir>.TEXT":�#0:t%=�(text$):tn%=0:�:Text$=�#t%:� Text$<>"" � Scrollingtext$(tn%)=Text$:tn%=tn%+1
� �#t%:�#t%:�
�
�
00000000  0d 00 13 15 20 4c 69 6e  65 73 3d 39 3a f2 73 74  |.... Lines=9:.st|
00000010  61 72 74 3a e0 0d 00 1e  43 dd f2 73 68 75 74 64  |art:....C..shutd|
00000020  6f 77 6e 3a ff 22 52 6d  6b 69 6c 6c 20 4d 65 6d  |own:."Rmkill Mem|
00000030  61 6c 6c 6f 63 22 3a ff  22 52 6d 6b 69 6c 6c 20  |alloc":."Rmkill |
00000040  54 72 61 63 6b 65 72 6d  6f 64 75 6c 65 22 3a eb  |Trackermodule":.|
00000050  31 32 3a 87 3a e0 3a e1  0d 00 28 78 dd f2 73 74  |12:.:.:...(x..st|
00000060  61 72 74 3a 4e 6f 54 45  53 54 25 3d b9 3a de 20  |art:NoTEST%=.:. |
00000070  43 4f 44 45 25 20 31 30  30 30 30 3a eb 31 33 3a  |CODE% 10000:.13:|
00000080  87 3a ef 35 3a ec 20 32  30 30 30 2c 32 30 30 30  |.:.5:. 2000,2000|
00000090  3a e6 30 2c 30 3a ff 22  53 6c 6f 61 64 20 3c 4f  |:.0,0:."Sload <O|
000000a0  62 65 79 24 64 69 72 3e  2e 53 70 72 69 74 65 73  |bey$dir>.Sprites|
000000b0  22 3a e7 20 4e 6f 54 45  53 54 25 20 8c 20 73 74  |":. NoTEST% . st|
000000c0  61 72 74 75 70 25 3d b9  3a f2 63 6f 64 69 6e 67  |artup%=.:.coding|
000000d0  0d 00 32 21 db 3a 3a e7  20 4e 6f 54 45 53 54 25  |..2!.::. NoTEST%|
000000e0  20 f2 66 75 6c 6c 73 63  72 65 65 6e 73 65 74 75  | .fullscreensetu|
000000f0  70 0d 00 3c 07 f5 3a e1  0d 00 46 2a dd f2 66 75  |p..<..:...F*..fu|
00000100  6c 6c 73 63 72 65 65 6e  73 65 74 75 70 3a eb 31  |llscreensetup:.1|
00000110  33 3a ef 34 3a 87 3a f2  61 6c 70 68 61 62 65 74  |3:.4:.:.alphabet|
00000120  3a e1 0d 00 50 d4 dd f2  63 6f 64 69 6e 67 3a de  |:...P...coding:.|
00000130  20 62 6c 6f 63 6b 25 20  32 34 2c 43 4f 44 45 32  | block% 24,CODE2|
00000140  25 20 34 30 30 30 30 3a  62 6c 6f 63 6b 25 21 30  |% 40000:block%!0|
00000150  3d 31 35 30 3a 62 6c 6f  63 6b 25 21 34 3d 31 34  |=150:block%!4=14|
00000160  39 3a 62 6c 6f 63 6b 25  21 38 3d 2d 31 3a c8 99  |9:block%!8=-1:..|
00000170  20 22 4f 53 5f 52 65 61  64 56 64 75 56 61 72 69  | "OS_ReadVduVari|
00000180  61 62 6c 65 73 22 2c 62  6c 6f 63 6b 25 2c 62 6c  |ables",block%,bl|
00000190  6f 63 6b 25 2b 31 32 3a  73 69 7a 65 25 3d 62 6c  |ock%+12:size%=bl|
000001a0  6f 63 6b 25 21 31 32 3a  73 74 61 72 74 25 3d 62  |ock%!12:start%=b|
000001b0  6c 6f 63 6b 25 21 31 36  3a 73 70 25 3d 73 74 61  |lock%!16:sp%=sta|
000001c0  72 74 25 3a 73 74 61 72  74 25 2b 3d 28 33 32 30  |rt%:start%+=(320|
000001d0  2a 32 32 38 29 3a 5a 25  3d 32 3a e3 20 70 61 25  |*228):Z%=2:. pa%|
000001e0  3d 30 20 b8 20 5a 25 20  88 20 5a 25 3a 50 25 3d  |=0 . Z% . Z%:P%=|
000001f0  43 4f 44 45 32 25 0d 00  5a 0d 5b 20 4f 50 54 20  |CODE2%..Z.[ OPT |
00000200  70 61 25 0d 00 64 13 53  54 4d 46 44 20 52 31 33  |pa%..d.STMFD R13|
00000210  21 2c 7b 31 34 7d 0d 00  6e 12 4c 44 52 20 52 30  |!,{14}..n.LDR R0|
00000220  2c 73 63 72 65 65 6e 33  0d 00 78 11 41 44 52 20  |,screen3..x.ADR |
00000230  52 31 2c 62 75 66 66 65  72 0d 00 82 0f 4d 4f 56  |R1,buffer....MOV|
00000240  20 52 32 2c 23 31 35 39  0d 00 8c 09 2e 67 72 61  | R2,#159.....gra|
00000250  62 0d 00 96 26 4c 44 4d  49 41 20 52 30 21 2c 7b  |b...&LDMIA R0!,{|
00000260  33 2c 34 2c 35 2c 36 2c  37 2c 38 2c 39 2c 31 30  |3,4,5,6,7,8,9,10|
00000270  2c 31 31 2c 31 32 7d 0d  00 a0 26 53 54 4d 49 41  |,11,12}...&STMIA|
00000280  20 52 31 21 2c 7b 33 2c  34 2c 35 2c 36 2c 37 2c  | R1!,{3,4,5,6,7,|
00000290  38 2c 39 2c 31 30 2c 31  31 2c 31 32 7d 0d 00 aa  |8,9,10,11,12}...|
000002a0  11 53 55 42 53 20 52 32  2c 52 32 2c 23 31 0d 00  |.SUBS R2,R2,#1..|
000002b0  b4 0c 42 50 4c 20 67 72  61 62 0d 00 be 0f 4d 4f  |..BPL grab....MO|
000002c0  56 20 52 30 2c 23 26 31  33 0d 00 c8 11 53 57 49  |V R0,#&13....SWI|
000002d0  20 22 4f 53 5f 42 79 74  65 22 0d 00 d2 12 4c 44  | "OS_Byte"....LD|
000002e0  52 20 52 30 2c 73 63 72  65 65 6e 33 0d 00 dc 11  |R R0,screen3....|
000002f0  41 44 52 20 52 31 2c 62  75 66 66 65 72 0d 00 e6  |ADR R1,buffer...|
00000300  15 41 44 44 20 52 31 2c  52 31 2c 23 34 20 20 20  |.ADD R1,R1,#4   |
00000310  20 20 0d 00 f0 0f 4d 4f  56 20 52 32 2c 23 31 35  |  ....MOV R2,#15|
00000320  39 0d 00 fa 08 2e 70 75  74 0d 01 04 26 4c 44 4d  |9.....put...&LDM|
00000330  49 41 20 52 31 21 2c 7b  33 2c 34 2c 35 2c 36 2c  |IA R1!,{3,4,5,6,|
00000340  37 2c 38 2c 39 2c 31 30  2c 31 31 2c 31 32 7d 0d  |7,8,9,10,11,12}.|
00000350  01 0e 26 53 54 4d 49 41  20 52 30 21 2c 7b 33 2c  |..&STMIA R0!,{3,|
00000360  34 2c 35 2c 36 2c 37 2c  38 2c 39 2c 31 30 2c 31  |4,5,6,7,8,9,10,1|
00000370  31 2c 31 32 7d 0d 01 18  11 53 55 42 53 20 52 32  |1,12}....SUBS R2|
00000380  2c 52 32 2c 23 31 0d 01  22 0b 42 50 4c 20 70 75  |,R2,#1..".BPL pu|
00000390  74 0d 01 2c 12 4c 44 52  20 52 30 2c 73 63 72 65  |t..,.LDR R0,scre|
000003a0  65 6e 33 0d 01 36 0d 4d  4f 56 20 52 31 2c 23 30  |en3..6.MOV R1,#0|
000003b0  0d 01 40 10 53 55 42 20  52 30 2c 52 30 2c 23 34  |..@.SUB R0,R0,#4|
000003c0  0d 01 4a 0e 4d 4f 56 20  52 32 2c 23 32 30 0d 01  |..J.MOV R2,#20..|
000003d0  54 0a 2e 62 6c 61 6e 6b  0d 01 5e 16 53 54 52 20  |T..blank..^.STR |
000003e0  52 31 2c 5b 52 30 2c 23  33 32 30 5d 21 20 0d 01  |R1,[R0,#320]! ..|
000003f0  68 11 53 55 42 53 20 52  32 2c 52 32 2c 23 31 0d  |h.SUBS R2,R2,#1.|
00000400  01 72 0d 42 50 4c 20 62  6c 61 6e 6b 0d 01 7c 13  |.r.BPL blank..|.|
00000410  4c 44 4d 46 44 20 52 31  33 21 2c 7b 50 43 7d 0d  |LDMFD R13!,{PC}.|
00000420  01 86 17 2e 73 63 72 65  65 6e 20 45 51 55 44 20  |....screen EQUD |
00000430  73 74 61 72 74 25 0d 01  90 18 2e 73 63 72 65 65  |start%.....scree|
00000440  6e 33 20 45 51 55 44 20  73 74 61 72 74 25 0d 01  |n3 EQUD start%..|
00000450  9a 1a 2e 7a 65 72 6f 73  20 20 20 20 20 20 20 20  |...zeros        |
00000460  20 20 20 20 20 20 20 20  0d 01 a4 05 5d 0d 01 ae  |        ....]...|
00000470  0a 50 25 2b 3d 34 30 0d  01 b8 05 5b 0d 01 c2 0b  |.P%+=40....[....|
00000480  2e 62 75 66 66 65 72 0d  01 cc 05 5d 0d 01 d6 0f  |.buffer....]....|
00000490  50 25 2b 3d 35 31 32 2a  31 38 30 0d 01 e0 05 5b  |P%+=512*180....[|
000004a0  0d 01 ea 0b 4f 50 54 20  70 61 25 0d 01 f4 0f 2e  |....OPT pa%.....|
000004b0  67 65 74 5f 6c 65 74 74  65 72 0d 01 fe 12 4d 4f  |get_letter....MO|
000004c0  56 20 52 32 2c 23 30 20  20 20 20 20 0d 02 08 0a  |V R2,#0     ....|
000004d0  2e 6c 6f 6f 70 78 0d 02  12 12 4c 44 52 20 52 31  |.loopx....LDR R1|
000004e0  2c 73 63 72 65 65 6e 34  0d 02 1c 12 4d 4f 56 20  |,screen4....MOV |
000004f0  52 33 2c 23 30 20 20 20  20 20 0d 02 26 11 41 44  |R3,#0     ..&.AD|
00000500  44 20 52 31 2c 52 31 2c  52 32 20 0d 02 30 0a 2e  |D R1,R1,R2 ..0..|
00000510  6c 6f 6f 70 79 0d 02 3a  11 4c 44 4d 49 41 20 52  |loopy..:.LDMIA R|
00000520  31 2c 20 7b 34 7d 0d 02  44 11 53 54 4d 49 41 20  |1, {4}..D.STMIA |
00000530  52 30 21 2c 7b 34 7d 0d  02 4e 1e 41 44 44 20 52  |R0!,{4}..N.ADD R|
00000540  33 2c 52 33 2c 23 31 20  20 20 20 20 20 20 20 20  |3,R3,#1         |
00000550  20 20 20 20 20 0d 02 58  1e 41 44 44 20 52 31 2c  |     ..X.ADD R1,|
00000560  52 31 2c 23 33 32 30 20  20 20 20 20 20 20 20 20  |R1,#320         |
00000570  20 20 20 0d 02 62 0e 43  4d 50 20 52 33 2c 23 32  |   ..b.CMP R3,#2|
00000580  30 0d 02 6c 0d 42 4c 54  20 6c 6f 6f 70 79 0d 02  |0..l.BLT loopy..|
00000590  76 20 41 44 44 20 52 32  2c 52 32 2c 23 34 20 20  |v ADD R2,R2,#4  |
000005a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 02  |              ..|
000005b0  80 20 43 4d 50 20 52 32  2c 23 32 31 2a 34 20 20  |. CMP R2,#21*4  |
000005c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 02  |              ..|
000005d0  8a 20 42 4c 54 20 6c 6f  6f 70 78 20 20 20 20 20  |. BLT loopx     |
000005e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 02  |              ..|
000005f0  94 0f 4d 4f 56 20 52 31  35 2c 52 31 34 0d 02 9e  |..MOV R15,R14...|
00000600  0f 2e 70 72 69 6e 74 5f  6c 69 6e 65 0d 02 a8 12  |..print_line....|
00000610  4c 44 52 20 52 31 2c 73  63 72 65 65 6e 32 0d 02  |LDR R1,screen2..|
00000620  b2 0d 4d 4f 56 20 52 33  2c 23 30 0d 02 bc 12 41  |..MOV R3,#0....A|
00000630  44 44 20 52 31 2c 52 31  2c 23 33 31 36 0d 02 c6  |DD R1,R1,#316...|
00000640  0b 2e 6c 6f 6f 70 79 32  0d 02 d0 11 4c 44 4d 49  |..loopy2....LDMI|
00000650  41 20 52 30 21 2c 7b 34  7d 0d 02 da 11 53 54 4d  |A R0!,{4}....STM|
00000660  49 41 20 52 31 2c 20 7b  34 7d 0d 02 e4 1e 41 44  |IA R1, {4}....AD|
00000670  44 20 52 33 2c 52 33 2c  23 31 20 20 20 20 20 20  |D R3,R3,#1      |
00000680  20 20 20 20 20 20 20 20  0d 02 ee 1e 41 44 44 20  |        ....ADD |
00000690  52 31 2c 52 31 2c 23 33  32 30 20 20 20 20 20 20  |R1,R1,#320      |
000006a0  20 20 20 20 20 20 0d 02  f8 0e 43 4d 50 20 52 33  |      ....CMP R3|
000006b0  2c 23 32 30 0d 03 02 0e  42 4c 54 20 6c 6f 6f 70  |,#20....BLT loop|
000006c0  79 32 0d 03 0c 0f 4d 4f  56 20 52 31 35 2c 52 31  |y2....MOV R15,R1|
000006d0  34 0d 03 16 0c 2e 73 63  72 65 65 6e 32 0d 03 20  |4.....screen2.. |
000006e0  0f 45 51 55 44 20 73 74  61 72 74 25 0d 03 2a 0c  |.EQUD start%..*.|
000006f0  2e 73 63 72 65 65 6e 34  0d 03 34 0c 45 51 55 44  |.screen4..4.EQUD|
00000700  20 73 70 25 0d 03 3e 09  41 4c 49 47 4e 0d 03 48  | sp%..>.ALIGN..H|
00000710  0c 2e 6c 65 74 74 65 72  73 0d 03 52 05 5d 0d 03  |..letters..R.]..|
00000720  5c 23 50 25 2b 3d 28 32  30 29 2a 32 30 3a ed 3a  |\#P%+=(20)*20:.:|
00000730  5a 25 3d 30 3a e7 20 73  74 61 72 74 75 70 25 20  |Z%=0:. startup% |
00000740  8c 0d 03 66 5f 6f 66 66  73 65 74 3d 30 3a e3 20  |...f_offset=0:. |
00000750  4a 25 3d 31 b8 36 31 3a  ff 28 22 53 43 48 4f 4f  |J%=1.61:.("SCHOO|
00000760  53 45 20 22 2b bd 28 36  34 2b 4a 25 29 29 3a f0  |SE "+.(64+J%)):.|
00000770  26 45 44 2c 30 2c 31 30  34 34 2d 28 32 30 2a 35  |&ED,0,1044-(20*5|
00000780  29 3a 41 25 3d 6c 65 74  74 65 72 73 2b 6f 66 66  |):A%=letters+off|
00000790  73 65 74 3a d6 20 67 65  74 5f 6c 65 74 74 65 72  |set:. get_letter|
000007a0  0d 03 70 30 6f 66 66 73  65 74 2b 3d 32 30 2a 32  |..p0offset+=20*2|
000007b0  30 3a 5a 25 3d 6c 65 74  74 65 72 73 3a 56 25 3d  |0:Z%=letters:V%=|
000007c0  70 72 69 6e 74 5f 6c 69  6e 65 3a ed 3a cd 3a e1  |print_line:.:.:.|
000007d0  0d 03 7a 45 dd f2 61 6c  70 68 61 62 65 74 3a 87  |..zE..alphabet:.|
000007e0  3a 6c 65 74 3d 30 3a 78  78 25 3d 30 3a 51 75 69  |:let=0:xx%=0:Qui|
000007f0  74 25 3d a3 3a 73 74 61  72 74 25 3d 73 74 61 72  |t%=.:start%=star|
00000800  74 25 2b 28 33 32 30 2a  31 30 29 3a f2 6c 6f 61  |t%+(320*10):.loa|
00000810  64 74 65 78 74 0d 03 84  4d e3 20 4c 6f 6f 70 79  |dtext...M. Loopy|
00000820  3d 30 20 b8 20 31 30 30  30 3a e7 20 53 63 72 6f  |=0 . 1000:. Scro|
00000830  6c 6c 69 6e 67 74 65 78  74 24 28 4c 6f 6f 70 79  |llingtext$(Loopy|
00000840  29 3d 22 45 6e 64 20 6f  66 20 73 63 72 6f 6c 6c  |)="End of scroll|
00000850  69 6e 67 20 74 65 78 74  22 20 8c 20 e5 20 8d 74  |ing text" . . .t|
00000860  44 43 0d 03 8e 8b e3 20  6a 6a 3d 31 20 b8 20 a9  |DC..... jj=1 . .|
00000870  28 53 63 72 6f 6c 6c 69  6e 67 74 65 78 74 24 28  |(Scrollingtext$(|
00000880  4c 6f 6f 70 79 29 29 3a  6c 25 3d 97 28 c1 53 63  |Loopy)):l%=.(.Sc|
00000890  72 6f 6c 6c 69 6e 67 74  65 78 74 24 28 4c 6f 6f  |rollingtext$(Loo|
000008a0  70 79 29 2c 6a 6a 2c 31  29 29 2d 36 35 3a 78 78  |py),jj,1))-65:xx|
000008b0  25 3d 28 32 30 2a 32 30  29 2a 6c 25 3a e3 20 72  |%=(20*20)*l%:. r|
000008c0  72 25 3d 30 20 b8 20 34  3a 73 63 72 3d 73 74 61  |r%=0 . 4:scr=sta|
000008d0  72 74 25 2b 33 31 36 3a  41 25 3d 5a 25 2b 78 78  |rt%+316:A%=Z%+xx|
000008e0  25 3a d6 56 25 3a d6 43  4f 44 45 32 25 0d 03 98  |%:.V%:.CODE2%...|
000008f0  14 e7 20 a6 28 2d 37 34  29 8c 51 75 69 74 25 3d  |.. .(-74).Quit%=|
00000900  b9 0d 03 a2 21 78 78 25  2b 3d 32 30 2a 34 3a ed  |....!xx%+=20*4:.|
00000910  20 72 72 25 3a e7 20 51  75 69 74 25 20 8c 20 db  | rr%:. Quit% . .|
00000920  3a e1 0d 03 ac 0e ed 3a  ed 3a e5 20 8d 74 44 43  |:......:.:. .tDC|
00000930  0d 03 d4 92 dd f2 6c 6f  61 64 74 65 78 74 3a de  |......loadtext:.|
00000940  20 53 63 72 6f 6c 6c 69  6e 67 74 65 78 74 24 28  | Scrollingtext$(|
00000950  31 30 30 30 29 3a 74 65  78 74 24 3d 22 3c 4f 62  |1000):text$="<Ob|
00000960  65 79 24 64 69 72 3e 2e  54 45 58 54 22 3a d9 23  |ey$dir>.TEXT":.#|
00000970  30 3a 74 25 3d 8e 28 74  65 78 74 24 29 3a 74 6e  |0:t%=.(text$):tn|
00000980  25 3d 30 3a f5 3a 54 65  78 74 24 3d be 23 74 25  |%=0:.:Text$=.#t%|
00000990  3a e7 20 54 65 78 74 24  3c 3e 22 22 20 8c 20 53  |:. Text$<>"" . S|
000009a0  63 72 6f 6c 6c 69 6e 67  74 65 78 74 24 28 74 6e  |crollingtext$(tn|
000009b0  25 29 3d 54 65 78 74 24  3a 74 6e 25 3d 74 6e 25  |%)=Text$:tn%=tn%|
000009c0  2b 31 0d 04 1a 11 fd 20  c5 23 74 25 3a d9 23 74  |+1..... .#t%:.#t|
000009d0  25 3a e1 0d 04 1b 05 ed  0d ff                    |%:........|
000009da