Home » Archimedes archive » Acorn User » AU 1994-04.adf » !WriteDemo_WriteDemo » Modules/Swop/Source

Modules/Swop/Source

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 1994-04.adf » !WriteDemo_WriteDemo
Filename: Modules/Swop/Source
Read OK:
File size: 0A6C bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Swop
   20
   30ON ERROR SYS "Hourglass_Smash":ERROR 0,(REPORT$+" (internal error code "+STR$(ERL)+")")
   40
   50REM  Fixed variables :
   60
   70  REM When running water module : no_lines% = 170
   80  REM Otherwise                 : no_lines% = 256
   90
  100  REM Number of lines to be clear from top of the screen.
  110  REM This should be 256 to clear all of the screen,
  120  REM or 170 to clear just the top two-thirds of the screen
  130  REM that are not covered by the 'Water' module.
  140  REM This is just to speed the demo up.
  150  no_lines% = 256
  160
  170
  180
  190module$ = "Swop"
  200
  210SYS "Hourglass_On"
  220PROCassemble
  230
  240OSCLI"SAVE    <Modules$Dir>."+module$+".Module "+STR$~code%+" "+STR$~P%
  250OSCLI"SETTYPE <Modules$Dir>."+module$+".Module Data"
  260
  270SYS "Hourglass_Off"
  280END
  290
  300
  310
  320DEF PROCassemble
  330  len% = 1024
  340  DIM code% len%
  350  FOR pass% = 8 TO 10 STEP 2
  360    P% = code%
  370    L% = code% + len%
  380    [OPT pass%
  390
  400
  410.init      EQUD   swop - code%
  420.frame     EQUD   swop - code%
  430.end       EQUD   0
  440
  450
  460.swop      STMFD  R13!,{R0-R11,R14}
  470           MOV    R0,#19           ; wait for Vsync
  480           SWI    "OS_Byte"
  490           LDR    R4,bank%         ; swop bank number
  500           RSB    R4,R4,#3
  510           STR    R4,bank%
  520           MOV    R0,#112          ; swop screen banks
  530           MOV    R1,R4
  540           SWI    "OS_Byte"
  550           MOV    R0,#113
  560           RSB    R1,R4,#3
  570           SWI    "OS_Byte"
  580
  590           ADR    R0,vduin%        ; get new screen address in R12
  600           ADR    R1,vduout%
  610           SWI    "OS_ReadVduVariables"
  620           LDR    R12,vduout%
  630
  640           MOV    R0,R12
  650           MOV    R1,#no_lines%    ; r1=number of lines to clear
  660           
  670           MOV    R2,#0            ; zeroize registors R2 to R9
  680           MOV    R3,R2
  690           MOV    R4,R2
  700           MOV    R5,R2
  710           MOV    R6,R2
  720           MOV    R7,R2
  730           MOV    R8,R2
  740           MOV    R9,R2
  750           
  760.clear     ]
  770           FOR loop% = 1 TO 10
  780             [OPT pass%
  790             
  800           STMIA  R0!,{R2-R9}      ; clear one row
  810           
  820             ]
  830           NEXT
  840           [OPT pass%
  850           
  860           SUBS   R1,R1,#1         ; see if more rows to go
  870           BNE    clear            ; if so jump to 'clear'
  880
  890           LDMFD  R13!,{R0-R11,PC} ; exit
  900
  910
  920.bank%     EQUD   1                ; bank number
  930
  940.vduin%    EQUD   148              ; for "OS_ReadVduVariables"
  950           EQUD   -1
  960
  970.vduout%   EQUD   0                ; screen address label
  980
  990
 1000
 1010    ]
 1020  NEXT
 1030ENDPROC

� >Swop

