Home » Archimedes archive » Acorn User » AU 1996-12 A.adf » Specials » Shanghai/!Shanghai/s/Interrupt

Shanghai/!Shanghai/s/Interrupt

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 A.adf » Specials
Filename: Shanghai/!Shanghai/s/Interrupt
Read OK:
File size: 0159 bytes
Load address: 0000
Exec address: 0000
File contents
; Interrupt.s
;
; !Shanghai game - Mk 2
;
; Risc OS Event Handlers

; Timer event - called as a result of OS_CallEvery

	EXPORT	|Manage_Timer_Event|

	IMPORT	|Handle_Timer|

	GET	^.h.RegNames

	AREA	|C$$code|, CODE, READONLY

|Manage_Timer_Event|
;	STMFD	sp!, { r0-r12, r14 }

;	MOV	pc, r12

;	LDMFD	sp!, { r0-r12, r14 }
	SUBS	pc, r14, #4

	END
00000000  3b 20 49 6e 74 65 72 72  75 70 74 2e 73 0a 3b 0a  |; Interrupt.s.;.|
00000010  3b 20 21 53 68 61 6e 67  68 61 69 20 67 61 6d 65  |; !Shanghai game|
00000020  20 2d 20 4d 6b 20 32 0a  3b 0a 3b 20 52 69 73 63  | - Mk 2.;.; Risc|
00000030  20 4f 53 20 45 76 65 6e  74 20 48 61 6e 64 6c 65  | OS Event Handle|
00000040  72 73 0a 0a 3b 20 54 69  6d 65 72 20 65 76 65 6e  |rs..; Timer even|
00000050  74 20 2d 20 63 61 6c 6c  65 64 20 61 73 20 61 20  |t - called as a |
00000060  72 65 73 75 6c 74 20 6f  66 20 4f 53 5f 43 61 6c  |result of OS_Cal|
00000070  6c 45 76 65 72 79 0a 0a  09 45 58 50 4f 52 54 09  |lEvery...EXPORT.|
00000080  7c 4d 61 6e 61 67 65 5f  54 69 6d 65 72 5f 45 76  ||Manage_Timer_Ev|
00000090  65 6e 74 7c 0a 0a 09 49  4d 50 4f 52 54 09 7c 48  |ent|...IMPORT.|H|
000000a0  61 6e 64 6c 65 5f 54 69  6d 65 72 7c 0a 0a 09 47  |andle_Timer|...G|
000000b0  45 54 09 5e 2e 68 2e 52  65 67 4e 61 6d 65 73 0a  |ET.^.h.RegNames.|
000000c0  0a 09 41 52 45 41 09 7c  43 24 24 63 6f 64 65 7c  |..AREA.|C$$code||
000000d0  2c 20 43 4f 44 45 2c 20  52 45 41 44 4f 4e 4c 59  |, CODE, READONLY|
000000e0  0a 0a 7c 4d 61 6e 61 67  65 5f 54 69 6d 65 72 5f  |..|Manage_Timer_|
000000f0  45 76 65 6e 74 7c 0a 3b  09 53 54 4d 46 44 09 73  |Event|.;.STMFD.s|
00000100  70 21 2c 20 7b 20 72 30  2d 72 31 32 2c 20 72 31  |p!, { r0-r12, r1|
00000110  34 20 7d 0a 0a 3b 09 4d  4f 56 09 70 63 2c 20 72  |4 }..;.MOV.pc, r|
00000120  31 32 0a 0a 3b 09 4c 44  4d 46 44 09 73 70 21 2c  |12..;.LDMFD.sp!,|
00000130  20 7b 20 72 30 2d 72 31  32 2c 20 72 31 34 20 7d  | { r0-r12, r14 }|
00000140  0a 09 53 55 42 53 09 70  63 2c 20 72 31 34 2c 20  |..SUBS.pc, r14, |
00000150  23 34 0a 0a 09 45 4e 44  0a                       |#4...END.|
00000159