Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Regulars_2 » StarInfo/Clifford/!Macros/MacroCode/s/WdogSrc

StarInfo/Clifford/!Macros/MacroCode/s/WdogSrc

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-12 B.adf » Regulars_2
Filename: StarInfo/Clifford/!Macros/MacroCode/s/WdogSrc
Read OK:
File size: 08EA bytes
Load address: 0000
Exec address: 0000
File contents
   10DIM code% &1000
   20
   30FOR pass%=%1000 TO %1010 STEP 2
   40P%=code%:L%=code%+&1000
   50[   opt     pass%
   60    equs    "MCDE"
   70    equd    name - code%
   71    equd    description - code%
   80    equd    0
   81    equd    0
   90    equd    key_code - code%
  120
  130.name
  140    equs    "Watchdog"
  150    equb    0
  160
  170.description
  180    equs    "Watchdog"
  190    equb    9
  200    equs    "0.05 (21 May 1996)"
  210    equb    0
  220    align
  230
  240.key_code
  250    stmfd   r13!, {r14}
  260    ldr     r0, semaphore
  270    cmp     r0, #1
  280    ldmeqfd r13!, {pc}^
  290    mov     r0, #1
  300    str     r0, semaphore
  310    mov     r0, #3
  320    swi     "XWimp_ReadSysInfo"
  330    bvs     exit
  340    cmp     r0, #1
  350    bne     exit
  360    mov     r0, #5
  370    swi     "XWimp_ReadSysInfo"
  380    bvs     exit
  390    cmp     r0, #0
  400    beq     exit
  410    swi     "XTaskManager_TaskNameFromHandle"
  420    bvs     exit
  430    adr     r1, error_block_name
  440.copy_task_name
  450    ldrb    r2, [r0], #1
  460    cmp     r2, #32
  470    movlt   r2, #0
  480    strb    r2, [r1], #1
  490    bge     copy_task_name
  500    mov     r0, #124
  510    swi     "XOS_Byte"
  520    adr     r0, error_block
  530    mov     r1, #%10011
  540    adr     r2, title
  550    swi     "XWimp_ReportError"
  560    bvs     exit
  570    cmp     r1, #1
  580    bne     exit
  590    swi     "XWimp_CloseDown"
  600    mov     r0, #9
  610    swi     "XOS_ReadDefaultHandler"
  620    swi     "XOS_ChangeEnvironment"
  630    mov     r0, #10
  640    swi     "XOS_ReadDefaultHandler"
  650    swi     "XOS_ChangeEnvironment"
  660    adr     r0, aligned_block
  670    mov     r1, #32
  680.delink_application
  690    swi     "XOS_DelinkApplication"
  700    cmp     r1, #0
  710    beq     delink_application
  720    mov     r0, #0
  730    str     r0, semaphore
  740    swi     "OS_Exit"
  750.exit
  760    mov     r0, #0
  770    str     r0, semaphore
  780    ldmfd   r13!, {pc}^
  790
  800.semaphore
  810    equd    0
  820
  830.title
  840    equs    "Message from Watchdog"
  850    equb    0
  860    align
  870
  880.error_block
  890    equd    0
  900    equs    "Press OK to terminate "
  910.error_block_name
  920    equb    0
  930    equb    0
  940.aligned_block
  950    equs    STRING$(41, CHR$(0))
  960    align
  970]
  980NEXT
  990
 1000SYS "OS_File", 10, "Watchdog", &ffd, , code%, P%
 1010END

� code% &1000

