Home » Archimedes archive » Acorn User » AU 1996-01.adf » Regulars » StarInfo/Norman/GUC
StarInfo/Norman/GUC
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 » Acorn User » AU 1996-01.adf » Regulars |
Filename: | StarInfo/Norman/GUC |
Read OK: | ✔ |
File size: | 14B6 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10ON ERROR REPORT:PRINT ERL:END 20MODE27:OFF 30 40PROCassemble 50 60PRINT "Press mouse buttons to add guck (try combinations of buttons)." 70PRINT "Press <SPACE> to toggle guck flow." 80PRINT "Press a key to continue..." 90IFGET 100flow%=TRUE 110PROCmode("X480 Y352 G256"):OFF 120FOR x%=0 TO 255 130 COLOUR x%,x%/4,x%,x%/3 140NEXT 150MOUSE ON 160 170REPEAT 180FORq%=0TO1<<30 190IFINKEY$(0)=" "flow%=flow%EORTRUE 200MOUSEx%,y%,z% 210IFz%>0PROCcircles(x%,y%,z%) 220IFflow%=TRUE CALL slide 230NEXT 240UNTIL 1=2 250 260END 270 280 290 300DEF PROCcircles(x%,y%,z%) 310 LOCAL s%,c%,cn% 320 s%=10*z%+5 330 cn%=1 340 FOR c%=s% TO 0 STEP -z% 350 SYS "OS_SetColour",1,1<<cn% 360 CIRCLEFILLx%,y%,c% 370 cn%+=1 380 NEXT 390ENDPROC 400 410 420 430DEF PROCassemble 440DIM code 1024 450 460sp=13 : link=14 : pc=15 470 480REM ****** ARM CODE COMPILING LOOP ****** 490 500top%=195 510bot%=50 520d%=1 530 540FOR pass=0 TO 2 STEP 2 550P%=code 560[OPT pass 570.slide 580 LDR R12,screen 590 MOV R10,#0 ;xpos 600 MOV R8,#168960 610 SUB R8,R8,#480 620.sloop1 630 ADD R11,R10,R8 ;ypos 640 MOV R9,R11 ;store old ypos 650 LDR R6,[R12,R11] ;get byte at top of screen 660 MOV R2,R6,LSR #24 670 MOV R3,R6,LSL #8 680 MOV R3,R3,LSR #24 690 MOV R4,R6,LSL #16 700 MOV R4,R3,LSR #24 710 AND R5,R6,#&FF 720 ADD R10,R10,#4 ;increment xpos 730.sloop2 740 MOV R7,R6 750 SUB R11,R11,#480 ;decrement ypos 760 LDR R6,[R12,R11] ;get next byte 770 MOV R1,R6,LSR #24 780 CMP R2,#top% ;if upper byte is big... 790 BGT spoint1 ;move past next bit 800 CMP R1,#bot% ;if blob is not 'full' enough... 810 BLE spoint1 ;move past next bit 820 SUB R6,R6,R1,LSL #24 830 SUB R7,R7,R2,LSL #24 840 ADD R2,R2,R1,LSR #d% ;add a bit of higher to lower 850 SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. 860 ADD R6,R6,R1,LSL #24 870 ADD R7,R7,R2,LSL #24 880 MOV R2,R1 890.spoint1 900 MOV R1,R6,LSL #8 910 MOV R1,R1,LSR #24 920 CMP R3,#top% ;if upper byte is big... 930 BGT spoint2 ;move past next bit 940 CMP R1,#bot% ;if blob is not 'full' enough... 950 BLE spoint2 ;move past next bit 960 SUB R6,R6,R1,LSL #16 970 SUB R7,R7,R3,LSL #16 980 ADD R3,R3,R1,LSR #d% ;add a bit of higher to lower 990 SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. 1000 ADD R6,R6,R1,LSL #16 1010 ADD R7,R7,R3,LSL #16 1020 MOV R3,R1 1030.spoint2 1040 MOV R1,R6,LSL #16 1050 MOV R1,R1,LSR #24 1060 CMP R4,#top% ;if upper byte is big... 1070 BGT spoint3 ;move past next bit 1080 CMP R1,#bot% ;if blob is not 'full' enough... 1090 BLE spoint3 ;move past next bit 1100 SUB R6,R6,R1,LSL #8 1110 SUB R7,R7,R4,LSL #8 1120 ADD R4,R4,R1,LSR #d% ;add a bit of higher to lower 1130 SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. 1140 ADD R6,R6,R1,LSL #8 1150 ADD R7,R7,R4,LSL #8 1160 MOV R4,R1 1170.spoint3 1180 AND R1,R6,#&FF 1190 CMP R5,#top% ;if upper byte is big... 1200 BGT spoint4 ;move past next bit 1210 CMP R1,#bot% ;if blob is not 'full' enough... 1220 BLE spoint4 ;move past next bit 1230 SUB R6,R6,R1 1240 SUB R7,R7,R5 1250 ADD R5,R5,R1,LSR #d% ;add a bit of higher to lower 1260 SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. 1270 ADD R6,R6,R1 1280 ADD R7,R7,R5 1290 MOV R5,R1 1300.spoint4 1310 STR R7,[R12,R9] ;store bytes back 1320 MOV R9,R11 1330 CMP R11,#480 ;if ypos is not off top... 1340 BGT sloop2 ;loop back 1350 CMP R10,#480 ;if xpos is not off side... 1360 BLT sloop1 ;loop back 1370;next bit will plot a black line at bottom of screen so 1380;the goo can slide off the bottom 1390 MOV R0,#0 ;GCOL 1400 ADD R8,R8,R12 1410 ADD R11,R8,#480 1420 SUB R8,R8,#4 ;so it plots 1st 4 bytes too. 1430.lineloop 1440 STR R0,[R8,#4]! ;plot 4 bytes and increment counter 1450 CMP R8,R11 ;if counter is on screen... 1460 BLT lineloop ;loop back 1470;next bit plots line at top so goo is cleared up after 1480 ADD R11,R12,#480 1490 SUB R12,R12,#4 1500.lineloop2 1510 STR R0,[R12,#4]! 1520 CMP R12,R11 1530 BLT lineloop2 1540.exit 1550 MOV pc,link ;bye! 1560 1570 1580.screen 1590 EQUD 148 1600 EQUD -1 1610]NEXT 1620SYS "OS_ReadVduVariables",screen,screen 1630ENDPROC 1640 1650 1660 1670DEF PROCmode(mode$) 1680LOCAL c$,ex,ey,mode,end 1690DIM mode 64 1700end=mode+20 1710!mode=1 1720mode!4=VALFN_m(mode$,"X","") 1730mode!8=VALFN_m(mode$,"Y","") 1740c$=FN_m(mode$,"C","*") 1750IF c$="*" THEN 1760 c$=FN_m(mode$,"G","") 1770 IF c$="256" !end=3:end!4=255:end+=8 1780ENDIF 1790mode!12=FN_bpp(c$) 1800mode!16=VALFN_m(mode$,"F","-1") 1810ex=VALFN_m(mode$,"EX","-1") 1820IF ex<>-1 !end=4:end!4=ex:end+=8 1830ey=VALFN_m(mode$,"EY","-1") 1840IF ey<>-1 !end=5:end!4=ey:end+=8 1850!end=-1 1860MODE mode 1870ENDPROC 1880 1890DEF FN_m(s$,p$,d$) 1900LOCAL i,j 1910i=INSTR(s$,p$) 1920IF i<1 AND d$="" ERROR 490,"Missing "+p$ 1930IF i<1 THEN =d$ 1940j=INSTR(s$+" "," ",i+1) 1950=MID$(s$,i+1,j-i-1) 1960 1970DEF FN_bpp(n$) 1980CASE n$ OF 1990 WHEN "2":=0 2000 WHEN "4":=1 2010 WHEN "16":=2 2020 WHEN "256":=3 2030 WHEN "32T","32t","32K","32k":=4 2040 WHEN "16M","16m":=5 2050 OTHERWISE: ERROR 490,"Bad parameter "+n$ 2060ENDCASE
� � �:� �:� �27:� ( �assemble 2 <F� "Press mouse buttons to add guck (try combinations of buttons)." F*� "Press <SPACE> to toggle guck flow." P"� "Press a key to continue..." Z� dflow%=� n�mode("X480 Y352 G256"):� x� x%=0 � 255 � � x%,x%/4,x%,x%/3 �� �ȗ � � �� ��q%=0�1<<30 ��(0)=" "flow%=flow%�� �ȗx%,y%,z% ��z%>0�circles(x%,y%,z%) ��flow%=� � slide �� � � 1=2 � � " ,� �circles(x%,y%,z%) 6 � s%,c%,cn% @ s%=10*z%+5 J cn%=1 T � c%=s% � 0 � -z% ^ ș "OS_SetColour",1,1<<cn% h ȏȐx%,y%,c% r cn%+=1 | � �� � � � �� �assemble �� code 1024 � �.sp=13 : link=14 : pc=15 � �>� ****** ARM CODE COMPILING LOOP ****** � �top%=195 �bot%=50 d%=1 � pass=0 � 2 � 2 &P%=code 0 [OPT pass : .slide D LDR R12,screen N' MOV R10,#0 ;xpos X MOV R8,#168960 b SUB R8,R8,#480 l.sloop1 v' ADD R11,R10,R8 ;ypos �1 MOV R9,R11 ;store old ypos �< LDR R6,[R12,R11] ;get byte at top of screen � MOV R2,R6,LSR #24 � MOV R3,R6,LSL #8 � MOV R3,R3,LSR #24 � MOV R4,R6,LSL #16 � MOV R4,R3,LSR #24 � � R5,R6,#&FF �1 ADD R10,R10,#4 ;increment xpos �.sloop2 � MOV R7,R6 �1 SUB R11,R11,#480 ;decrement ypos �0 LDR R6,[R12,R11] ;get next byte MOV R1,R6,LSR #24 : CMP R2,#top% ;if upper byte is big... 5 BGT spoint1 ;move past next bit B CMP R1,#bot% ;if blob is not 'full' enough... *5 BLE spoint1 ;move past next bit 4 SUB R6,R6,R1,LSL #24 > SUB R7,R7,R2,LSL #24 H@ ADD R2,R2,R1,LSR #d% ;add a bit of higher to lower R> SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. \ ADD R6,R6,R1,LSL #24 f ADD R7,R7,R2,LSL #24 p MOV R2,R1 z.spoint1 � MOV R1,R6,LSL #8 � MOV R1,R1,LSR #24 �: CMP R3,#top% ;if upper byte is big... �5 BGT spoint2 ;move past next bit �B CMP R1,#bot% ;if blob is not 'full' enough... �5 BLE spoint2 ;move past next bit � SUB R6,R6,R1,LSL #16 � SUB R7,R7,R3,LSL #16 �@ ADD R3,R3,R1,LSR #d% ;add a bit of higher to lower �> SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. � ADD R6,R6,R1,LSL #16 � ADD R7,R7,R3,LSL #16 � MOV R3,R1 .spoint2 MOV R1,R6,LSL #16 MOV R1,R1,LSR #24 $: CMP R4,#top% ;if upper byte is big... .5 BGT spoint3 ;move past next bit 8B CMP R1,#bot% ;if blob is not 'full' enough... B5 BLE spoint3 ;move past next bit L SUB R6,R6,R1,LSL #8 V SUB R7,R7,R4,LSL #8 `@ ADD R4,R4,R1,LSR #d% ;add a bit of higher to lower j> SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. t ADD R6,R6,R1,LSL #8 ~ ADD R7,R7,R4,LSL #8 � MOV R4,R1 �.spoint3 � � R1,R6,#&FF �: CMP R5,#top% ;if upper byte is big... �5 BGT spoint4 ;move past next bit �B CMP R1,#bot% ;if blob is not 'full' enough... �5 BLE spoint4 ;move past next bit � SUB R6,R6,R1 � SUB R7,R7,R5 �@ ADD R5,R5,R1,LSR #d% ;add a bit of higher to lower �> SUB R1,R1,R1,LSR #d% ;wipe that bit from higher. � ADD R6,R6,R1 ADD R7,R7,R5 MOV R5,R1 .spoint4 1 STR R7,[R12,R9] ;store bytes back ( MOV R9,R11 2< CMP R11,#480 ;if ypos is not off top... <, BGT sloop2 ;loop back F= CMP R10,#480 ;if xpos is not off side... P, BLT sloop1 ;loop back Z;;next bit will plot a black line at bottom of screen so d%;the goo can slide off the bottom n$ MOV R0,#0 ;� x ADD R8,R8,R12 � ADD R11,R8,#480 �? SUB R8,R8,#4 ;so it plots 1st 4 bytes too. � .lineloop �E STR R0,[R8,#4]! ;plot 4 bytes and increment counter �= CMP R8,R11 ;if counter is on screen... �, BLT lineloop ;loop back �:;next bit plots line at top so goo is cleared up after � ADD R11,R12,#480 � SUB R12,R12,#4 �.lineloop2 � STR R0,[R12,#4]! � CMP R12,R11 � BLT lineloop2 .exit ' MOV pc,link ;bye! " ,.screen 6 EQUD 148 @ EQUD -1 J]� T*ș "OS_ReadVduVariables",screen,screen ^� h r | �� �mode(mode$) �� c$,ex,ey,mode,end � � mode 64 �end=mode+20 �!mode=1 �mode!4=��_m(mode$,"X","") �mode!8=��_m(mode$,"Y","") �c$=�_m(mode$,"C","*") �� c$="*" � � c$=�_m(mode$,"G","") �' � c$="256" !end=3:end!4=255:end+=8 �� �mode!12=�_bpp(c$) mode!16=��_m(mode$,"F","-1") ex=��_m(mode$,"EX","-1") #� ex<>-1 !end=4:end!4=ex:end+=8 &ey=��_m(mode$,"EY","-1") 0#� ey<>-1 !end=5:end!4=ey:end+=8 :!end=-1 D � mode N� X b� �_m(s$,p$,d$) l � i,j v i=�s$,p$) �%� i<1 � d$="" � 490,"Missing "+p$ �� i<1 � =d$ �j=�s$+" "," ",i+1) �=�s$,i+1,j-i-1) � �� �_bpp(n$) �Ȏ n$ � � � "2":=0 � � "4":=1 � � "16":=2 � � "256":=3 �! � "32T","32t","32K","32k":=4 � � "16M","16m":=5 ! : � 490,"Bad parameter "+n$ � �
00000000 0d 00 0a 0f ee 20 85 20 f6 3a f1 20 9e 3a e0 0d |..... . .:. .:..| 00000010 00 14 09 eb 32 37 3a 87 0d 00 1e 04 0d 00 28 0d |....27:.......(.| 00000020 f2 61 73 73 65 6d 62 6c 65 0d 00 32 04 0d 00 3c |.assemble..2...<| 00000030 46 f1 20 22 50 72 65 73 73 20 6d 6f 75 73 65 20 |F. "Press mouse | 00000040 62 75 74 74 6f 6e 73 20 74 6f 20 61 64 64 20 67 |buttons to add g| 00000050 75 63 6b 20 28 74 72 79 20 63 6f 6d 62 69 6e 61 |uck (try combina| 00000060 74 69 6f 6e 73 20 6f 66 20 62 75 74 74 6f 6e 73 |tions of buttons| 00000070 29 2e 22 0d 00 46 2a f1 20 22 50 72 65 73 73 20 |)."..F*. "Press | 00000080 3c 53 50 41 43 45 3e 20 74 6f 20 74 6f 67 67 6c |<SPACE> to toggl| 00000090 65 20 67 75 63 6b 20 66 6c 6f 77 2e 22 0d 00 50 |e guck flow."..P| 000000a0 22 f1 20 22 50 72 65 73 73 20 61 20 6b 65 79 20 |". "Press a key | 000000b0 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 2e 2e 22 0d |to continue...".| 000000c0 00 5a 06 e7 a5 0d 00 64 0b 66 6c 6f 77 25 3d b9 |.Z.....d.flow%=.| 000000d0 0d 00 6e 1d f2 6d 6f 64 65 28 22 58 34 38 30 20 |..n..mode("X480 | 000000e0 59 33 35 32 20 47 32 35 36 22 29 3a 87 0d 00 78 |Y352 G256"):...x| 000000f0 10 e3 20 78 25 3d 30 20 b8 20 32 35 35 0d 00 82 |.. x%=0 . 255...| 00000100 16 20 fb 20 78 25 2c 78 25 2f 34 2c 78 25 2c 78 |. . x%,x%/4,x%,x| 00000110 25 2f 33 0d 00 8c 05 ed 0d 00 96 08 c8 97 20 ee |%/3........... .| 00000120 0d 00 a0 04 0d 00 aa 05 f5 0d 00 b4 0f e3 71 25 |..............q%| 00000130 3d 30 b8 31 3c 3c 33 30 0d 00 be 1a e7 bf 28 30 |=0.1<<30......(0| 00000140 29 3d 22 20 22 66 6c 6f 77 25 3d 66 6c 6f 77 25 |)=" "flow%=flow%| 00000150 82 b9 0d 00 c8 0e c8 97 78 25 2c 79 25 2c 7a 25 |........x%,y%,z%| 00000160 0d 00 d2 1b e7 7a 25 3e 30 f2 63 69 72 63 6c 65 |.....z%>0.circle| 00000170 73 28 78 25 2c 79 25 2c 7a 25 29 0d 00 dc 14 e7 |s(x%,y%,z%).....| 00000180 66 6c 6f 77 25 3d b9 20 d6 20 73 6c 69 64 65 0d |flow%=. . slide.| 00000190 00 e6 05 ed 0d 00 f0 09 fd 20 31 3d 32 0d 00 fa |......... 1=2...| 000001a0 04 0d 01 04 05 e0 0d 01 0e 04 0d 01 18 04 0d 01 |................| 000001b0 22 04 0d 01 2c 18 dd 20 f2 63 69 72 63 6c 65 73 |"...,.. .circles| 000001c0 28 78 25 2c 79 25 2c 7a 25 29 0d 01 36 10 20 ea |(x%,y%,z%)..6. .| 000001d0 20 73 25 2c 63 25 2c 63 6e 25 0d 01 40 0f 20 73 | s%,c%,cn%..@. s| 000001e0 25 3d 31 30 2a 7a 25 2b 35 0d 01 4a 0a 20 63 6e |%=10*z%+5..J. cn| 000001f0 25 3d 31 0d 01 54 16 20 e3 20 63 25 3d 73 25 20 |%=1..T. . c%=s% | 00000200 b8 20 30 20 88 20 2d 7a 25 0d 01 5e 20 20 20 c8 |. 0 . -z%..^ .| 00000210 99 20 22 4f 53 5f 53 65 74 43 6f 6c 6f 75 72 22 |. "OS_SetColour"| 00000220 2c 31 2c 31 3c 3c 63 6e 25 0d 01 68 12 20 20 c8 |,1,1<<cn%..h. .| 00000230 8f c8 90 78 25 2c 79 25 2c 63 25 0d 01 72 0c 20 |...x%,y%,c%..r. | 00000240 20 63 6e 25 2b 3d 31 0d 01 7c 06 20 ed 0d 01 86 | cn%+=1..|. ....| 00000250 05 e1 0d 01 90 04 0d 01 9a 04 0d 01 a4 04 0d 01 |................| 00000260 ae 0f dd 20 f2 61 73 73 65 6d 62 6c 65 0d 01 b8 |... .assemble...| 00000270 0f de 20 63 6f 64 65 20 31 30 32 34 0d 01 c2 04 |.. code 1024....| 00000280 0d 01 cc 2e 73 70 3d 31 33 20 20 20 20 20 20 20 |....sp=13 | 00000290 20 20 3a 20 20 20 20 20 6c 69 6e 6b 3d 31 34 20 | : link=14 | 000002a0 20 20 20 20 3a 20 20 20 20 70 63 3d 31 35 0d 01 | : pc=15..| 000002b0 d6 04 0d 01 e0 3e f4 20 20 20 20 20 20 20 2a 2a |.....>. **| 000002c0 2a 2a 2a 2a 20 20 20 20 41 52 4d 20 43 4f 44 45 |**** ARM CODE| 000002d0 20 43 4f 4d 50 49 4c 49 4e 47 20 4c 4f 4f 50 20 | COMPILING LOOP | 000002e0 20 20 20 20 20 20 20 20 20 20 2a 2a 2a 2a 2a 2a | ******| 000002f0 0d 01 ea 04 0d 01 f4 0c 74 6f 70 25 3d 31 39 35 |........top%=195| 00000300 0d 01 fe 0b 62 6f 74 25 3d 35 30 0d 02 08 08 64 |....bot%=50....d| 00000310 25 3d 31 0d 02 12 04 0d 02 1c 14 e3 20 70 61 73 |%=1......... pas| 00000320 73 3d 30 20 b8 20 32 20 88 20 32 0d 02 26 0b 50 |s=0 . 2 . 2..&.P| 00000330 25 3d 63 6f 64 65 0d 02 30 0d 5b 4f 50 54 20 70 |%=code..0.[OPT p| 00000340 61 73 73 0d 02 3a 0a 2e 73 6c 69 64 65 0d 02 44 |ass..:..slide..D| 00000350 15 20 20 20 4c 44 52 20 52 31 32 2c 73 63 72 65 |. LDR R12,scre| 00000360 65 6e 0d 02 4e 27 20 20 20 4d 4f 56 20 52 31 30 |en..N' MOV R10| 00000370 2c 23 30 20 20 20 20 20 20 20 20 20 20 20 20 20 |,#0 | 00000380 20 20 20 20 3b 78 70 6f 73 0d 02 58 15 20 20 20 | ;xpos..X. | 00000390 4d 4f 56 20 52 38 2c 23 31 36 38 39 36 30 0d 02 |MOV R8,#168960..| 000003a0 62 15 20 20 20 53 55 42 20 52 38 2c 52 38 2c 23 |b. SUB R8,R8,#| 000003b0 34 38 30 0d 02 6c 0b 2e 73 6c 6f 6f 70 31 0d 02 |480..l..sloop1..| 000003c0 76 27 20 20 20 41 44 44 20 52 31 31 2c 52 31 30 |v' ADD R11,R10| 000003d0 2c 52 38 20 20 20 20 20 20 20 20 20 20 20 20 20 |,R8 | 000003e0 3b 79 70 6f 73 0d 02 80 31 20 20 20 4d 4f 56 20 |;ypos...1 MOV | 000003f0 52 39 2c 52 31 31 20 20 20 20 20 20 20 20 20 20 |R9,R11 | 00000400 20 20 20 20 20 20 20 3b 73 74 6f 72 65 20 6f 6c | ;store ol| 00000410 64 20 79 70 6f 73 0d 02 8a 3c 20 20 20 4c 44 52 |d ypos...< LDR| 00000420 20 52 36 2c 5b 52 31 32 2c 52 31 31 5d 20 20 20 | R6,[R12,R11] | 00000430 20 20 20 20 20 20 20 20 3b 67 65 74 20 62 79 74 | ;get byt| 00000440 65 20 61 74 20 74 6f 70 20 6f 66 20 73 63 72 65 |e at top of scre| 00000450 65 6e 0d 02 94 18 20 20 20 4d 4f 56 20 52 32 2c |en.... MOV R2,| 00000460 52 36 2c 4c 53 52 20 23 32 34 0d 02 9e 17 20 20 |R6,LSR #24.... | 00000470 20 4d 4f 56 20 52 33 2c 52 36 2c 4c 53 4c 20 23 | MOV R3,R6,LSL #| 00000480 38 0d 02 a8 18 20 20 20 4d 4f 56 20 52 33 2c 52 |8.... MOV R3,R| 00000490 33 2c 4c 53 52 20 23 32 34 0d 02 b2 18 20 20 20 |3,LSR #24.... | 000004a0 4d 4f 56 20 52 34 2c 52 36 2c 4c 53 4c 20 23 31 |MOV R4,R6,LSL #1| 000004b0 36 0d 02 bc 18 20 20 20 4d 4f 56 20 52 34 2c 52 |6.... MOV R4,R| 000004c0 33 2c 4c 53 52 20 23 32 34 0d 02 c6 13 20 20 20 |3,LSR #24.... | 000004d0 80 20 52 35 2c 52 36 2c 23 26 46 46 0d 02 d0 31 |. R5,R6,#&FF...1| 000004e0 20 20 20 41 44 44 20 52 31 30 2c 52 31 30 2c 23 | ADD R10,R10,#| 000004f0 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 69 |4 ;i| 00000500 6e 63 72 65 6d 65 6e 74 20 78 70 6f 73 0d 02 da |ncrement xpos...| 00000510 0b 2e 73 6c 6f 6f 70 32 0d 02 e4 10 20 20 20 4d |..sloop2.... M| 00000520 4f 56 20 52 37 2c 52 36 0d 02 ee 31 20 20 20 53 |OV R7,R6...1 S| 00000530 55 42 20 52 31 31 2c 52 31 31 2c 23 34 38 30 20 |UB R11,R11,#480 | 00000540 20 20 20 20 20 20 20 20 20 20 3b 64 65 63 72 65 | ;decre| 00000550 6d 65 6e 74 20 79 70 6f 73 0d 02 f8 30 20 20 20 |ment ypos...0 | 00000560 4c 44 52 20 52 36 2c 5b 52 31 32 2c 52 31 31 5d |LDR R6,[R12,R11]| 00000570 20 20 20 20 20 20 20 20 20 20 20 3b 67 65 74 20 | ;get | 00000580 6e 65 78 74 20 62 79 74 65 0d 03 02 18 20 20 20 |next byte.... | 00000590 4d 4f 56 20 52 31 2c 52 36 2c 4c 53 52 20 23 32 |MOV R1,R6,LSR #2| 000005a0 34 0d 03 0c 3a 20 20 20 43 4d 50 20 52 32 2c 23 |4...: CMP R2,#| 000005b0 74 6f 70 25 20 20 20 20 20 20 20 20 20 20 20 20 |top% | 000005c0 20 20 20 3b 69 66 20 75 70 70 65 72 20 62 79 74 | ;if upper byt| 000005d0 65 20 69 73 20 62 69 67 2e 2e 2e 0d 03 16 35 20 |e is big......5 | 000005e0 20 20 42 47 54 20 73 70 6f 69 6e 74 31 20 20 20 | BGT spoint1 | 000005f0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6d 6f | ;mo| 00000600 76 65 20 70 61 73 74 20 6e 65 78 74 20 62 69 74 |ve past next bit| 00000610 0d 03 20 42 20 20 20 43 4d 50 20 52 31 2c 23 62 |.. B CMP R1,#b| 00000620 6f 74 25 20 20 20 20 20 20 20 20 20 20 20 20 20 |ot% | 00000630 20 20 3b 69 66 20 62 6c 6f 62 20 69 73 20 6e 6f | ;if blob is no| 00000640 74 20 27 66 75 6c 6c 27 20 65 6e 6f 75 67 68 2e |t 'full' enough.| 00000650 2e 2e 0d 03 2a 35 20 20 20 42 4c 45 20 73 70 6f |....*5 BLE spo| 00000660 69 6e 74 31 20 20 20 20 20 20 20 20 20 20 20 20 |int1 | 00000670 20 20 20 20 3b 6d 6f 76 65 20 70 61 73 74 20 6e | ;move past n| 00000680 65 78 74 20 62 69 74 0d 03 34 1b 20 20 20 53 55 |ext bit..4. SU| 00000690 42 20 52 36 2c 52 36 2c 52 31 2c 4c 53 4c 20 23 |B R6,R6,R1,LSL #| 000006a0 32 34 0d 03 3e 1b 20 20 20 53 55 42 20 52 37 2c |24..>. SUB R7,| 000006b0 52 37 2c 52 32 2c 4c 53 4c 20 23 32 34 0d 03 48 |R7,R2,LSL #24..H| 000006c0 40 20 20 20 41 44 44 20 52 32 2c 52 32 2c 52 31 |@ ADD R2,R2,R1| 000006d0 2c 4c 53 52 20 23 64 25 20 20 20 20 20 20 20 20 |,LSR #d% | 000006e0 3b 61 64 64 20 61 20 62 69 74 20 6f 66 20 68 69 |;add a bit of hi| 000006f0 67 68 65 72 20 74 6f 20 6c 6f 77 65 72 0d 03 52 |gher to lower..R| 00000700 3e 20 20 20 53 55 42 20 52 31 2c 52 31 2c 52 31 |> SUB R1,R1,R1| 00000710 2c 4c 53 52 20 23 64 25 20 20 20 20 20 20 20 20 |,LSR #d% | 00000720 3b 77 69 70 65 20 74 68 61 74 20 62 69 74 20 66 |;wipe that bit f| 00000730 72 6f 6d 20 68 69 67 68 65 72 2e 0d 03 5c 1b 20 |rom higher...\. | 00000740 20 20 41 44 44 20 52 36 2c 52 36 2c 52 31 2c 4c | ADD R6,R6,R1,L| 00000750 53 4c 20 23 32 34 0d 03 66 1b 20 20 20 41 44 44 |SL #24..f. ADD| 00000760 20 52 37 2c 52 37 2c 52 32 2c 4c 53 4c 20 23 32 | R7,R7,R2,LSL #2| 00000770 34 0d 03 70 10 20 20 20 4d 4f 56 20 52 32 2c 52 |4..p. MOV R2,R| 00000780 31 0d 03 7a 0c 2e 73 70 6f 69 6e 74 31 0d 03 84 |1..z..spoint1...| 00000790 17 20 20 20 4d 4f 56 20 52 31 2c 52 36 2c 4c 53 |. MOV R1,R6,LS| 000007a0 4c 20 23 38 0d 03 8e 18 20 20 20 4d 4f 56 20 52 |L #8.... MOV R| 000007b0 31 2c 52 31 2c 4c 53 52 20 23 32 34 0d 03 98 3a |1,R1,LSR #24...:| 000007c0 20 20 20 43 4d 50 20 52 33 2c 23 74 6f 70 25 20 | CMP R3,#top% | 000007d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 69 | ;i| 000007e0 66 20 75 70 70 65 72 20 62 79 74 65 20 69 73 20 |f upper byte is | 000007f0 62 69 67 2e 2e 2e 0d 03 a2 35 20 20 20 42 47 54 |big......5 BGT| 00000800 20 73 70 6f 69 6e 74 32 20 20 20 20 20 20 20 20 | spoint2 | 00000810 20 20 20 20 20 20 20 20 3b 6d 6f 76 65 20 70 61 | ;move pa| 00000820 73 74 20 6e 65 78 74 20 62 69 74 0d 03 ac 42 20 |st next bit...B | 00000830 20 20 43 4d 50 20 52 31 2c 23 62 6f 74 25 20 20 | CMP R1,#bot% | 00000840 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 69 66 | ;if| 00000850 20 62 6c 6f 62 20 69 73 20 6e 6f 74 20 27 66 75 | blob is not 'fu| 00000860 6c 6c 27 20 65 6e 6f 75 67 68 2e 2e 2e 0d 03 b6 |ll' enough......| 00000870 35 20 20 20 42 4c 45 20 73 70 6f 69 6e 74 32 20 |5 BLE spoint2 | 00000880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00000890 6d 6f 76 65 20 70 61 73 74 20 6e 65 78 74 20 62 |move past next b| 000008a0 69 74 0d 03 c0 1b 20 20 20 53 55 42 20 52 36 2c |it.... SUB R6,| 000008b0 52 36 2c 52 31 2c 4c 53 4c 20 23 31 36 0d 03 ca |R6,R1,LSL #16...| 000008c0 1b 20 20 20 53 55 42 20 52 37 2c 52 37 2c 52 33 |. SUB R7,R7,R3| 000008d0 2c 4c 53 4c 20 23 31 36 0d 03 d4 40 20 20 20 41 |,LSL #16...@ A| 000008e0 44 44 20 52 33 2c 52 33 2c 52 31 2c 4c 53 52 20 |DD R3,R3,R1,LSR | 000008f0 23 64 25 20 20 20 20 20 20 20 20 3b 61 64 64 20 |#d% ;add | 00000900 61 20 62 69 74 20 6f 66 20 68 69 67 68 65 72 20 |a bit of higher | 00000910 74 6f 20 6c 6f 77 65 72 0d 03 de 3e 20 20 20 53 |to lower...> S| 00000920 55 42 20 52 31 2c 52 31 2c 52 31 2c 4c 53 52 20 |UB R1,R1,R1,LSR | 00000930 23 64 25 20 20 20 20 20 20 20 20 3b 77 69 70 65 |#d% ;wipe| 00000940 20 74 68 61 74 20 62 69 74 20 66 72 6f 6d 20 68 | that bit from h| 00000950 69 67 68 65 72 2e 0d 03 e8 1b 20 20 20 41 44 44 |igher..... ADD| 00000960 20 52 36 2c 52 36 2c 52 31 2c 4c 53 4c 20 23 31 | R6,R6,R1,LSL #1| 00000970 36 0d 03 f2 1b 20 20 20 41 44 44 20 52 37 2c 52 |6.... ADD R7,R| 00000980 37 2c 52 33 2c 4c 53 4c 20 23 31 36 0d 03 fc 10 |7,R3,LSL #16....| 00000990 20 20 20 4d 4f 56 20 52 33 2c 52 31 0d 04 06 0c | MOV R3,R1....| 000009a0 2e 73 70 6f 69 6e 74 32 0d 04 10 18 20 20 20 4d |.spoint2.... M| 000009b0 4f 56 20 52 31 2c 52 36 2c 4c 53 4c 20 23 31 36 |OV R1,R6,LSL #16| 000009c0 0d 04 1a 18 20 20 20 4d 4f 56 20 52 31 2c 52 31 |.... MOV R1,R1| 000009d0 2c 4c 53 52 20 23 32 34 0d 04 24 3a 20 20 20 43 |,LSR #24..$: C| 000009e0 4d 50 20 52 34 2c 23 74 6f 70 25 20 20 20 20 20 |MP R4,#top% | 000009f0 20 20 20 20 20 20 20 20 20 20 3b 69 66 20 75 70 | ;if up| 00000a00 70 65 72 20 62 79 74 65 20 69 73 20 62 69 67 2e |per byte is big.| 00000a10 2e 2e 0d 04 2e 35 20 20 20 42 47 54 20 73 70 6f |.....5 BGT spo| 00000a20 69 6e 74 33 20 20 20 20 20 20 20 20 20 20 20 20 |int3 | 00000a30 20 20 20 20 3b 6d 6f 76 65 20 70 61 73 74 20 6e | ;move past n| 00000a40 65 78 74 20 62 69 74 0d 04 38 42 20 20 20 43 4d |ext bit..8B CM| 00000a50 50 20 52 31 2c 23 62 6f 74 25 20 20 20 20 20 20 |P R1,#bot% | 00000a60 20 20 20 20 20 20 20 20 20 3b 69 66 20 62 6c 6f | ;if blo| 00000a70 62 20 69 73 20 6e 6f 74 20 27 66 75 6c 6c 27 20 |b is not 'full' | 00000a80 65 6e 6f 75 67 68 2e 2e 2e 0d 04 42 35 20 20 20 |enough.....B5 | 00000a90 42 4c 45 20 73 70 6f 69 6e 74 33 20 20 20 20 20 |BLE spoint3 | 00000aa0 20 20 20 20 20 20 20 20 20 20 20 3b 6d 6f 76 65 | ;move| 00000ab0 20 70 61 73 74 20 6e 65 78 74 20 62 69 74 0d 04 | past next bit..| 00000ac0 4c 1a 20 20 20 53 55 42 20 52 36 2c 52 36 2c 52 |L. SUB R6,R6,R| 00000ad0 31 2c 4c 53 4c 20 23 38 0d 04 56 1a 20 20 20 53 |1,LSL #8..V. S| 00000ae0 55 42 20 52 37 2c 52 37 2c 52 34 2c 4c 53 4c 20 |UB R7,R7,R4,LSL | 00000af0 23 38 0d 04 60 40 20 20 20 41 44 44 20 52 34 2c |#8..`@ ADD R4,| 00000b00 52 34 2c 52 31 2c 4c 53 52 20 23 64 25 20 20 20 |R4,R1,LSR #d% | 00000b10 20 20 20 20 20 3b 61 64 64 20 61 20 62 69 74 20 | ;add a bit | 00000b20 6f 66 20 68 69 67 68 65 72 20 74 6f 20 6c 6f 77 |of higher to low| 00000b30 65 72 0d 04 6a 3e 20 20 20 53 55 42 20 52 31 2c |er..j> SUB R1,| 00000b40 52 31 2c 52 31 2c 4c 53 52 20 23 64 25 20 20 20 |R1,R1,LSR #d% | 00000b50 20 20 20 20 20 3b 77 69 70 65 20 74 68 61 74 20 | ;wipe that | 00000b60 62 69 74 20 66 72 6f 6d 20 68 69 67 68 65 72 2e |bit from higher.| 00000b70 0d 04 74 1a 20 20 20 41 44 44 20 52 36 2c 52 36 |..t. ADD R6,R6| 00000b80 2c 52 31 2c 4c 53 4c 20 23 38 0d 04 7e 1a 20 20 |,R1,LSL #8..~. | 00000b90 20 41 44 44 20 52 37 2c 52 37 2c 52 34 2c 4c 53 | ADD R7,R7,R4,LS| 00000ba0 4c 20 23 38 0d 04 88 10 20 20 20 4d 4f 56 20 52 |L #8.... MOV R| 00000bb0 34 2c 52 31 0d 04 92 0c 2e 73 70 6f 69 6e 74 33 |4,R1.....spoint3| 00000bc0 0d 04 9c 13 20 20 20 80 20 52 31 2c 52 36 2c 23 |.... . R1,R6,#| 00000bd0 26 46 46 0d 04 a6 3a 20 20 20 43 4d 50 20 52 35 |&FF...: CMP R5| 00000be0 2c 23 74 6f 70 25 20 20 20 20 20 20 20 20 20 20 |,#top% | 00000bf0 20 20 20 20 20 3b 69 66 20 75 70 70 65 72 20 62 | ;if upper b| 00000c00 79 74 65 20 69 73 20 62 69 67 2e 2e 2e 0d 04 b0 |yte is big......| 00000c10 35 20 20 20 42 47 54 20 73 70 6f 69 6e 74 34 20 |5 BGT spoint4 | 00000c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00000c30 6d 6f 76 65 20 70 61 73 74 20 6e 65 78 74 20 62 |move past next b| 00000c40 69 74 0d 04 ba 42 20 20 20 43 4d 50 20 52 31 2c |it...B CMP R1,| 00000c50 23 62 6f 74 25 20 20 20 20 20 20 20 20 20 20 20 |#bot% | 00000c60 20 20 20 20 3b 69 66 20 62 6c 6f 62 20 69 73 20 | ;if blob is | 00000c70 6e 6f 74 20 27 66 75 6c 6c 27 20 65 6e 6f 75 67 |not 'full' enoug| 00000c80 68 2e 2e 2e 0d 04 c4 35 20 20 20 42 4c 45 20 73 |h......5 BLE s| 00000c90 70 6f 69 6e 74 34 20 20 20 20 20 20 20 20 20 20 |point4 | 00000ca0 20 20 20 20 20 20 3b 6d 6f 76 65 20 70 61 73 74 | ;move past| 00000cb0 20 6e 65 78 74 20 62 69 74 0d 04 ce 13 20 20 20 | next bit.... | 00000cc0 53 55 42 20 52 36 2c 52 36 2c 52 31 0d 04 d8 13 |SUB R6,R6,R1....| 00000cd0 20 20 20 53 55 42 20 52 37 2c 52 37 2c 52 35 0d | SUB R7,R7,R5.| 00000ce0 04 e2 40 20 20 20 41 44 44 20 52 35 2c 52 35 2c |..@ ADD R5,R5,| 00000cf0 52 31 2c 4c 53 52 20 23 64 25 20 20 20 20 20 20 |R1,LSR #d% | 00000d00 20 20 3b 61 64 64 20 61 20 62 69 74 20 6f 66 20 | ;add a bit of | 00000d10 68 69 67 68 65 72 20 74 6f 20 6c 6f 77 65 72 0d |higher to lower.| 00000d20 04 ec 3e 20 20 20 53 55 42 20 52 31 2c 52 31 2c |..> SUB R1,R1,| 00000d30 52 31 2c 4c 53 52 20 23 64 25 20 20 20 20 20 20 |R1,LSR #d% | 00000d40 20 20 3b 77 69 70 65 20 74 68 61 74 20 62 69 74 | ;wipe that bit| 00000d50 20 66 72 6f 6d 20 68 69 67 68 65 72 2e 0d 04 f6 | from higher....| 00000d60 13 20 20 20 41 44 44 20 52 36 2c 52 36 2c 52 31 |. ADD R6,R6,R1| 00000d70 0d 05 00 13 20 20 20 41 44 44 20 52 37 2c 52 37 |.... ADD R7,R7| 00000d80 2c 52 35 0d 05 0a 10 20 20 20 4d 4f 56 20 52 35 |,R5.... MOV R5| 00000d90 2c 52 31 0d 05 14 0c 2e 73 70 6f 69 6e 74 34 0d |,R1.....spoint4.| 00000da0 05 1e 31 20 20 20 53 54 52 20 52 37 2c 5b 52 31 |..1 STR R7,[R1| 00000db0 32 2c 52 39 5d 20 20 20 20 20 20 20 20 20 20 3b |2,R9] ;| 00000dc0 73 74 6f 72 65 20 62 79 74 65 73 20 62 61 63 6b |store bytes back| 00000dd0 0d 05 28 11 20 20 20 4d 4f 56 20 52 39 2c 52 31 |..(. MOV R9,R1| 00000de0 31 0d 05 32 3c 20 20 20 43 4d 50 20 52 31 31 2c |1..2< CMP R11,| 00000df0 23 34 38 30 20 20 20 20 20 20 20 20 20 20 20 20 |#480 | 00000e00 20 20 20 3b 69 66 20 79 70 6f 73 20 69 73 20 6e | ;if ypos is n| 00000e10 6f 74 20 6f 66 66 20 74 6f 70 2e 2e 2e 0d 05 3c |ot off top.....<| 00000e20 2c 20 20 20 42 47 54 20 73 6c 6f 6f 70 32 20 20 |, BGT sloop2 | 00000e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ;| 00000e40 6c 6f 6f 70 20 62 61 63 6b 0d 05 46 3d 20 20 20 |loop back..F= | 00000e50 43 4d 50 20 52 31 30 2c 23 34 38 30 20 20 20 20 |CMP R10,#480 | 00000e60 20 20 20 20 20 20 20 20 20 20 20 3b 69 66 20 78 | ;if x| 00000e70 70 6f 73 20 69 73 20 6e 6f 74 20 6f 66 66 20 73 |pos is not off s| 00000e80 69 64 65 2e 2e 2e 0d 05 50 2c 20 20 20 42 4c 54 |ide.....P, BLT| 00000e90 20 73 6c 6f 6f 70 31 20 20 20 20 20 20 20 20 20 | sloop1 | 00000ea0 20 20 20 20 20 20 20 20 3b 6c 6f 6f 70 20 62 61 | ;loop ba| 00000eb0 63 6b 0d 05 5a 3b 3b 6e 65 78 74 20 62 69 74 20 |ck..Z;;next bit | 00000ec0 77 69 6c 6c 20 70 6c 6f 74 20 61 20 62 6c 61 63 |will plot a blac| 00000ed0 6b 20 6c 69 6e 65 20 61 74 20 62 6f 74 74 6f 6d |k line at bottom| 00000ee0 20 6f 66 20 73 63 72 65 65 6e 20 73 6f 0d 05 64 | of screen so..d| 00000ef0 25 3b 74 68 65 20 67 6f 6f 20 63 61 6e 20 73 6c |%;the goo can sl| 00000f00 69 64 65 20 6f 66 66 20 74 68 65 20 62 6f 74 74 |ide off the bott| 00000f10 6f 6d 0d 05 6e 24 20 20 20 4d 4f 56 20 52 30 2c |om..n$ MOV R0,| 00000f20 23 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |#0 | 00000f30 20 20 20 20 3b e6 0d 05 78 14 20 20 20 41 44 44 | ;...x. ADD| 00000f40 20 52 38 2c 52 38 2c 52 31 32 0d 05 82 16 20 20 | R8,R8,R12.... | 00000f50 20 41 44 44 20 52 31 31 2c 52 38 2c 23 34 38 30 | ADD R11,R8,#480| 00000f60 0d 05 8c 3f 20 20 20 53 55 42 20 52 38 2c 52 38 |...? SUB R8,R8| 00000f70 2c 23 34 20 20 20 20 20 20 20 20 20 20 20 20 20 |,#4 | 00000f80 20 20 3b 73 6f 20 69 74 20 70 6c 6f 74 73 20 31 | ;so it plots 1| 00000f90 73 74 20 34 20 62 79 74 65 73 20 74 6f 6f 2e 0d |st 4 bytes too..| 00000fa0 05 96 0d 2e 6c 69 6e 65 6c 6f 6f 70 0d 05 a0 45 |....lineloop...E| 00000fb0 20 20 20 53 54 52 20 52 30 2c 5b 52 38 2c 23 34 | STR R0,[R8,#4| 00000fc0 5d 21 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 |]! ;p| 00000fd0 6c 6f 74 20 34 20 62 79 74 65 73 20 61 6e 64 20 |lot 4 bytes and | 00000fe0 69 6e 63 72 65 6d 65 6e 74 20 63 6f 75 6e 74 65 |increment counte| 00000ff0 72 0d 05 aa 3d 20 20 20 43 4d 50 20 52 38 2c 52 |r...= CMP R8,R| 00001000 31 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |11 | 00001010 20 20 20 3b 69 66 20 63 6f 75 6e 74 65 72 20 69 | ;if counter i| 00001020 73 20 6f 6e 20 73 63 72 65 65 6e 2e 2e 2e 0d 05 |s on screen.....| 00001030 b4 2c 20 20 20 42 4c 54 20 6c 69 6e 65 6c 6f 6f |., BLT lineloo| 00001040 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |p | 00001050 3b 6c 6f 6f 70 20 62 61 63 6b 0d 05 be 3a 3b 6e |;loop back...:;n| 00001060 65 78 74 20 62 69 74 20 70 6c 6f 74 73 20 6c 69 |ext bit plots li| 00001070 6e 65 20 61 74 20 74 6f 70 20 73 6f 20 67 6f 6f |ne at top so goo| 00001080 20 69 73 20 63 6c 65 61 72 65 64 20 75 70 20 61 | is cleared up a| 00001090 66 74 65 72 0d 05 c8 17 20 20 20 41 44 44 20 52 |fter.... ADD R| 000010a0 31 31 2c 52 31 32 2c 23 34 38 30 0d 05 d2 15 20 |11,R12,#480.... | 000010b0 20 20 53 55 42 20 52 31 32 2c 52 31 32 2c 23 34 | SUB R12,R12,#4| 000010c0 0d 05 dc 0e 2e 6c 69 6e 65 6c 6f 6f 70 32 0d 05 |.....lineloop2..| 000010d0 e6 17 20 20 20 53 54 52 20 52 30 2c 5b 52 31 32 |.. STR R0,[R12| 000010e0 2c 23 34 5d 21 0d 05 f0 12 20 20 20 43 4d 50 20 |,#4]!.... CMP | 000010f0 52 31 32 2c 52 31 31 0d 05 fa 14 20 20 20 42 4c |R12,R11.... BL| 00001100 54 20 6c 69 6e 65 6c 6f 6f 70 32 0d 06 04 09 2e |T lineloop2.....| 00001110 65 78 69 74 0d 06 0e 27 20 20 20 4d 4f 56 20 70 |exit...' MOV p| 00001120 63 2c 6c 69 6e 6b 20 20 20 20 20 20 20 20 20 20 |c,link | 00001130 20 20 20 20 20 20 3b 62 79 65 21 0d 06 18 04 0d | ;bye!.....| 00001140 06 22 04 0d 06 2c 0b 2e 73 63 72 65 65 6e 0d 06 |."...,..screen..| 00001150 36 14 20 20 20 45 51 55 44 20 20 20 20 20 20 31 |6. EQUD 1| 00001160 34 38 0d 06 40 13 20 20 20 45 51 55 44 20 20 20 |48..@. EQUD | 00001170 20 20 20 2d 31 0d 06 4a 06 5d ed 0d 06 54 2a c8 | -1..J.]...T*.| 00001180 99 20 22 4f 53 5f 52 65 61 64 56 64 75 56 61 72 |. "OS_ReadVduVar| 00001190 69 61 62 6c 65 73 22 2c 73 63 72 65 65 6e 2c 73 |iables",screen,s| 000011a0 63 72 65 65 6e 0d 06 5e 05 e1 0d 06 68 04 0d 06 |creen..^....h...| 000011b0 72 04 0d 06 7c 04 0d 06 86 12 dd 20 f2 6d 6f 64 |r...|...... .mod| 000011c0 65 28 6d 6f 64 65 24 29 0d 06 90 17 ea 20 63 24 |e(mode$)..... c$| 000011d0 2c 65 78 2c 65 79 2c 6d 6f 64 65 2c 65 6e 64 0d |,ex,ey,mode,end.| 000011e0 06 9a 0d de 20 6d 6f 64 65 20 36 34 0d 06 a4 0f |.... mode 64....| 000011f0 65 6e 64 3d 6d 6f 64 65 2b 32 30 0d 06 ae 0b 21 |end=mode+20....!| 00001200 6d 6f 64 65 3d 31 0d 06 b8 1d 6d 6f 64 65 21 34 |mode=1....mode!4| 00001210 3d bb a4 5f 6d 28 6d 6f 64 65 24 2c 22 58 22 2c |=.._m(mode$,"X",| 00001220 22 22 29 0d 06 c2 1d 6d 6f 64 65 21 38 3d bb a4 |"")....mode!8=..| 00001230 5f 6d 28 6d 6f 64 65 24 2c 22 59 22 2c 22 22 29 |_m(mode$,"Y","")| 00001240 0d 06 cc 19 63 24 3d a4 5f 6d 28 6d 6f 64 65 24 |....c$=._m(mode$| 00001250 2c 22 43 22 2c 22 2a 22 29 0d 06 d6 0e e7 20 63 |,"C","*")..... c| 00001260 24 3d 22 2a 22 20 8c 0d 06 e0 19 20 63 24 3d a4 |$="*" ..... c$=.| 00001270 5f 6d 28 6d 6f 64 65 24 2c 22 47 22 2c 22 22 29 |_m(mode$,"G","")| 00001280 0d 06 ea 27 20 e7 20 63 24 3d 22 32 35 36 22 20 |...' . c$="256" | 00001290 21 65 6e 64 3d 33 3a 65 6e 64 21 34 3d 32 35 35 |!end=3:end!4=255| 000012a0 3a 65 6e 64 2b 3d 38 0d 06 f4 05 cd 0d 06 fe 15 |:end+=8.........| 000012b0 6d 6f 64 65 21 31 32 3d a4 5f 62 70 70 28 63 24 |mode!12=._bpp(c$| 000012c0 29 0d 07 08 20 6d 6f 64 65 21 31 36 3d bb a4 5f |)... mode!16=.._| 000012d0 6d 28 6d 6f 64 65 24 2c 22 46 22 2c 22 2d 31 22 |m(mode$,"F","-1"| 000012e0 29 0d 07 12 1c 65 78 3d bb a4 5f 6d 28 6d 6f 64 |)....ex=.._m(mod| 000012f0 65 24 2c 22 45 58 22 2c 22 2d 31 22 29 0d 07 1c |e$,"EX","-1")...| 00001300 23 e7 20 65 78 3c 3e 2d 31 20 21 65 6e 64 3d 34 |#. ex<>-1 !end=4| 00001310 3a 65 6e 64 21 34 3d 65 78 3a 65 6e 64 2b 3d 38 |:end!4=ex:end+=8| 00001320 0d 07 26 1c 65 79 3d bb a4 5f 6d 28 6d 6f 64 65 |..&.ey=.._m(mode| 00001330 24 2c 22 45 59 22 2c 22 2d 31 22 29 0d 07 30 23 |$,"EY","-1")..0#| 00001340 e7 20 65 79 3c 3e 2d 31 20 21 65 6e 64 3d 35 3a |. ey<>-1 !end=5:| 00001350 65 6e 64 21 34 3d 65 79 3a 65 6e 64 2b 3d 38 0d |end!4=ey:end+=8.| 00001360 07 3a 0b 21 65 6e 64 3d 2d 31 0d 07 44 0a eb 20 |.:.!end=-1..D.. | 00001370 6d 6f 64 65 0d 07 4e 05 e1 0d 07 58 04 0d 07 62 |mode..N....X...b| 00001380 13 dd 20 a4 5f 6d 28 73 24 2c 70 24 2c 64 24 29 |.. ._m(s$,p$,d$)| 00001390 0d 07 6c 09 ea 20 69 2c 6a 0d 07 76 0d 69 3d a7 |..l.. i,j..v.i=.| 000013a0 73 24 2c 70 24 29 0d 07 80 25 e7 20 69 3c 31 20 |s$,p$)...%. i<1 | 000013b0 80 20 64 24 3d 22 22 20 85 20 34 39 30 2c 22 4d |. d$="" . 490,"M| 000013c0 69 73 73 69 6e 67 20 22 2b 70 24 0d 07 8a 0f e7 |issing "+p$.....| 000013d0 20 69 3c 31 20 8c 20 3d 64 24 0d 07 94 16 6a 3d | i<1 . =d$....j=| 000013e0 a7 73 24 2b 22 20 22 2c 22 20 22 2c 69 2b 31 29 |.s$+" "," ",i+1)| 000013f0 0d 07 9e 13 3d c1 73 24 2c 69 2b 31 2c 6a 2d 69 |....=.s$,i+1,j-i| 00001400 2d 31 29 0d 07 a8 04 0d 07 b2 0f dd 20 a4 5f 62 |-1)......... ._b| 00001410 70 70 28 6e 24 29 0d 07 bc 0b c8 8e 20 6e 24 20 |pp(n$)...... n$ | 00001420 ca 0d 07 c6 0d 20 c9 20 22 32 22 3a 3d 30 0d 07 |..... . "2":=0..| 00001430 d0 0d 20 c9 20 22 34 22 3a 3d 31 0d 07 da 0e 20 |.. . "4":=1.... | 00001440 c9 20 22 31 36 22 3a 3d 32 0d 07 e4 0f 20 c9 20 |. "16":=2.... . | 00001450 22 32 35 36 22 3a 3d 33 0d 07 ee 21 20 c9 20 22 |"256":=3...! . "| 00001460 33 32 54 22 2c 22 33 32 74 22 2c 22 33 32 4b 22 |32T","32t","32K"| 00001470 2c 22 33 32 6b 22 3a 3d 34 0d 07 f8 15 20 c9 20 |,"32k":=4.... . | 00001480 22 31 36 4d 22 2c 22 31 36 6d 22 3a 3d 35 0d 08 |"16M","16m":=5..| 00001490 02 21 20 7f 3a 20 85 20 34 39 30 2c 22 42 61 64 |.! .: . 490,"Bad| 000014a0 20 70 61 72 61 6d 65 74 65 72 20 22 2b 6e 24 0d | parameter "+n$.| 000014b0 08 0c 05 cb 0d ff |......| 000014b6