Home » Archimedes archive » Acorn User » AU 1998-04 A.adf » PD » Avison/!TaskUsage/TestProgs/PollAsm
Avison/!TaskUsage/TestProgs/PollAsm
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 1998-04 A.adf » PD |
Filename: | Avison/!TaskUsage/TestProgs/PollAsm |
Read OK: | ✔ |
File size: | 0375 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM Wimp Poll in a tight Assembler loop if Null Reason Code 20 30kb%=64 :REM set to kb for SlotSize 40 50END = 1024 * kb% 60 70DIM T% 4 80$T% ="TASK" 90 100PROCassemble 110 120SYS "Wimp_Initialise",300 ,!T% ,"WimpPoll ASM",0 TO ,task% 130CALL poll 140SYS "Wimp_CloseDown",task% 150 160END 170 180DEF PROCassemble 190DIM code% 300 200FOR opt = 0 TO 2 STEP 2 210P% = code% 220[OPT opt 230.poll 240STMFD r13!,{r0-r3,r14} 250 260ADR r1,block 270MOV r3,#0 280 290.again 300LDR r0,mask 310SWI "Wimp_Poll" 320CMP r0,#0 :REM null 330BEQ again 340CMP r0,#17 350CMPNE r0,#18 360BNE again 370LDR r2,[r1,#16] 380CMP r2,#0 :REM Quit message 390BNE again 400 410LDMFD r13!,{r0-r3,PC} 420 430 REM 98765432109876543210 440.mask equd %10011111111111111110 450.block EQUD 0 460] 470NEXT 480ENDPROC
>� Wimp Poll in a tight Assembler loop if Null Reason Code 2kb%=64 :� set to kb for SlotSize ( 2� = 1024 * kb% < F � T% 4 P$T% ="TASK" Z d �assemble n x<ș "Wimp_Initialise",300 ,!T% ,"WimpPoll ASM",0 � ,task% � � poll �ș "Wimp_CloseDown",task% � �� � �� �assemble �� code% 300 �� opt = 0 � 2 � 2 �P% = code% �[OPT opt � .poll �STMFD r13!,{r0-r3,r14} � ADR r1,block MOV r3,#0 " .again ,LDR r0,mask 6SWI "Wimp_Poll" @)CMP r0,#0 :� null JBEQ again TCMP r0,#17 ^CMPNE r0,#18 hBNE again rLDR r2,[r1,#16] |1CMP r2,#0 :� Quit message �BNE again � �LDMFD r13!,{r0-r3,PC} � �& � 98765432109876543210 �(.mask equd %10011111111111111110 �.block EQUD 0 �] �� �� �
00000000 0d 00 0a 3e f4 20 20 57 69 6d 70 20 50 6f 6c 6c |...>. Wimp Poll| 00000010 20 69 6e 20 61 20 74 69 67 68 74 20 41 73 73 65 | in a tight Asse| 00000020 6d 62 6c 65 72 20 6c 6f 6f 70 20 69 66 20 4e 75 |mbler loop if Nu| 00000030 6c 6c 20 52 65 61 73 6f 6e 20 43 6f 64 65 0d 00 |ll Reason Code..| 00000040 14 04 0d 00 1e 32 6b 62 25 3d 36 34 20 20 20 20 |.....2kb%=64 | 00000050 20 20 20 20 20 20 20 20 20 20 20 3a f4 20 73 65 | :. se| 00000060 74 20 74 6f 20 6b 62 20 66 6f 72 20 53 6c 6f 74 |t to kb for Slot| 00000070 53 69 7a 65 0d 00 28 04 0d 00 32 12 e0 20 3d 20 |Size..(...2.. = | 00000080 31 30 32 34 20 2a 20 6b 62 25 0d 00 3c 04 0d 00 |1024 * kb%..<...| 00000090 46 0a de 20 54 25 20 34 0d 00 50 0f 24 54 25 20 |F.. T% 4..P.$T% | 000000a0 3d 22 54 41 53 4b 22 0d 00 5a 04 0d 00 64 0d f2 |="TASK"..Z...d..| 000000b0 61 73 73 65 6d 62 6c 65 0d 00 6e 04 0d 00 78 3c |assemble..n...x<| 000000c0 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c |.. "Wimp_Initial| 000000d0 69 73 65 22 2c 33 30 30 20 2c 21 54 25 20 2c 22 |ise",300 ,!T% ,"| 000000e0 57 69 6d 70 50 6f 6c 6c 20 41 53 4d 22 2c 30 20 |WimpPoll ASM",0 | 000000f0 b8 20 2c 74 61 73 6b 25 0d 00 82 0a d6 20 70 6f |. ,task%..... po| 00000100 6c 6c 0d 00 8c 1d c8 99 20 22 57 69 6d 70 5f 43 |ll...... "Wimp_C| 00000110 6c 6f 73 65 44 6f 77 6e 22 2c 74 61 73 6b 25 0d |loseDown",task%.| 00000120 00 96 04 0d 00 a0 05 e0 0d 00 aa 04 0d 00 b4 0f |................| 00000130 dd 20 f2 61 73 73 65 6d 62 6c 65 0d 00 be 0f de |. .assemble.....| 00000140 20 63 6f 64 65 25 20 33 30 30 0d 00 c8 15 e3 20 | code% 300..... | 00000150 6f 70 74 20 3d 20 30 20 b8 20 32 20 88 20 32 0d |opt = 0 . 2 . 2.| 00000160 00 d2 0e 50 25 20 3d 20 63 6f 64 65 25 0d 00 dc |...P% = code%...| 00000170 0c 5b 4f 50 54 20 6f 70 74 0d 00 e6 09 2e 70 6f |.[OPT opt.....po| 00000180 6c 6c 0d 00 f0 1e 53 54 4d 46 44 20 20 20 20 20 |ll....STMFD | 00000190 72 31 33 21 2c 7b 72 30 2d 72 33 2c 72 31 34 7d |r13!,{r0-r3,r14}| 000001a0 0d 00 fa 04 0d 01 04 16 41 44 52 20 20 20 20 20 |........ADR | 000001b0 20 20 72 31 2c 62 6c 6f 63 6b 0d 01 0e 13 4d 4f | r1,block....MO| 000001c0 56 20 20 20 20 20 20 20 72 33 2c 23 30 0d 01 18 |V r3,#0...| 000001d0 04 0d 01 22 0a 2e 61 67 61 69 6e 0d 01 2c 15 4c |..."..again..,.L| 000001e0 44 52 20 20 20 20 20 20 20 72 30 2c 6d 61 73 6b |DR r0,mask| 000001f0 0d 01 36 19 53 57 49 20 20 20 20 20 20 20 22 57 |..6.SWI "W| 00000200 69 6d 70 5f 50 6f 6c 6c 22 0d 01 40 29 43 4d 50 |imp_Poll"..@)CMP| 00000210 20 20 20 20 20 20 20 72 30 2c 23 30 20 20 20 20 | r0,#0 | 00000220 20 20 20 20 20 20 20 20 20 20 20 3a f4 20 6e 75 | :. nu| 00000230 6c 6c 0d 01 4a 13 42 45 51 20 20 20 20 20 20 20 |ll..J.BEQ | 00000240 61 67 61 69 6e 0d 01 54 14 43 4d 50 20 20 20 20 |again..T.CMP | 00000250 20 20 20 72 30 2c 23 31 37 0d 01 5e 14 43 4d 50 | r0,#17..^.CMP| 00000260 4e 45 20 20 20 20 20 72 30 2c 23 31 38 0d 01 68 |NE r0,#18..h| 00000270 13 42 4e 45 20 20 20 20 20 20 20 61 67 61 69 6e |.BNE again| 00000280 0d 01 72 19 4c 44 52 20 20 20 20 20 20 20 72 32 |..r.LDR r2| 00000290 2c 5b 72 31 2c 23 31 36 5d 0d 01 7c 31 43 4d 50 |,[r1,#16]..|1CMP| 000002a0 20 20 20 20 20 20 20 72 32 2c 23 30 20 20 20 20 | r2,#0 | 000002b0 20 20 20 20 20 20 20 20 20 20 20 3a f4 20 51 75 | :. Qu| 000002c0 69 74 20 6d 65 73 73 61 67 65 0d 01 86 13 42 4e |it message....BN| 000002d0 45 20 20 20 20 20 20 20 61 67 61 69 6e 0d 01 90 |E again...| 000002e0 04 0d 01 9a 1d 4c 44 4d 46 44 20 20 20 20 20 72 |.....LDMFD r| 000002f0 31 33 21 2c 7b 72 30 2d 72 33 2c 50 43 7d 0d 01 |13!,{r0-r3,PC}..| 00000300 a4 04 0d 01 ae 26 20 20 20 20 20 20 20 20 20 20 |.....& | 00000310 20 20 f4 20 39 38 37 36 35 34 33 32 31 30 39 38 | . 987654321098| 00000320 37 36 35 34 33 32 31 30 0d 01 b8 28 2e 6d 61 73 |76543210...(.mas| 00000330 6b 20 20 20 20 20 65 71 75 64 20 25 31 30 30 31 |k equd %1001| 00000340 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 30 |1111111111111110| 00000350 0d 01 c2 14 2e 62 6c 6f 63 6b 20 20 20 20 45 51 |.....block EQ| 00000360 55 44 20 30 0d 01 cc 05 5d 0d 01 d6 05 ed 0d 01 |UD 0....].......| 00000370 e0 05 e1 0d ff |.....| 00000375