� pass%=%1000 � %1010 � 2
(P%=code%:L%=code%+&1000
2[   opt     pass%
<    equs    "MCDE"
F    equd    name - code%
G#    equd    description - code%
P    equd    0
Q    equd    0
Z     equd    key_code - code%
x
�	.name
�    equs    "Watchdog"
�    equb    0
�
�.description
�    equs    "Watchdog"
�    equb    9
�$    equs    "0.05 (21 May 1996)"
�    equb    0
�
    align
�
�
.key_code
�    stmfd   r13!, {r14}
    ldr     r0, semaphore
    cmp     r0, #1
    ldmeqfd r13!, {pc}^
"    mov     r0, #1
,    str     r0, semaphore
6    mov     r0, #3
@#    swi     "XWimp_ReadSysInfo"
J    bvs     exit
T    cmp     r0, #1
^    bne     exit
h    mov     r0, #5
r#    swi     "XWimp_ReadSysInfo"
|    bvs     exit
�    cmp     r0, #0
�    beq     exit
�1    swi     "XTaskManager_TaskNameFromHandle"
�    bvs     exit
�$    adr     r1, error_block_name
�.copy_task_name
�    ldrb    r2, [r0], #1
�    cmp     r2, #32
�    movlt   r2, #0
�    strb    r2, [r1], #1
�    bge     copy_task_name
�    mov     r0, #124
�    swi     "XOS_Byte"
    adr     r0, error_block
    mov     r1, #%10011
    adr     r2, title
&#    swi     "XWimp_ReportError"
0    bvs     exit
:    cmp     r1, #1
D    bne     exit
N!    swi     "XWimp_CloseDown"
X    mov     r0, #9
b(    swi     "XOS_ReadDefaultHandler"
l'    swi     "XOS_ChangeEnvironment"
v    mov     r0, #10
�(    swi     "XOS_ReadDefaultHandler"
�'    swi     "XOS_ChangeEnvironment"
�!    adr     r0, aligned_block
�    mov     r1, #32
�.delink_application
�'    swi     "XOS_DelinkApplication"
�    cmp     r1, #0
�"    beq     delink_application
�    mov     r0, #0
�    str     r0, semaphore
�    swi     "OS_Exit"
�	.exit
�    mov     r0, #0
    str     r0, semaphore
    ldmfd   r13!, {pc}^

 .semaphore
*    equd    0
4
>
.title
H'    equs    "Message from Watchdog"
R    equb    0
\
    align
f
p.error_block
z    equd    0
�(    equs    "Press OK to terminate "
�.error_block_name
�    equb    0
�    equb    0
�.aligned_block
�    equs    �41, �(0))
�
    align
�]
��
�
�3ș "OS_File", 10, "Watchdog", &ffd, , code%, P%
��
�
00000000  0d 00 0a 11 de 20 63 6f  64 65 25 20 26 31 30 30  |..... code% &100|
00000010  30 0d 00 14 04 0d 00 1e  1d e3 20 70 61 73 73 25  |0......... pass%|
00000020  3d 25 31 30 30 30 20 b8  20 25 31 30 31 30 20 88  |=%1000 . %1010 .|
00000030  20 32 0d 00 28 1b 50 25  3d 63 6f 64 65 25 3a 4c  | 2..(.P%=code%:L|
00000040  25 3d 63 6f 64 65 25 2b  26 31 30 30 30 0d 00 32  |%=code%+&1000..2|
00000050  15 5b 20 20 20 6f 70 74  20 20 20 20 20 70 61 73  |.[   opt     pas|
00000060  73 25 0d 00 3c 16 20 20  20 20 65 71 75 73 20 20  |s%..<.    equs  |
00000070  20 20 22 4d 43 44 45 22  0d 00 46 1c 20 20 20 20  |  "MCDE"..F.    |
00000080  65 71 75 64 20 20 20 20  6e 61 6d 65 20 2d 20 63  |equd    name - c|
00000090  6f 64 65 25 0d 00 47 23  20 20 20 20 65 71 75 64  |ode%..G#    equd|
000000a0  20 20 20 20 64 65 73 63  72 69 70 74 69 6f 6e 20  |    description |
000000b0  2d 20 63 6f 64 65 25 0d  00 50 11 20 20 20 20 65  |- code%..P.    e|
000000c0  71 75 64 20 20 20 20 30  0d 00 51 11 20 20 20 20  |qud    0..Q.    |
000000d0  65 71 75 64 20 20 20 20  30 0d 00 5a 20 20 20 20  |equd    0..Z    |
000000e0  20 65 71 75 64 20 20 20  20 6b 65 79 5f 63 6f 64  | equd    key_cod|
000000f0  65 20 2d 20 63 6f 64 65  25 0d 00 78 04 0d 00 82  |e - code%..x....|
00000100  09 2e 6e 61 6d 65 0d 00  8c 1a 20 20 20 20 65 71  |..name....    eq|
00000110  75 73 20 20 20 20 22 57  61 74 63 68 64 6f 67 22  |us    "Watchdog"|
00000120  0d 00 96 11 20 20 20 20  65 71 75 62 20 20 20 20  |....    equb    |
00000130  30 0d 00 a0 04 0d 00 aa  10 2e 64 65 73 63 72 69  |0.........descri|
00000140  70 74 69 6f 6e 0d 00 b4  1a 20 20 20 20 65 71 75  |ption....    equ|
00000150  73 20 20 20 20 22 57 61  74 63 68 64 6f 67 22 0d  |s    "Watchdog".|
00000160  00 be 11 20 20 20 20 65  71 75 62 20 20 20 20 39  |...    equb    9|
00000170  0d 00 c8 24 20 20 20 20  65 71 75 73 20 20 20 20  |...$    equs    |
00000180  22 30 2e 30 35 20 28 32  31 20 4d 61 79 20 31 39  |"0.05 (21 May 19|
00000190  39 36 29 22 0d 00 d2 11  20 20 20 20 65 71 75 62  |96)"....    equb|
000001a0  20 20 20 20 30 0d 00 dc  0d 20 20 20 20 61 6c 69  |    0....    ali|
000001b0  67 6e 0d 00 e6 04 0d 00  f0 0d 2e 6b 65 79 5f 63  |gn.........key_c|
000001c0  6f 64 65 0d 00 fa 1b 20  20 20 20 73 74 6d 66 64  |ode....    stmfd|
000001d0  20 20 20 72 31 33 21 2c  20 7b 72 31 34 7d 0d 01  |   r13!, {r14}..|
000001e0  04 1d 20 20 20 20 6c 64  72 20 20 20 20 20 72 30  |..    ldr     r0|
000001f0  2c 20 73 65 6d 61 70 68  6f 72 65 0d 01 0e 16 20  |, semaphore.... |
00000200  20 20 20 63 6d 70 20 20  20 20 20 72 30 2c 20 23  |   cmp     r0, #|
00000210  31 0d 01 18 1b 20 20 20  20 6c 64 6d 65 71 66 64  |1....    ldmeqfd|
00000220  20 72 31 33 21 2c 20 7b  70 63 7d 5e 0d 01 22 16  | r13!, {pc}^..".|
00000230  20 20 20 20 6d 6f 76 20  20 20 20 20 72 30 2c 20  |    mov     r0, |
00000240  23 31 0d 01 2c 1d 20 20  20 20 73 74 72 20 20 20  |#1..,.    str   |
00000250  20 20 72 30 2c 20 73 65  6d 61 70 68 6f 72 65 0d  |  r0, semaphore.|
00000260  01 36 16 20 20 20 20 6d  6f 76 20 20 20 20 20 72  |.6.    mov     r|
00000270  30 2c 20 23 33 0d 01 40  23 20 20 20 20 73 77 69  |0, #3..@#    swi|
00000280  20 20 20 20 20 22 58 57  69 6d 70 5f 52 65 61 64  |     "XWimp_Read|
00000290  53 79 73 49 6e 66 6f 22  0d 01 4a 14 20 20 20 20  |SysInfo"..J.    |
000002a0  62 76 73 20 20 20 20 20  65 78 69 74 0d 01 54 16  |bvs     exit..T.|
000002b0  20 20 20 20 63 6d 70 20  20 20 20 20 72 30 2c 20  |    cmp     r0, |
000002c0  23 31 0d 01 5e 14 20 20  20 20 62 6e 65 20 20 20  |#1..^.    bne   |
000002d0  20 20 65 78 69 74 0d 01  68 16 20 20 20 20 6d 6f  |  exit..h.    mo|
000002e0  76 20 20 20 20 20 72 30  2c 20 23 35 0d 01 72 23  |v     r0, #5..r#|
000002f0  20 20 20 20 73 77 69 20  20 20 20 20 22 58 57 69  |    swi     "XWi|
00000300  6d 70 5f 52 65 61 64 53  79 73 49 6e 66 6f 22 0d  |mp_ReadSysInfo".|
00000310  01 7c 14 20 20 20 20 62  76 73 20 20 20 20 20 65  |.|.    bvs     e|
00000320  78 69 74 0d 01 86 16 20  20 20 20 63 6d 70 20 20  |xit....    cmp  |
00000330  20 20 20 72 30 2c 20 23  30 0d 01 90 14 20 20 20  |   r0, #0....   |
00000340  20 62 65 71 20 20 20 20  20 65 78 69 74 0d 01 9a  | beq     exit...|
00000350  31 20 20 20 20 73 77 69  20 20 20 20 20 22 58 54  |1    swi     "XT|
00000360  61 73 6b 4d 61 6e 61 67  65 72 5f 54 61 73 6b 4e  |askManager_TaskN|
00000370  61 6d 65 46 72 6f 6d 48  61 6e 64 6c 65 22 0d 01  |ameFromHandle"..|
00000380  a4 14 20 20 20 20 62 76  73 20 20 20 20 20 65 78  |..    bvs     ex|
00000390  69 74 0d 01 ae 24 20 20  20 20 61 64 72 20 20 20  |it...$    adr   |
000003a0  20 20 72 31 2c 20 65 72  72 6f 72 5f 62 6c 6f 63  |  r1, error_bloc|
000003b0  6b 5f 6e 61 6d 65 0d 01  b8 13 2e 63 6f 70 79 5f  |k_name.....copy_|
000003c0  74 61 73 6b 5f 6e 61 6d  65 0d 01 c2 1c 20 20 20  |task_name....   |
000003d0  20 6c 64 72 62 20 20 20  20 72 32 2c 20 5b 72 30  | ldrb    r2, [r0|
000003e0  5d 2c 20 23 31 0d 01 cc  17 20 20 20 20 63 6d 70  |], #1....    cmp|
000003f0  20 20 20 20 20 72 32 2c  20 23 33 32 0d 01 d6 16  |     r2, #32....|
00000400  20 20 20 20 6d 6f 76 6c  74 20 20 20 72 32 2c 20  |    movlt   r2, |
00000410  23 30 0d 01 e0 1c 20 20  20 20 73 74 72 62 20 20  |#0....    strb  |
00000420  20 20 72 32 2c 20 5b 72  31 5d 2c 20 23 31 0d 01  |  r2, [r1], #1..|
00000430  ea 1e 20 20 20 20 62 67  65 20 20 20 20 20 63 6f  |..    bge     co|
00000440  70 79 5f 74 61 73 6b 5f  6e 61 6d 65 0d 01 f4 18  |py_task_name....|
00000450  20 20 20 20 6d 6f 76 20  20 20 20 20 72 30 2c 20  |    mov     r0, |
00000460  23 31 32 34 0d 01 fe 1a  20 20 20 20 73 77 69 20  |#124....    swi |
00000470  20 20 20 20 22 58 4f 53  5f 42 79 74 65 22 0d 02  |    "XOS_Byte"..|
00000480  08 1f 20 20 20 20 61 64  72 20 20 20 20 20 72 30  |..    adr     r0|
00000490  2c 20 65 72 72 6f 72 5f  62 6c 6f 63 6b 0d 02 12  |, error_block...|
000004a0  1b 20 20 20 20 6d 6f 76  20 20 20 20 20 72 31 2c  |.    mov     r1,|
000004b0  20 23 25 31 30 30 31 31  0d 02 1c 19 20 20 20 20  | #%10011....    |
000004c0  61 64 72 20 20 20 20 20  72 32 2c 20 74 69 74 6c  |adr     r2, titl|
000004d0  65 0d 02 26 23 20 20 20  20 73 77 69 20 20 20 20  |e..&#    swi    |
000004e0  20 22 58 57 69 6d 70 5f  52 65 70 6f 72 74 45 72  | "XWimp_ReportEr|
000004f0  72 6f 72 22 0d 02 30 14  20 20 20 20 62 76 73 20  |ror"..0.    bvs |
00000500  20 20 20 20 65 78 69 74  0d 02 3a 16 20 20 20 20  |    exit..:.    |
00000510  63 6d 70 20 20 20 20 20  72 31 2c 20 23 31 0d 02  |cmp     r1, #1..|
00000520  44 14 20 20 20 20 62 6e  65 20 20 20 20 20 65 78  |D.    bne     ex|
00000530  69 74 0d 02 4e 21 20 20  20 20 73 77 69 20 20 20  |it..N!    swi   |
00000540  20 20 22 58 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |  "XWimp_CloseDo|
00000550  77 6e 22 0d 02 58 16 20  20 20 20 6d 6f 76 20 20  |wn"..X.    mov  |
00000560  20 20 20 72 30 2c 20 23  39 0d 02 62 28 20 20 20  |   r0, #9..b(   |
00000570  20 73 77 69 20 20 20 20  20 22 58 4f 53 5f 52 65  | swi     "XOS_Re|
00000580  61 64 44 65 66 61 75 6c  74 48 61 6e 64 6c 65 72  |adDefaultHandler|
00000590  22 0d 02 6c 27 20 20 20  20 73 77 69 20 20 20 20  |"..l'    swi    |
000005a0  20 22 58 4f 53 5f 43 68  61 6e 67 65 45 6e 76 69  | "XOS_ChangeEnvi|
000005b0  72 6f 6e 6d 65 6e 74 22  0d 02 76 17 20 20 20 20  |ronment"..v.    |
000005c0  6d 6f 76 20 20 20 20 20  72 30 2c 20 23 31 30 0d  |mov     r0, #10.|
000005d0  02 80 28 20 20 20 20 73  77 69 20 20 20 20 20 22  |..(    swi     "|
000005e0  58 4f 53 5f 52 65 61 64  44 65 66 61 75 6c 74 48  |XOS_ReadDefaultH|
000005f0  61 6e 64 6c 65 72 22 0d  02 8a 27 20 20 20 20 73  |andler"...'    s|
00000600  77 69 20 20 20 20 20 22  58 4f 53 5f 43 68 61 6e  |wi     "XOS_Chan|
00000610  67 65 45 6e 76 69 72 6f  6e 6d 65 6e 74 22 0d 02  |geEnvironment"..|
00000620  94 21 20 20 20 20 61 64  72 20 20 20 20 20 72 30  |.!    adr     r0|
00000630  2c 20 61 6c 69 67 6e 65  64 5f 62 6c 6f 63 6b 0d  |, aligned_block.|
00000640  02 9e 17 20 20 20 20 6d  6f 76 20 20 20 20 20 72  |...    mov     r|
00000650  31 2c 20 23 33 32 0d 02  a8 17 2e 64 65 6c 69 6e  |1, #32.....delin|
00000660  6b 5f 61 70 70 6c 69 63  61 74 69 6f 6e 0d 02 b2  |k_application...|
00000670  27 20 20 20 20 73 77 69  20 20 20 20 20 22 58 4f  |'    swi     "XO|
00000680  53 5f 44 65 6c 69 6e 6b  41 70 70 6c 69 63 61 74  |S_DelinkApplicat|
00000690  69 6f 6e 22 0d 02 bc 16  20 20 20 20 63 6d 70 20  |ion"....    cmp |
000006a0  20 20 20 20 72 31 2c 20  23 30 0d 02 c6 22 20 20  |    r1, #0..."  |
000006b0  20 20 62 65 71 20 20 20  20 20 64 65 6c 69 6e 6b  |  beq     delink|
000006c0  5f 61 70 70 6c 69 63 61  74 69 6f 6e 0d 02 d0 16  |_application....|
000006d0  20 20 20 20 6d 6f 76 20  20 20 20 20 72 30 2c 20  |    mov     r0, |
000006e0  23 30 0d 02 da 1d 20 20  20 20 73 74 72 20 20 20  |#0....    str   |
000006f0  20 20 72 30 2c 20 73 65  6d 61 70 68 6f 72 65 0d  |  r0, semaphore.|
00000700  02 e4 19 20 20 20 20 73  77 69 20 20 20 20 20 22  |...    swi     "|
00000710  4f 53 5f 45 78 69 74 22  0d 02 ee 09 2e 65 78 69  |OS_Exit".....exi|
00000720  74 0d 02 f8 16 20 20 20  20 6d 6f 76 20 20 20 20  |t....    mov    |
00000730  20 72 30 2c 20 23 30 0d  03 02 1d 20 20 20 20 73  | r0, #0....    s|
00000740  74 72 20 20 20 20 20 72  30 2c 20 73 65 6d 61 70  |tr     r0, semap|
00000750  68 6f 72 65 0d 03 0c 1b  20 20 20 20 6c 64 6d 66  |hore....    ldmf|
00000760  64 20 20 20 72 31 33 21  2c 20 7b 70 63 7d 5e 0d  |d   r13!, {pc}^.|
00000770  03 16 04 0d 03 20 0e 2e  73 65 6d 61 70 68 6f 72  |..... ..semaphor|
00000780  65 0d 03 2a 11 20 20 20  20 65 71 75 64 20 20 20  |e..*.    equd   |
00000790  20 30 0d 03 34 04 0d 03  3e 0a 2e 74 69 74 6c 65  | 0..4...>..title|
000007a0  0d 03 48 27 20 20 20 20  65 71 75 73 20 20 20 20  |..H'    equs    |
000007b0  22 4d 65 73 73 61 67 65  20 66 72 6f 6d 20 57 61  |"Message from Wa|
000007c0  74 63 68 64 6f 67 22 0d  03 52 11 20 20 20 20 65  |tchdog"..R.    e|
000007d0  71 75 62 20 20 20 20 30  0d 03 5c 0d 20 20 20 20  |qub    0..\.    |
000007e0  61 6c 69 67 6e 0d 03 66  04 0d 03 70 10 2e 65 72  |align..f...p..er|
000007f0  72 6f 72 5f 62 6c 6f 63  6b 0d 03 7a 11 20 20 20  |ror_block..z.   |
00000800  20 65 71 75 64 20 20 20  20 30 0d 03 84 28 20 20  | equd    0...(  |
00000810  20 20 65 71 75 73 20 20  20 20 22 50 72 65 73 73  |  equs    "Press|
00000820  20 4f 4b 20 74 6f 20 74  65 72 6d 69 6e 61 74 65  | OK to terminate|
00000830  20 22 0d 03 8e 15 2e 65  72 72 6f 72 5f 62 6c 6f  | ".....error_blo|
00000840  63 6b 5f 6e 61 6d 65 0d  03 98 11 20 20 20 20 65  |ck_name....    e|
00000850  71 75 62 20 20 20 20 30  0d 03 a2 11 20 20 20 20  |qub    0....    |
00000860  65 71 75 62 20 20 20 20  30 0d 03 ac 12 2e 61 6c  |equb    0.....al|
00000870  69 67 6e 65 64 5f 62 6c  6f 63 6b 0d 03 b6 1a 20  |igned_block.... |
00000880  20 20 20 65 71 75 73 20  20 20 20 c4 34 31 2c 20  |   equs    .41, |
00000890  bd 28 30 29 29 0d 03 c0  0d 20 20 20 20 61 6c 69  |.(0))....    ali|
000008a0  67 6e 0d 03 ca 05 5d 0d  03 d4 05 ed 0d 03 de 04  |gn....].........|
000008b0  0d 03 e8 33 c8 99 20 22  4f 53 5f 46 69 6c 65 22  |...3.. "OS_File"|
000008c0  2c 20 31 30 2c 20 22 57  61 74 63 68 64 6f 67 22  |, 10, "Watchdog"|
000008d0  2c 20 26 66 66 64 2c 20  2c 20 63 6f 64 65 25 2c  |, &ffd, , code%,|
000008e0  20 50 25 0d 03 f2 05 e0  0d ff                    | P%.......|
000008ea