G� � ș "Hourglass_Smash":� 0,(�$+" (internal error code "+�(�)+")")
(
2�  Fixed variables :
<
F3  � When running water module : no_lines% = 170
P3  � Otherwise                 : no_lines% = 256
Z
d;  � Number of lines to be clear from top of the screen.
n6  � This should be 256 to clear all of the screen,
x=  � or 170 to clear just the top two-thirds of the screen
�3  � that are not covered by the 'Water' module.
�*  � This is just to speed the demo up.
�  no_lines% = 256
�
�
�
�module$ = "Swop"
�
�ș "Hourglass_On"
�
�assemble
�
�A�"SAVE    <Modules$Dir>."+module$+".Module "+�~code%+" "+�~P%
�4�"SETTYPE <Modules$Dir>."+module$+".Module Data"

ș "Hourglass_Off"
�
"
,
6
@� �assemble
J  len% = 1024
T  � code% len%
^  � pass% = 8 � 10 � 2
h    P% = code%
r    L% = code% + len%
|    [OPT pass%
�
�
�".init      EQUD   swop - code%
�".frame     EQUD   swop - code%
�.end       EQUD   0
�
�
�'.swop      STMFD  R13!,{R0-R11,R14}
�7           MOV    R0,#19           ; wait for Vsync
�           SWI    "OS_Byte"
�9           LDR    R4,bank%         ; swop bank number
�           RSB    R4,R4,#3
�           STR    R4,bank%
:           MOV    R0,#112          ; swop screen banks
           MOV    R1,R4
           SWI    "OS_Byte"
&           MOV    R0,#113
0           RSB    R1,R4,#3
:           SWI    "OS_Byte"
D
NF           ADR    R0,vduin%        ; get new screen address in R12
X            ADR    R1,vduout%
b+           SWI    "OS_ReadVduVariables"
l!           LDR    R12,vduout%
v
�           MOV    R0,R12
�D           MOV    R1,#no_lines%    ; r1=number of lines to clear
�           
�C           MOV    R2,#0            ; zeroize registors R2 to R9
�           MOV    R3,R2
�           MOV    R4,R2
�           MOV    R5,R2
�           MOV    R6,R2
�           MOV    R7,R2
�           MOV    R8,R2
�           MOV    R9,R2
�           
�.clear     ]
           � loop% = 1 � 10
             [OPT pass%
             
 6           STMIA  R0!,{R2-R9}      ; clear one row
*           
4             ]
>           �
H           [OPT pass%
R           
\?           SUBS   R1,R1,#1         ; see if more rows to go
f>           BNE    clear            ; if so jump to 'clear'
p
z-           LDMFD  R13!,{R0-R11,PC} ; exit
�
�
�4.bank%     EQUD   1                ; bank number
�
�B.vduin%    EQUD   148              ; for "OS_ReadVduVariables"
�           EQUD   -1
�
�=.vduout%   EQUD   0                ; screen address label
�
�
�
�	    ]
�  �
�
�
00000000  0d 00 0a 0b f4 20 3e 53  77 6f 70 0d 00 14 04 0d  |..... >Swop.....|
00000010  00 1e 47 ee 20 85 20 c8  99 20 22 48 6f 75 72 67  |..G. . .. "Hourg|
00000020  6c 61 73 73 5f 53 6d 61  73 68 22 3a 85 20 30 2c  |lass_Smash":. 0,|
00000030  28 f6 24 2b 22 20 28 69  6e 74 65 72 6e 61 6c 20  |(.$+" (internal |
00000040  65 72 72 6f 72 20 63 6f  64 65 20 22 2b c3 28 9e  |error code "+.(.|
00000050  29 2b 22 29 22 29 0d 00  28 04 0d 00 32 18 f4 20  |)+")")..(...2.. |
00000060  20 46 69 78 65 64 20 76  61 72 69 61 62 6c 65 73  | Fixed variables|
00000070  20 3a 0d 00 3c 04 0d 00  46 33 20 20 f4 20 57 68  | :..<...F3  . Wh|
00000080  65 6e 20 72 75 6e 6e 69  6e 67 20 77 61 74 65 72  |en running water|
00000090  20 6d 6f 64 75 6c 65 20  3a 20 6e 6f 5f 6c 69 6e  | module : no_lin|
000000a0  65 73 25 20 3d 20 31 37  30 0d 00 50 33 20 20 f4  |es% = 170..P3  .|
000000b0  20 4f 74 68 65 72 77 69  73 65 20 20 20 20 20 20  | Otherwise      |
000000c0  20 20 20 20 20 20 20 20  20 20 20 3a 20 6e 6f 5f  |           : no_|
000000d0  6c 69 6e 65 73 25 20 3d  20 32 35 36 0d 00 5a 04  |lines% = 256..Z.|
000000e0  0d 00 64 3b 20 20 f4 20  4e 75 6d 62 65 72 20 6f  |..d;  . Number o|
000000f0  66 20 6c 69 6e 65 73 20  74 6f 20 62 65 20 63 6c  |f lines to be cl|
00000100  65 61 72 20 66 72 6f 6d  20 74 6f 70 20 6f 66 20  |ear from top of |
00000110  74 68 65 20 73 63 72 65  65 6e 2e 0d 00 6e 36 20  |the screen...n6 |
00000120  20 f4 20 54 68 69 73 20  73 68 6f 75 6c 64 20 62  | . This should b|
00000130  65 20 32 35 36 20 74 6f  20 63 6c 65 61 72 20 61  |e 256 to clear a|
00000140  6c 6c 20 6f 66 20 74 68  65 20 73 63 72 65 65 6e  |ll of the screen|
00000150  2c 0d 00 78 3d 20 20 f4  20 6f 72 20 31 37 30 20  |,..x=  . or 170 |
00000160  74 6f 20 63 6c 65 61 72  20 6a 75 73 74 20 74 68  |to clear just th|
00000170  65 20 74 6f 70 20 74 77  6f 2d 74 68 69 72 64 73  |e top two-thirds|
00000180  20 6f 66 20 74 68 65 20  73 63 72 65 65 6e 0d 00  | of the screen..|
00000190  82 33 20 20 f4 20 74 68  61 74 20 61 72 65 20 6e  |.3  . that are n|
000001a0  6f 74 20 63 6f 76 65 72  65 64 20 62 79 20 74 68  |ot covered by th|
000001b0  65 20 27 57 61 74 65 72  27 20 6d 6f 64 75 6c 65  |e 'Water' module|
000001c0  2e 0d 00 8c 2a 20 20 f4  20 54 68 69 73 20 69 73  |....*  . This is|
000001d0  20 6a 75 73 74 20 74 6f  20 73 70 65 65 64 20 74  | just to speed t|
000001e0  68 65 20 64 65 6d 6f 20  75 70 2e 0d 00 96 15 20  |he demo up..... |
000001f0  20 6e 6f 5f 6c 69 6e 65  73 25 20 3d 20 32 35 36  | no_lines% = 256|
00000200  0d 00 a0 04 0d 00 aa 04  0d 00 b4 04 0d 00 be 14  |................|
00000210  6d 6f 64 75 6c 65 24 20  3d 20 22 53 77 6f 70 22  |module$ = "Swop"|
00000220  0d 00 c8 04 0d 00 d2 15  c8 99 20 22 48 6f 75 72  |.......... "Hour|
00000230  67 6c 61 73 73 5f 4f 6e  22 0d 00 dc 0d f2 61 73  |glass_On".....as|
00000240  73 65 6d 62 6c 65 0d 00  e6 04 0d 00 f0 41 ff 22  |semble.......A."|
00000250  53 41 56 45 20 20 20 20  3c 4d 6f 64 75 6c 65 73  |SAVE    <Modules|
00000260  24 44 69 72 3e 2e 22 2b  6d 6f 64 75 6c 65 24 2b  |$Dir>."+module$+|
00000270  22 2e 4d 6f 64 75 6c 65  20 22 2b c3 7e 63 6f 64  |".Module "+.~cod|
00000280  65 25 2b 22 20 22 2b c3  7e 50 25 0d 00 fa 34 ff  |e%+" "+.~P%...4.|
00000290  22 53 45 54 54 59 50 45  20 3c 4d 6f 64 75 6c 65  |"SETTYPE <Module|
000002a0  73 24 44 69 72 3e 2e 22  2b 6d 6f 64 75 6c 65 24  |s$Dir>."+module$|
000002b0  2b 22 2e 4d 6f 64 75 6c  65 20 44 61 74 61 22 0d  |+".Module Data".|
000002c0  01 04 04 0d 01 0e 16 c8  99 20 22 48 6f 75 72 67  |......... "Hourg|
000002d0  6c 61 73 73 5f 4f 66 66  22 0d 01 18 05 e0 0d 01  |lass_Off".......|
000002e0  22 04 0d 01 2c 04 0d 01  36 04 0d 01 40 0f dd 20  |"...,...6...@.. |
000002f0  f2 61 73 73 65 6d 62 6c  65 0d 01 4a 11 20 20 6c  |.assemble..J.  l|
00000300  65 6e 25 20 3d 20 31 30  32 34 0d 01 54 12 20 20  |en% = 1024..T.  |
00000310  de 20 63 6f 64 65 25 20  6c 65 6e 25 0d 01 5e 1a  |. code% len%..^.|
00000320  20 20 e3 20 70 61 73 73  25 20 3d 20 38 20 b8 20  |  . pass% = 8 . |
00000330  31 30 20 88 20 32 0d 01  68 12 20 20 20 20 50 25  |10 . 2..h.    P%|
00000340  20 3d 20 63 6f 64 65 25  0d 01 72 19 20 20 20 20  | = code%..r.    |
00000350  4c 25 20 3d 20 63 6f 64  65 25 20 2b 20 6c 65 6e  |L% = code% + len|
00000360  25 0d 01 7c 12 20 20 20  20 5b 4f 50 54 20 70 61  |%..|.    [OPT pa|
00000370  73 73 25 0d 01 86 04 0d  01 90 04 0d 01 9a 22 2e  |ss%...........".|
00000380  69 6e 69 74 20 20 20 20  20 20 45 51 55 44 20 20  |init      EQUD  |
00000390  20 73 77 6f 70 20 2d 20  63 6f 64 65 25 0d 01 a4  | swop - code%...|
000003a0  22 2e 66 72 61 6d 65 20  20 20 20 20 45 51 55 44  |".frame     EQUD|
000003b0  20 20 20 73 77 6f 70 20  2d 20 63 6f 64 65 25 0d  |   swop - code%.|
000003c0  01 ae 17 2e 65 6e 64 20  20 20 20 20 20 20 45 51  |....end       EQ|
000003d0  55 44 20 20 20 30 0d 01  b8 04 0d 01 c2 04 0d 01  |UD   0..........|
000003e0  cc 27 2e 73 77 6f 70 20  20 20 20 20 20 53 54 4d  |.'.swop      STM|
000003f0  46 44 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 31  |FD  R13!,{R0-R11|
00000400  2c 52 31 34 7d 0d 01 d6  37 20 20 20 20 20 20 20  |,R14}...7       |
00000410  20 20 20 20 4d 4f 56 20  20 20 20 52 30 2c 23 31  |    MOV    R0,#1|
00000420  39 20 20 20 20 20 20 20  20 20 20 20 3b 20 77 61  |9           ; wa|
00000430  69 74 20 66 6f 72 20 56  73 79 6e 63 0d 01 e0 1f  |it for Vsync....|
00000440  20 20 20 20 20 20 20 20  20 20 20 53 57 49 20 20  |           SWI  |
00000450  20 20 22 4f 53 5f 42 79  74 65 22 0d 01 ea 39 20  |  "OS_Byte"...9 |
00000460  20 20 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |          LDR   |
00000470  20 52 34 2c 62 61 6e 6b  25 20 20 20 20 20 20 20  | R4,bank%       |
00000480  20 20 3b 20 73 77 6f 70  20 62 61 6e 6b 20 6e 75  |  ; swop bank nu|
00000490  6d 62 65 72 0d 01 f4 1e  20 20 20 20 20 20 20 20  |mber....        |
000004a0  20 20 20 52 53 42 20 20  20 20 52 34 2c 52 34 2c  |   RSB    R4,R4,|
000004b0  23 33 0d 01 fe 1e 20 20  20 20 20 20 20 20 20 20  |#3....          |
000004c0  20 53 54 52 20 20 20 20  52 34 2c 62 61 6e 6b 25  | STR    R4,bank%|
000004d0  0d 02 08 3a 20 20 20 20  20 20 20 20 20 20 20 4d  |...:           M|
000004e0  4f 56 20 20 20 20 52 30  2c 23 31 31 32 20 20 20  |OV    R0,#112   |
000004f0  20 20 20 20 20 20 20 3b  20 73 77 6f 70 20 73 63  |       ; swop sc|
00000500  72 65 65 6e 20 62 61 6e  6b 73 0d 02 12 1b 20 20  |reen banks....  |
00000510  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
00000520  52 31 2c 52 34 0d 02 1c  1f 20 20 20 20 20 20 20  |R1,R4....       |
00000530  20 20 20 20 53 57 49 20  20 20 20 22 4f 53 5f 42  |    SWI    "OS_B|
00000540  79 74 65 22 0d 02 26 1d  20 20 20 20 20 20 20 20  |yte"..&.        |
00000550  20 20 20 4d 4f 56 20 20  20 20 52 30 2c 23 31 31  |   MOV    R0,#11|
00000560  33 0d 02 30 1e 20 20 20  20 20 20 20 20 20 20 20  |3..0.           |
00000570  52 53 42 20 20 20 20 52  31 2c 52 34 2c 23 33 0d  |RSB    R1,R4,#3.|
00000580  02 3a 1f 20 20 20 20 20  20 20 20 20 20 20 53 57  |.:.           SW|
00000590  49 20 20 20 20 22 4f 53  5f 42 79 74 65 22 0d 02  |I    "OS_Byte"..|
000005a0  44 04 0d 02 4e 46 20 20  20 20 20 20 20 20 20 20  |D...NF          |
000005b0  20 41 44 52 20 20 20 20  52 30 2c 76 64 75 69 6e  | ADR    R0,vduin|
000005c0  25 20 20 20 20 20 20 20  20 3b 20 67 65 74 20 6e  |%        ; get n|
000005d0  65 77 20 73 63 72 65 65  6e 20 61 64 64 72 65 73  |ew screen addres|
000005e0  73 20 69 6e 20 52 31 32  0d 02 58 20 20 20 20 20  |s in R12..X     |
000005f0  20 20 20 20 20 20 20 41  44 52 20 20 20 20 52 31  |       ADR    R1|
00000600  2c 76 64 75 6f 75 74 25  0d 02 62 2b 20 20 20 20  |,vduout%..b+    |
00000610  20 20 20 20 20 20 20 53  57 49 20 20 20 20 22 4f  |       SWI    "O|
00000620  53 5f 52 65 61 64 56 64  75 56 61 72 69 61 62 6c  |S_ReadVduVariabl|
00000630  65 73 22 0d 02 6c 21 20  20 20 20 20 20 20 20 20  |es"..l!         |
00000640  20 20 4c 44 52 20 20 20  20 52 31 32 2c 76 64 75  |  LDR    R12,vdu|
00000650  6f 75 74 25 0d 02 76 04  0d 02 80 1c 20 20 20 20  |out%..v.....    |
00000660  20 20 20 20 20 20 20 4d  4f 56 20 20 20 20 52 30  |       MOV    R0|
00000670  2c 52 31 32 0d 02 8a 44  20 20 20 20 20 20 20 20  |,R12...D        |
00000680  20 20 20 4d 4f 56 20 20  20 20 52 31 2c 23 6e 6f  |   MOV    R1,#no|
00000690  5f 6c 69 6e 65 73 25 20  20 20 20 3b 20 72 31 3d  |_lines%    ; r1=|
000006a0  6e 75 6d 62 65 72 20 6f  66 20 6c 69 6e 65 73 20  |number of lines |
000006b0  74 6f 20 63 6c 65 61 72  0d 02 94 0f 20 20 20 20  |to clear....    |
000006c0  20 20 20 20 20 20 20 0d  02 9e 43 20 20 20 20 20  |       ...C     |
000006d0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 52 32 2c  |      MOV    R2,|
000006e0  23 30 20 20 20 20 20 20  20 20 20 20 20 20 3b 20  |#0            ; |
000006f0  7a 65 72 6f 69 7a 65 20  72 65 67 69 73 74 6f 72  |zeroize registor|
00000700  73 20 52 32 20 74 6f 20  52 39 0d 02 a8 1b 20 20  |s R2 to R9....  |
00000710  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
00000720  52 33 2c 52 32 0d 02 b2  1b 20 20 20 20 20 20 20  |R3,R2....       |
00000730  20 20 20 20 4d 4f 56 20  20 20 20 52 34 2c 52 32  |    MOV    R4,R2|
00000740  0d 02 bc 1b 20 20 20 20  20 20 20 20 20 20 20 4d  |....           M|
00000750  4f 56 20 20 20 20 52 35  2c 52 32 0d 02 c6 1b 20  |OV    R5,R2.... |
00000760  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00000770  20 52 36 2c 52 32 0d 02  d0 1b 20 20 20 20 20 20  | R6,R2....      |
00000780  20 20 20 20 20 4d 4f 56  20 20 20 20 52 37 2c 52  |     MOV    R7,R|
00000790  32 0d 02 da 1b 20 20 20  20 20 20 20 20 20 20 20  |2....           |
000007a0  4d 4f 56 20 20 20 20 52  38 2c 52 32 0d 02 e4 1b  |MOV    R8,R2....|
000007b0  20 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |           MOV  |
000007c0  20 20 52 39 2c 52 32 0d  02 ee 0f 20 20 20 20 20  |  R9,R2....     |
000007d0  20 20 20 20 20 20 0d 02  f8 10 2e 63 6c 65 61 72  |      .....clear|
000007e0  20 20 20 20 20 5d 0d 03  02 1f 20 20 20 20 20 20  |     ]....      |
000007f0  20 20 20 20 20 e3 20 6c  6f 6f 70 25 20 3d 20 31  |     . loop% = 1|
00000800  20 b8 20 31 30 0d 03 0c  1b 20 20 20 20 20 20 20  | . 10....       |
00000810  20 20 20 20 20 20 5b 4f  50 54 20 70 61 73 73 25  |      [OPT pass%|
00000820  0d 03 16 11 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00000830  20 0d 03 20 36 20 20 20  20 20 20 20 20 20 20 20  | .. 6           |
00000840  53 54 4d 49 41 20 20 52  30 21 2c 7b 52 32 2d 52  |STMIA  R0!,{R2-R|
00000850  39 7d 20 20 20 20 20 20  3b 20 63 6c 65 61 72 20  |9}      ; clear |
00000860  6f 6e 65 20 72 6f 77 0d  03 2a 0f 20 20 20 20 20  |one row..*.     |
00000870  20 20 20 20 20 20 0d 03  34 12 20 20 20 20 20 20  |      ..4.      |
00000880  20 20 20 20 20 20 20 5d  0d 03 3e 10 20 20 20 20  |       ]..>.    |
00000890  20 20 20 20 20 20 20 ed  0d 03 48 19 20 20 20 20  |       ...H.    |
000008a0  20 20 20 20 20 20 20 5b  4f 50 54 20 70 61 73 73  |       [OPT pass|
000008b0  25 0d 03 52 0f 20 20 20  20 20 20 20 20 20 20 20  |%..R.           |
000008c0  0d 03 5c 3f 20 20 20 20  20 20 20 20 20 20 20 53  |..\?           S|
000008d0  55 42 53 20 20 20 52 31  2c 52 31 2c 23 31 20 20  |UBS   R1,R1,#1  |
000008e0  20 20 20 20 20 20 20 3b  20 73 65 65 20 69 66 20  |       ; see if |
000008f0  6d 6f 72 65 20 72 6f 77  73 20 74 6f 20 67 6f 0d  |more rows to go.|
00000900  03 66 3e 20 20 20 20 20  20 20 20 20 20 20 42 4e  |.f>           BN|
00000910  45 20 20 20 20 63 6c 65  61 72 20 20 20 20 20 20  |E    clear      |
00000920  20 20 20 20 20 20 3b 20  69 66 20 73 6f 20 6a 75  |      ; if so ju|
00000930  6d 70 20 74 6f 20 27 63  6c 65 61 72 27 0d 03 70  |mp to 'clear'..p|
00000940  04 0d 03 7a 2d 20 20 20  20 20 20 20 20 20 20 20  |...z-           |
00000950  4c 44 4d 46 44 20 20 52  31 33 21 2c 7b 52 30 2d  |LDMFD  R13!,{R0-|
00000960  52 31 31 2c 50 43 7d 20  3b 20 65 78 69 74 0d 03  |R11,PC} ; exit..|
00000970  84 04 0d 03 8e 04 0d 03  98 34 2e 62 61 6e 6b 25  |.........4.bank%|
00000980  20 20 20 20 20 45 51 55  44 20 20 20 31 20 20 20  |     EQUD   1   |
00000990  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 62  |             ; b|
000009a0  61 6e 6b 20 6e 75 6d 62  65 72 0d 03 a2 04 0d 03  |ank number......|
000009b0  ac 42 2e 76 64 75 69 6e  25 20 20 20 20 45 51 55  |.B.vduin%    EQU|
000009c0  44 20 20 20 31 34 38 20  20 20 20 20 20 20 20 20  |D   148         |
000009d0  20 20 20 20 20 3b 20 66  6f 72 20 22 4f 53 5f 52  |     ; for "OS_R|
000009e0  65 61 64 56 64 75 56 61  72 69 61 62 6c 65 73 22  |eadVduVariables"|
000009f0  0d 03 b6 18 20 20 20 20  20 20 20 20 20 20 20 45  |....           E|
00000a00  51 55 44 20 20 20 2d 31  0d 03 c0 04 0d 03 ca 3d  |QUD   -1.......=|
00000a10  2e 76 64 75 6f 75 74 25  20 20 20 45 51 55 44 20  |.vduout%   EQUD |
00000a20  20 20 30 20 20 20 20 20  20 20 20 20 20 20 20 20  |  0             |
00000a30  20 20 20 3b 20 73 63 72  65 65 6e 20 61 64 64 72  |   ; screen addr|
00000a40  65 73 73 20 6c 61 62 65  6c 0d 03 d4 04 0d 03 de  |ess label.......|
00000a50  04 0d 03 e8 04 0d 03 f2  09 20 20 20 20 5d 0d 03  |.........    ]..|
00000a60  fc 07 20 20 ed 0d 04 06  05 e1 0d ff              |..  ........|
00000a6c