Disassembly:Videocart 24

From veswiki
Jump to: navigation, search

This is the complete disassembly of the Channel F Videocart 24 made with e5frog's modified f8tool made by Peter Trauner's. Original code is copyright © 1978 (?) Zircon International.

;===============================================================================
; VIDEOCART 24 / PRO FOOTBALL
; Commented disassembly
;
; Original binary copyright Zircon International, approximately 1978.
; Original disassembly generated with f8tool and reconstructed as compilable
; DASM/F8 source. This revision preserves all instructions, labels, data bytes,
; addresses and original address comments. Only explanatory comments and
; section headings have been added.
;
; Confidence terminology used below:
;   confirmed       directly established by I/O, data flow or control flow
;   strongly likely supported by several independent code relationships
;   preliminary     descriptive working name, not an original symbol
;
; The range $124D-$17FF is emitted as data because reachable code addresses it
; through DC0. Routines and tables are described without changing binary data.
;===============================================================================

		processor f8
		org $0800

clrscrn		equ	$00D0

		lr	5, A			; 0800 55
		nop				; 0801 2B
		li	$D0			; 0802 20 D0
		lr	3, A			; 0804 53
		pi	clrscrn			; 0805 28 00 D0
		lisu	6			; 0808 66
		lisl	1			; 0809 69
		li	$21			; 080A 20 21
		lr	S, A			; 080C 5C
		lis	1			; 080D 71
		lr	$A, A			; 080E 5A
		jmp	L0E68			; 080F 29 0E 68
;-------------------------------------------------------------------------------
; set_isar_2x_r0_plus_10 (confirmed)
; Convert object index in r0 to the first byte of a two-byte scratchpad entry.
; Output: ISAR = $10 + 2*r0. A and ISAR are changed; r0 is preserved.
;-------------------------------------------------------------------------------
L0812:		li	$10			; 0812 20 10
		as	0			; 0814 C0
		as	0			; 0815 C0
		lr	IS, A			; 0816 0B
		pop				; 0817 1C
;-------------------------------------------------------------------------------
; delay_r5 (confirmed)
; Blocking two-level delay. A wraps through 256 INC operations for each r5
; count. r5 is consumed and returns as zero.
;-------------------------------------------------------------------------------
L0818:		clr				; 0818 70
L0819:		inc				; 0819 1F
		bnz	L0819			; 081A 94 FE
		ds	5			; 081C 35
		bnz	L0818			; 081D 94 FA
		pop				; 081F 1C
;-------------------------------------------------------------------------------
; Graphics parameter entry points (strongly likely)
; L0820 reads r3, then L0822 reads r4, r2, r5 and r6 from DC0 before entering
; the common renderer. Observed use identifies r3/r4 as coordinates, r2 as
; color/mode, and r5/r6 as width/height counters.
;-------------------------------------------------------------------------------
L0820:		lm				; 0820 16
		lr	3, A			; 0821 53
L0822:		lm				; 0822 16
		lr	4, A			; 0823 54
		lm				; 0824 16
		lr	2, A			; 0825 52
		lm				; 0826 16
		lr	5, A			; 0827 55
		lm				; 0828 16
		lr	6, A			; 0829 56
		br	L084A			; 082A 90 1F
; draw_object_from_scratch: select solid/background mode, then read X/Y pair.
L082C:		li	$C1			; 082C 20 C1
		lr	2, A			; 082E 52
; Read a two-byte coordinate pair through ISAR with post-increment semantics.
L082F:		lr	A, I			; 082F 4D
		lr	3, A			; 0830 53
		ds	3			; 0831 33
		lr	A, I			; 0832 4D
		lr	4, A			; 0833 54
		ds	4			; 0834 34
		br	L083A			; 0835 90 04
		.byte	$20, $C1, $52		; 0837
L083A:		lis	3			; 083A 73
		lr	5, A			; 083B 55
; Short fixed-height graphics entry: use three rows.
L083C:		lis	3			; 083C 73
		lr	6, A			; 083D 56
		br	L084A			; 083E 90 0B
; draw_bitmap_entry (confirmed graphics): select a two-byte glyph/sprite entry
; at L1364 + 2*r1 and use fixed dimensions 3 by 5.
L0840:		dci	L1364			; 0840 2A 13 64
		lr	A, 1			; 0843 41
		adc				; 0844 8E
		adc				; 0845 8E
		lis	3			; 0846 73
		lr	5, A			; 0847 55
		lis	5			; 0848 75
		lr	6, A			; 0849 56
;-------------------------------------------------------------------------------
; draw_bitmap_core (confirmed)
; Port 0: graphics write/strobe. Port 1: color. Port 4: inverted X.
; Port 5: inverted Y in low six bits and sound selection in high two bits.
; r7 is the serial bitmap mask; a new byte is fetched with LM when exhausted.
; r1 and r6 count columns and rows. Port 0 is cleared before return.
;-------------------------------------------------------------------------------
L084A:		clr				; 084A 70
		lr	7, A			; 084B 57
		li	$40			; 084C 20 40
		outs	0			; 084E B0
		lr	A, 4			; 084F 44
		oi	$C0			; 0850 22 C0
		com				; 0852 18
		outs	5			; 0853 B5
L0854:		lr	A, 3			; 0854 43
		com				; 0855 18
		outs	4			; 0856 B4
		lr	A, 5			; 0857 45
		lr	1, A			; 0858 51
L0859:		lr	A, 2			; 0859 42
		outs	1			; 085A B1
		ni	1			; 085B 21 01
		bnz	L0873			; 085D 94 15
		com				; 085F 18
		adc				; 0860 8E
		lr	A, 7			; 0861 47
		sr	1			; 0862 12
		lr	7, A			; 0863 57
		bnz	L086A			; 0864 94 05
		lm				; 0866 16
		li	$80			; 0867 20 80
		lr	7, A			; 0869 57
L086A:		nm				; 086A 8A
		bnz	L0873			; 086B 94 07
		com				; 086D 18
		outs	1			; 086E B1
		lis	2			; 086F 72
		ns	2			; 0870 F2
		bnz	L087D			; 0871 94 0B
L0873:		li	$60			; 0873 20 60
		outs	0			; 0875 B0
		li	$40			; 0876 20 40
		outs	0			; 0878 B0
L0879:		ai	$F5			; 0879 24 F5
		bp	L0879			; 087B 81 FD
L087D:		ins	4			; 087D A4
		ai	$FF			; 087E 24 FF
		outs	4			; 0880 B4
		ds	1			; 0881 31
		bnz	L0859			; 0882 94 D6
		ins	5			; 0884 A5
		ai	$FF			; 0885 24 FF
		outs	5			; 0887 B5
		ds	6			; 0888 36
		bnz	L0854			; 0889 94 CA
		clr				; 088B 70
		outs	0			; 088C B0
		pop				; 088D 1C
;-------------------------------------------------------------------------------
; play_sound_table (confirmed)
; DC0 points to pairs: repetition/group count followed by delay value. A zero
; count terminates. The routine alternates $80 (500 Hz) and $00 on port 5;
; r5 controls both on-time and off-time, while r4/r7 group the pulses.
;-------------------------------------------------------------------------------
L088E:		lis	3			; 088E 73
		lr	4, A			; 088F 54
L0890:		inc				; 0890 1F
		bnz	L0890			; 0891 94 FE
		am				; 0893 88
		lr	7, A			; 0894 57
		bz	L08AF			; 0895 84 19
		lm				; 0897 16
		lr	5, A			; 0898 55
L0899:		li	$80			; 0899 20 80
		outs	5			; 089B B5
		lr	A, 5			; 089C 45
L089D:		inc				; 089D 1F
		bnz	L089D			; 089E 94 FE
		outs	5			; 08A0 B5
		lr	A, 5			; 08A1 45
L08A2:		inc				; 08A2 1F
		bnz	L08A2			; 08A3 94 FE
		ds	4			; 08A5 34
		bnz	L0899			; 08A6 94 F2
		lis	3			; 08A8 73
		lr	4, A			; 08A9 54
		ds	7			; 08AA 37
		bnz	L0899			; 08AB 94 ED
		br	L088E			; 08AD 90 E0
L08AF:		pop				; 08AF 1C
;-------------------------------------------------------------------------------
; read_controller_a / read_controller_b (strongly likely)
; Select one of two controller I/O paths according to r10 bit 0. The selected
; input is inverted and stored in O73. L08C1 selects the opposite input path.
;-------------------------------------------------------------------------------
L08B0:		lis	1			; 08B0 71
		ns	$A			; 08B1 FA
		bz	L08B9			; 08B2 84 06
L08B4:		clr				; 08B4 70
		outs	4			; 08B5 B4
		ins	4			; 08B6 A4
		br	L08BC			; 08B7 90 04
L08B9:		clr				; 08B9 70
		outs	1			; 08BA B1
		ins	1			; 08BB A1
L08BC:		com				; 08BC 18
		lisu	7			; 08BD 67
		lisl	3			; 08BE 6B
		lr	S, A			; 08BF 5C
		pop				; 08C0 1C
L08C1:		lis	1			; 08C1 71
		ns	$A			; 08C2 FA
		bz	L08B4			; 08C3 84 F0
		br	L08B9			; 08C5 90 F3
;-------------------------------------------------------------------------------
; lookup_table_1268 (confirmed table lookup)
; Index table L1268 from scratchpad state and accumulate variable-length data.
;-------------------------------------------------------------------------------
L08C7:		dci	L1268			; 08C7 2A 12 68
		lisu	7			; 08CA 67
		lisl	6			; 08CB 6E
		lr	A, D			; 08CC 4E
		adc				; 08CD 8E
		lm				; 08CE 16
		adc				; 08CF 8E
		lr	A, S			; 08D0 4C
		com				; 08D1 18
		inc				; 08D2 1F
		lr	4, A			; 08D3 54
L08D4:		lm				; 08D4 16
		as	4			; 08D5 C4
		lm				; 08D6 16
		bm	L08D4			; 08D7 91 FC
		pop				; 08D9 1C
; lookup_table_1297 (confirmed table lookup)
; Parallel lookup using L1297, with a three-byte accumulation stride.
L08DA:		dci	L1297			; 08DA 2A 12 97
		lisu	7			; 08DD 67
		lisl	6			; 08DE 6E
		lr	A, D			; 08DF 4E
		adc				; 08E0 8E
		lm				; 08E1 16
		adc				; 08E2 8E
		lr	A, S			; 08E3 4C
		com				; 08E4 18
		inc				; 08E5 1F
		lr	4, A			; 08E6 54
L08E7:		lm				; 08E7 16
		lm				; 08E8 16
		as	4			; 08E9 C4
		lm				; 08EA 16
		bm	L08E7			; 08EB 91 FB
		pop				; 08ED 1C
;-------------------------------------------------------------------------------
; calc_small_index_a (preliminary)
; Return a small class in r5 according to r0 and player/side flag r10 bit 0.
;-------------------------------------------------------------------------------
L08EE:		lis	2			; 08EE 72
		lr	5, A			; 08EF 55
		lr	A, 0			; 08F0 40
		ci	6			; 08F1 25 06
		bm	L08F6			; 08F3 91 02
		ds	5			; 08F5 35
L08F6:		lis	1			; 08F6 71
		ns	$A			; 08F7 FA
		bz	L08FB			; 08F8 84 02
		ds	5			; 08FA 35
L08FB:		ds	5			; 08FB 35
		pop				; 08FC 1C
; calc_small_index_b (preliminary)
; Return a small class in r5 from the relation between r0 and r4.
L08FD:		lis	2			; 08FD 72
		lr	5, A			; 08FE 55
		li	$F9			; 08FF 20 F9
		as	0			; 0901 C0
		bm	L0905			; 0902 91 02
		ds	5			; 0904 35
L0905:		li	$F9			; 0905 20 F9
		as	4			; 0907 C4
		bm	L090B			; 0908 91 02
		ds	5			; 090A 35
L090B:		ds	5			; 090B 35
		pop				; 090C 1C
;-------------------------------------------------------------------------------
; update_motion_or_collision_vector (strongly likely)
; Compare object coordinate pairs stored at $10 + 2*index. The block computes
; absolute differences, applies side/direction flags, and records an event in
; r11 bit 1 when the tested geometric condition is met.
;-------------------------------------------------------------------------------
L090D:		lisu	6			; 090D 66
		lisl	5			; 090E 6D
		li	$64			; 090F 20 64
		lr	I, A			; 0911 5D
		lr	A, 9			; 0912 49
		lr	S, A			; 0913 5C
		lisl	4			; 0914 6C
		lr	A, 4			; 0915 44
		lr	S, A			; 0916 5C
		lis	6			; 0917 76
		lr	9, A			; 0918 59
L0919:		li	$10			; 0919 20 10
		as	8			; 091B C8
		as	8			; 091C C8
		lr	IS, A			; 091D 0B
		lr	A, S			; 091E 4C
		lr	7, A			; 091F 57
		li	$FE			; 0920 20 FE
		lr	5, A			; 0922 55
		li	$10			; 0923 20 10
		as	9			; 0925 C9
		as	9			; 0926 C9
		lr	IS, A			; 0927 0B
		lr	A, 7			; 0928 47
		com				; 0929 18
		inc				; 092A 1F
		as	S			; 092B CC
		lr	7, A			; 092C 57
		bp	L0931			; 092D 81 03
		com				; 092F 18
		inc				; 0930 1F
L0931:		lr	4, A			; 0931 54
		lis	1			; 0932 71
		ns	$A			; 0933 FA
		bz	L093A			; 0934 84 05
		lr	A, 7			; 0936 47
		com				; 0937 18
		inc				; 0938 1F
		lr	7, A			; 0939 57
L093A:		lr	A, 5			; 093A 45
		inc				; 093B 1F
		inc				; 093C 1F
		lr	5, A			; 093D 55
		lr	A, 4			; 093E 44
		ai	$FD			; 093F 24 FD
		lr	4, A			; 0941 54
		bp	L093A			; 0942 81 F7
		lisu	6			; 0944 66
		lisl	7			; 0945 6F
		lis	8			; 0946 78
		ns	S			; 0947 FC
		bz	L094E			; 0948 84 05
		lr	A, 5			; 094A 45
		com				; 094B 18
		inc				; 094C 1F
		lr	5, A			; 094D 55
L094E:		lis	$C			; 094E 7C
		ns	S			; 094F FC
		bnz	L0953			; 0950 94 02
		lr	5, A			; 0952 55
L0953:		lis	1			; 0953 71
		ns	$A			; 0954 FA
		bnz	L095B			; 0955 94 05
		lr	A, 5			; 0957 45
		com				; 0958 18
		inc				; 0959 1F
		lr	5, A			; 095A 55
L095B:		clr				; 095B 70
		as	7			; 095C C7
		bm	L0963			; 095D 91 05
		lr	A, 5			; 095F 45
		com				; 0960 18
		inc				; 0961 1F
		lr	5, A			; 0962 55
L0963:		li	$11			; 0963 20 11
		as	8			; 0965 C8
		as	8			; 0966 C8
		lr	IS, A			; 0967 0B
		lr	A, S			; 0968 4C
		as	5			; 0969 C5
		com				; 096A 18
		inc				; 096B 1F
		lr	5, A			; 096C 55
		li	$11			; 096D 20 11
		as	9			; 096F C9
		as	9			; 0970 C9
		lr	IS, A			; 0971 0B
		lr	A, S			; 0972 4C
		as	5			; 0973 C5
		bp	L0978			; 0974 81 03
		com				; 0976 18
		inc				; 0977 1F
L0978:		lr	5, A			; 0978 55
		com				; 0979 18
		lisu	6			; 097A 66
		lisl	5			; 097B 6D
		as	S			; 097C CC
		bm	L09B3			; 097D 91 35
		lr	A, 5			; 097F 45
		lr	S, A			; 0980 5C
		clr				; 0981 70
		as	7			; 0982 C7
		bp	L09AF			; 0983 81 2B
		lr	A, $B			; 0985 4B
		ni	$FD			; 0986 21 FD
		lr	$B, A			; 0988 5B
		li	$10			; 0989 20 10
		as	8			; 098B C8
		as	8			; 098C C8
		lr	IS, A			; 098D 0B
		lr	A, S			; 098E 4C
		sr	1			; 098F 12
		as	S			; 0990 CC
		lr	5, A			; 0991 55
		lisu	2			; 0992 62
		lisl	6			; 0993 6E
		lr	A, S			; 0994 4C
		sr	1			; 0995 12
		com				; 0996 18
		inc				; 0997 1F
		as	5			; 0998 C5
		lr	5, A			; 0999 55
		li	$10			; 099A 20 10
		as	9			; 099C C9
		as	9			; 099D C9
		lr	IS, A			; 099E 0B
		lr	A, S			; 099F 4C
		com				; 09A0 18
		inc				; 09A1 1F
		as	5			; 09A2 C5
		lr	5, A			; 09A3 55
		lis	1			; 09A4 71
		ns	$A			; 09A5 FA
		bz	L09AC			; 09A6 84 05
		lr	A, 5			; 09A8 45
		com				; 09A9 18
		inc				; 09AA 1F
		lr	5, A			; 09AB 55
L09AC:		ds	5			; 09AC 35
		bp	L09B3			; 09AD 81 05
L09AF:		lr	A, $B			; 09AF 4B
		oi	2			; 09B0 22 02
		lr	$B, A			; 09B2 5B
L09B3:		ds	9			; 09B3 39
		lr	A, 9			; 09B4 49
		ci	3			; 09B5 25 03
		bp	L09BC			; 09B7 81 04
		jmp	L0919			; 09B9 29 09 19
L09BC:		lisu	6			; 09BC 66
		lisl	6			; 09BD 6E
		lr	A, S			; 09BE 4C
		lr	9, A			; 09BF 59
		lisl	4			; 09C0 6C
		lr	A, S			; 09C1 4C
		lr	4, A			; 09C2 54
		pop				; 09C3 1C
;-------------------------------------------------------------------------------
; draw_player_or_marker (strongly likely)
; Save the nested return in K, derive a screen position from O61/O62, and draw
; four component glyphs through L0840. Return through PK.
;-------------------------------------------------------------------------------
L09C4:		lr	K, P			; 09C4 08
		lisu	6			; 09C5 66
		lisl	1			; 09C6 69
		lr	A, I			; 09C7 4D
		ci	$32			; 09C8 25 32
		li	$3C			; 09CA 20 3C
		bp	L09D0			; 09CC 81 03
		li	$19			; 09CE 20 19
L09D0:		lr	3, A			; 09D0 53
		clr				; 09D1 70
		lr	1, A			; 09D2 51
		as	S			; 09D3 CC
		lr	8, A			; 09D4 58
		bz	L09E4			; 09D5 84 0E
L09D7:		lr	A, 8			; 09D7 48
		ai	$C4			; 09D8 24 C4
		ci	$C3			; 09DA 25 C3
		bnc	L09E4			; 09DC 92 07
		lr	8, A			; 09DE 58
		lr	A, 1			; 09DF 41
		inc				; 09E0 1F
		lr	1, A			; 09E1 51
		br	L09D7			; 09E2 90 F4
L09E4:		lis	7			; 09E4 77
		lr	4, A			; 09E5 54
		li	$40			; 09E6 20 40
		lr	2, A			; 09E8 52
		pi	L0840			; 09E9 28 08 40
		lis	4			; 09EC 74
		as	3			; 09ED C3
		lr	3, A			; 09EE 53
		lis	$A			; 09EF 7A
		lr	1, A			; 09F0 51
		pi	L0840			; 09F1 28 08 40
		lis	3			; 09F4 73
		as	3			; 09F5 C3
		lr	3, A			; 09F6 53
		clr				; 09F7 70
L09F8:		lr	1, A			; 09F8 51
		lr	A, 8			; 09F9 48
		ai	$F6			; 09FA 24 F6
		bm	L0A04			; 09FC 91 07
		lr	8, A			; 09FE 58
		lr	A, 1			; 09FF 41
		inc				; 0A00 1F
		lr	1, A			; 0A01 51
		br	L09F8			; 0A02 90 F5
L0A04:		pi	L0840			; 0A04 28 08 40
		lis	4			; 0A07 74
		as	3			; 0A08 C3
		lr	3, A			; 0A09 53
		lr	A, 8			; 0A0A 48
		lr	1, A			; 0A0B 51
		pi	L0840			; 0A0C 28 08 40
		pk				; 0A0F 0C
;-------------------------------------------------------------------------------
; normalize_control_bits (strongly likely)
; Copy direction bits from r7 to r4 and mirror selected bits for the active side.
;-------------------------------------------------------------------------------
L0A10:		lr	A, 7			; 0A10 47
		lr	4, A			; 0A11 54
		lis	1			; 0A12 71
		ns	$A			; 0A13 FA
		bnz	L0A1D			; 0A14 94 08
		lis	3			; 0A16 73
		ns	4			; 0A17 F4
		bz	L0A1D			; 0A18 84 04
		lis	3			; 0A1A 73
		xs	4			; 0A1B E4
		lr	4, A			; 0A1C 54
L0A1D:		br	L0A24			; 0A1D 90 06
; read_control_nibble (strongly likely): load low four bits of O73 into r4.
L0A1F:		lisu	7			; 0A1F 67
		lisl	3			; 0A20 6B
		lis	$F			; 0A21 7F
		ns	S			; 0A22 FC
		lr	4, A			; 0A23 54
;-------------------------------------------------------------------------------
; apply_direction_and_move (strongly likely)
; Decode r4 bits 0-3 into signed horizontal and vertical steps in r3/r6, then
; apply object-, side- and boundary-specific movement rules.
;-------------------------------------------------------------------------------
L0A24:		lr	K, P			; 0A24 08
		clr				; 0A25 70
		lr	3, A			; 0A26 53
		lr	6, A			; 0A27 56
		lis	1			; 0A28 71
		ns	4			; 0A29 F4
		bz	L0A2E			; 0A2A 84 03
		lis	1			; 0A2C 71
		lr	3, A			; 0A2D 53
L0A2E:		lis	2			; 0A2E 72
		ns	4			; 0A2F F4
		bz	L0A33			; 0A30 84 02
		ds	3			; 0A32 33
L0A33:		nop				; 0A33 2B
		lis	4			; 0A34 74
		ns	4			; 0A35 F4
		bz	L0A3A			; 0A36 84 03
		lis	1			; 0A38 71
		lr	6, A			; 0A39 56
L0A3A:		lis	8			; 0A3A 78
		ns	4			; 0A3B F4
		bz	L0A3F			; 0A3C 84 02
		ds	6			; 0A3E 36
L0A3F:		clr				; 0A3F 70
		as	0			; 0A40 C0
		bnz	L0A61			; 0A41 94 1F
		lr	A, 6			; 0A43 46
		sl	1			; 0A44 13
		lr	6, A			; 0A45 56
		lr	A, 3			; 0A46 43
		bz	L0A4D			; 0A47 84 05
		sl	1			; 0A49 13
		sl	1			; 0A4A 13
		br	L0A4F			; 0A4B 90 03
L0A4D:		sl	1			; 0A4D 13
		as	3			; 0A4E C3
L0A4F:		lr	3, A			; 0A4F 53
		lisu	7			; 0A50 67
		lisl	6			; 0A51 6E
		lr	A, D			; 0A52 4E
		ci	6			; 0A53 25 06
		bp	L0A73			; 0A55 81 1D
		lis	1			; 0A57 71
		ns	S			; 0A58 FC
		bnz	L0A5D			; 0A59 94 03
		li	$FF			; 0A5B 20 FF
L0A5D:		as	6			; 0A5D C6
		lr	6, A			; 0A5E 56
		br	L0A73			; 0A5F 90 13
L0A61:		lisu	7			; 0A61 67
		lisl	6			; 0A62 6E
		lis	7			; 0A63 77
		xs	S			; 0A64 EC
		bnz	L0A73			; 0A65 94 0D
		lis	3			; 0A67 73
		xs	9			; 0A68 E9
		bnz	L0A73			; 0A69 94 09
		lr	A, 0			; 0A6B 40
		ci	6			; 0A6C 25 06
		bm	L0A73			; 0A6E 91 04
		clr				; 0A70 70
		lr	3, A			; 0A71 53
		lr	6, A			; 0A72 56
L0A73:		lis	2			; 0A73 72
		ns	$A			; 0A74 FA
		bnz	L0A9A			; 0A75 94 24
		lr	A, 0			; 0A77 40
		ci	6			; 0A78 25 06
		bp	L0A9A			; 0A7A 81 1F
		ci	$C			; 0A7C 25 0C
		bm	L0A9A			; 0A7E 91 1B
		lis	3			; 0A80 73
		xs	9			; 0A81 E9
		bnz	L0A89			; 0A82 94 06
		li	$20			; 0A84 20 20
		ns	$A			; 0A86 FA
		bz	L0A9A			; 0A87 84 12
L0A89:		lisl	4			; 0A89 6C
		lr	A, S			; 0A8A 4C
		sl	4			; 0A8B 15
		sl	1			; 0A8C 13
		as	S			; 0A8D CC
		ai	$73			; 0A8E 24 73
		lr	S, A			; 0A90 5C
		lr	A, S			; 0A91 4C
		sr	4			; 0A92 14
		sr	1			; 0A93 12
		sr	1			; 0A94 12
		bnz	L0A9A			; 0A95 94 04
		lr	A, 3			; 0A97 43
		sl	1			; 0A98 13
		lr	3, A			; 0A99 53
;-------------------------------------------------------------------------------
; Central object/collision pass (strongly likely)
; Iterate two-byte object records, test position limits and collisions, and set
; event bits in r11. O53/O54 hold a temporary coordinate pair.
;-------------------------------------------------------------------------------
L0A9A:		clr				; 0A9A 70
		lr	$B, A			; 0A9B 5B
L0A9C:		pi	L0812			; 0A9C 28 08 12
		lr	A, I			; 0A9F 4D
		as	3			; 0AA0 C3
		lr	1, A			; 0AA1 51
		lr	A, S			; 0AA2 4C
		as	6			; 0AA3 C6
		lisu	5			; 0AA4 65
		lisl	3			; 0AA5 6B
		lr	2, A			; 0AA6 52
		lr	D, A			; 0AA7 5E
		lr	A, 1			; 0AA8 41
		lr	I, A			; 0AA9 5D
		lr	A, D			; 0AAA 4E
		ci	$F			; 0AAB 25 0F
		bp	L0AB3			; 0AAD 81 05
		ci	$35			; 0AAF 25 35
		bp	L0AD2			; 0AB1 81 20
L0AB3:		clr				; 0AB3 70
		as	0			; 0AB4 C0
		bz	L0ACE			; 0AB5 84 18
		lisu	5			; 0AB7 65
		lisl	4			; 0AB8 6C
		ci	5			; 0AB9 25 05
		bnz	L0AC2			; 0ABB 94 06
		lis	$C			; 0ABD 7C
		xs	S			; 0ABE EC
		lr	S, A			; 0ABF 5C
		br	L0ACA			; 0AC0 90 09
L0AC2:		ci	6			; 0AC2 25 06
		bnz	L0ACA			; 0AC4 94 05
		li	$C0			; 0AC6 20 C0
		xs	S			; 0AC8 EC
		lr	S, A			; 0AC9 5C
L0ACA:		clr				; 0ACA 70
		lr	6, A			; 0ACB 56
		br	L0A9C			; 0ACC 90 CF
L0ACE:		lr	A, $B			; 0ACE 4B
		oi	$10			; 0ACF 22 10
		lr	$B, A			; 0AD1 5B
L0AD2:		lr	A, 1			; 0AD2 41
		ci	$A			; 0AD3 25 0A
		bp	L0ADB			; 0AD5 81 05
		ci	$5F			; 0AD7 25 5F
		bp	L0AF5			; 0AD9 81 1B
L0ADB:		clr				; 0ADB 70
		as	0			; 0ADC C0
		bnz	L0AE5			; 0ADD 94 07
		lr	A, $B			; 0ADF 4B
		oi	$40			; 0AE0 22 40
		lr	$B, A			; 0AE2 5B
		br	L0AF5			; 0AE3 90 11
L0AE5:		lr	A, 0			; 0AE5 40
		ci	5			; 0AE6 25 05
		lisu	5			; 0AE8 65
		lisl	4			; 0AE9 6C
		bnz	L0AF1			; 0AEA 94 06
		lis	3			; 0AEC 73
		xs	S			; 0AED EC
		lr	S, A			; 0AEE 5C
		br	L0AF1			; 0AEF 90 01
L0AF1:		clr				; 0AF1 70
		lr	3, A			; 0AF2 53
		br	L0A9C			; 0AF3 90 A8
L0AF5:		lis	8			; 0AF5 78
		ns	$A			; 0AF6 FA
		lis	1			; 0AF7 71
		bz	L0AFB			; 0AF8 84 02
		clr				; 0AFA 70
L0AFB:		lr	4, A			; 0AFB 54
L0AFC:		lr	A, 4			; 0AFC 44
		xs	0			; 0AFD E0
		bz	L0B0B			; 0AFE 84 0C
		li	$10			; 0B00 20 10
		as	4			; 0B02 C4
		as	4			; 0B03 C4
		lr	IS, A			; 0B04 0B
		lis	2			; 0B05 72
		as	I			; 0B06 CD
		com				; 0B07 18
		as	1			; 0B08 C1
		bm	L0B0E			; 0B09 91 04
L0B0B:		jmp	L0BB1			; 0B0B 29 0B B1
L0B0E:		ai	5			; 0B0E 24 05
		bm	L0B0B			; 0B10 91 FA
		lis	2			; 0B12 72
		as	I			; 0B13 CD
		com				; 0B14 18
		as	2			; 0B15 C2
		bp	L0B0B			; 0B16 81 F4
		ai	5			; 0B18 24 05
		bm	L0B0B			; 0B1A 91 F0
		lr	A, 0			; 0B1C 40
		lr	8, A			; 0B1D 58
		lr	A, 9			; 0B1E 49
		xs	4			; 0B1F E4
		bz	L0B28			; 0B20 84 07
		lr	A, 4			; 0B22 44
		lr	8, A			; 0B23 58
		lr	A, 9			; 0B24 49
		xs	0			; 0B25 E0
		bnz	L0B8E			; 0B26 94 67
L0B28:		clr				; 0B28 70
		as	9			; 0B29 C9
		bnz	L0B81			; 0B2A 94 56
		lr	A, $B			; 0B2C 4B
		ni	$FD			; 0B2D 21 FD
		lr	$B, A			; 0B2F 5B
		lisu	7			; 0B30 67
		lisl	6			; 0B31 6E
		lr	A, D			; 0B32 4E
		ci	6			; 0B33 25 06
		bp	L0B55			; 0B35 81 1F
		lr	A, S			; 0B37 4C
		com				; 0B38 18
		inc				; 0B39 1F
		lisl	1			; 0B3A 69
		as	S			; 0B3B CC
		bp	L0B0B			; 0B3C 81 CE
		lr	A, 8			; 0B3E 48
		ci	6			; 0B3F 25 06
		lr	A, $B			; 0B41 4B
		bm	L0B49			; 0B42 91 06
		oi	$E			; 0B44 22 0E
		lr	$B, A			; 0B46 5B
		br	L0B4E			; 0B47 90 06
L0B49:		oi	$A			; 0B49 22 0A
		lr	$B, A			; 0B4B 5B
		lr	A, 8			; 0B4C 48
		lr	9, A			; 0B4D 59
L0B4E:		lr	A, $A			; 0B4E 4A
		oi	2			; 0B4F 22 02
		lr	$A, A			; 0B51 5A
		jmp	L0BBC			; 0B52 29 0B BC
L0B55:		lr	A, 8			; 0B55 48
		ci	3			; 0B56 25 03
		bp	L0B0B			; 0B58 81 B2
		ci	$A			; 0B5A 25 0A
		bm	L0B0B			; 0B5C 91 AE
		lr	A, $B			; 0B5E 4B
		oi	2			; 0B5F 22 02
		lr	$B, A			; 0B61 5B
		lr	A, 8			; 0B62 48
		ci	6			; 0B63 25 06
		bp	L0B6E			; 0B65 81 08
		pi	L090D			; 0B67 28 09 0D
		lis	2			; 0B6A 72
		ns	$B			; 0B6B FB
		bz	L0BB1			; 0B6C 84 44
L0B6E:		lr	A, 8			; 0B6E 48
		lr	9, A			; 0B6F 59
		lr	A, $B			; 0B70 4B
		oi	8			; 0B71 22 08
		ni	$FE			; 0B73 21 FE
		lr	$B, A			; 0B75 5B
		lr	A, 8			; 0B76 48
		ci	6			; 0B77 25 06
		bp	L0B7F			; 0B79 81 05
		lr	A, $A			; 0B7B 4A
		oi	2			; 0B7C 22 02
		lr	$A, A			; 0B7E 5A
L0B7F:		br	L0BBC			; 0B7F 90 3C
L0B81:		pi	L08FD			; 0B81 28 08 FD
		bnz	L0B8E			; 0B84 94 09
		lr	A, $B			; 0B86 4B
		oi	4			; 0B87 22 04
		ni	$FE			; 0B89 21 FE
		lr	$B, A			; 0B8B 5B
		br	L0BBC			; 0B8C 90 2F
L0B8E:		lr	A, $B			; 0B8E 4B
		oi	1			; 0B8F 22 01
		lr	$B, A			; 0B91 5B
		lr	A, 3			; 0B92 43
		ci	1			; 0B93 25 01
		bp	L0B9A			; 0B95 81 04
		lis	1			; 0B97 71
		br	L0BA0			; 0B98 90 07
L0B9A:		ci	$FE			; 0B9A 25 FE
		bm	L0BA4			; 0B9C 91 07
		li	$FF			; 0B9E 20 FF
L0BA0:		lr	3, A			; 0BA0 53
L0BA1:		jmp	L0A9A			; 0BA1 29 0A 9A
L0BA4:		pi	L08FD			; 0BA4 28 08 FD
		bz	L0BB1			; 0BA7 84 09
		clr				; 0BA9 70
		as	6			; 0BAA C6
		bz	L0BBC			; 0BAB 84 10
		clr				; 0BAD 70
		lr	6, A			; 0BAE 56
		br	L0BA1			; 0BAF 90 F1
L0BB1:		lr	A, 4			; 0BB1 44
		inc				; 0BB2 1F
		lr	4, A			; 0BB3 54
		ci	$C			; 0BB4 25 0C
		bm	L0BBC			; 0BB6 91 05
		jmp	L0AFC			; 0BB8 29 0A FC
;-------------------------------------------------------------------------------
; Scene/state update entry (preliminary)
; Preserve nested return in K, redraw changed objects, update packed state and
; dispatch event sound or phase transitions.
;-------------------------------------------------------------------------------
L0BBB:		lr	K, P			; 0BBB 08
L0BBC:		lis	8			; 0BBC 78
		ns	$B			; 0BBD FB
		bz	L0BC9			; 0BBE 84 0A
		lr	A, $A			; 0BC0 4A
		ni	$F7			; 0BC1 21 F7
		lr	$A, A			; 0BC3 5A
		lisu	2			; 0BC4 62
		lisl	0			; 0BC5 68
		pi	L082C			; 0BC6 28 08 2C
L0BC9:		pi	L0812			; 0BC9 28 08 12
		pi	L082C			; 0BCC 28 08 2C
		li	$58			; 0BCF 20 58
		lr	3, A			; 0BD1 53
		pi	L0812			; 0BD2 28 08 12
		lr	A, I			; 0BD5 4D
		ci	$53			; 0BD6 25 53
		bm	L0BE1			; 0BD8 91 08
		ci	$17			; 0BDA 25 17
		bm	L0BEC			; 0BDC 91 0F
		li	$12			; 0BDE 20 12
		lr	3, A			; 0BE0 53
L0BE1:		lr	A, S			; 0BE1 4C
		lr	4, A			; 0BE2 54
		ds	4			; 0BE3 34
		lis	1			; 0BE4 71
		lr	5, A			; 0BE5 55
		li	$41			; 0BE6 20 41
		lr	2, A			; 0BE8 52
		pi	L083C			; 0BE9 28 08 3C
L0BEC:		li	$80			; 0BEC 20 80
		lr	2, A			; 0BEE 52
		dci	L1331			; 0BEF 2A 13 31
		pi	L08EE			; 0BF2 28 08 EE
		bz	L0BFC			; 0BF5 84 06
		clr				; 0BF7 70
		lr	2, A			; 0BF8 52
		dci	L132F			; 0BF9 2A 13 2F
L0BFC:		clr				; 0BFC 70
		as	0			; 0BFD C0
		bnz	L0C0A			; 0BFE 94 0B
		dci	L132D			; 0C00 2A 13 2D
		lis	8			; 0C03 78
		ns	$B			; 0C04 FB
		bz	L0C0A			; 0C05 84 04
		jmp	L0C96			; 0C07 29 0C 96
L0C0A:		lr	A, 9			; 0C0A 49
		com				; 0C0B 18
		inc				; 0C0C 1F
		as	0			; 0C0D C0
		bnz	L0C13			; 0C0E 94 04
		li	$40			; 0C10 20 40
		lr	2, A			; 0C12 52
L0C13:		lisu	5			; 0C13 65
		lisl	2			; 0C14 6A
		lr	A, I			; 0C15 4D
		lr	3, A			; 0C16 53
		lr	A, S			; 0C17 4C
		lr	4, A			; 0C18 54
		lis	1			; 0C19 71
		ns	$B			; 0C1A FB
		bnz	L0C24			; 0C1B 94 08
		pi	L0812			; 0C1D 28 08 12
		lr	A, 3			; 0C20 43
		lr	I, A			; 0C21 5D
		lr	A, 4			; 0C22 44
		lr	D, A			; 0C23 5E
L0C24:		pi	L0812			; 0C24 28 08 12
		pi	L082F			; 0C27 28 08 2F
		li	$40			; 0C2A 20 40
		ns	$B			; 0C2C FB
		bz	L0C5C			; 0C2D 84 2E
		lisu	7			; 0C2F 67
		lisl	6			; 0C30 6E
		lr	A, S			; 0C31 4C
		ci	6			; 0C32 25 06
		bp	L0C68			; 0C34 81 33
		ci	7			; 0C36 25 07
		bz	L0C44			; 0C38 84 0B
L0C3A:		lr	A, $B			; 0C3A 4B
		oi	6			; 0C3B 22 06
		lr	$B, A			; 0C3D 5B
		br	L0C96			; 0C3E 90 57
		.byte	$5C, $29, $0E, $16	; 0C40
L0C44:		lisu	2			; 0C44 62
		lisl	1			; 0C45 69
		lr	A, S			; 0C46 4C
		ci	$26			; 0C47 25 26
		bm	L0C3A			; 0C49 91 F0
		ci	$1A			; 0C4B 25 1A
		bp	L0C3A			; 0C4D 81 EC
		lisu	2			; 0C4F 62
		lisl	0			; 0C50 68
		lr	A, S			; 0C51 4C
		ci	$32			; 0C52 25 32
		lis	$B			; 0C54 7B
		bm	L0C58			; 0C55 91 02
		lis	3			; 0C57 73
L0C58:		lr	9, A			; 0C58 59
		jmp	L0D1C			; 0C59 29 0D 1C
L0C5C:		li	$10			; 0C5C 20 10
		ns	$B			; 0C5E FB
		bz	L0C96			; 0C5F 84 36
		lisu	7			; 0C61 67
		lisl	6			; 0C62 6E
		lr	A, S			; 0C63 4C
		ci	6			; 0C64 25 06
		bm	L0C3A			; 0C66 91 D3
L0C68:		li	$10			; 0C68 20 10
		ns	$A			; 0C6A FA
		bnz	L0C93			; 0C6B 94 27
L0C6D:		dci	L137A			; 0C6D 2A 13 7A
		pi	L088E			; 0C70 28 08 8E
		lis	1			; 0C73 71
		ns	$A			; 0C74 FA
		lisu	6			; 0C75 66
		lisl	1			; 0C76 69
		lr	A, S			; 0C77 4C
		bz	L0C87			; 0C78 84 0E
		ci	$26			; 0C7A 25 26
		bp	L0C82			; 0C7C 81 05
		ai	$F6			; 0C7E 24 F6
		br	L0C92			; 0C80 90 11
L0C82:		ai	$12			; 0C82 24 12
		sr	1			; 0C84 12
		br	L0C92			; 0C85 90 0C
L0C87:		ci	$44			; 0C87 25 44
		bm	L0C8F			; 0C89 91 05
		ai	$A			; 0C8B 24 0A
		br	L0C92			; 0C8D 90 04
L0C8F:		ai	$58			; 0C8F 24 58
		sr	1			; 0C91 12
L0C92:		lr	S, A			; 0C92 5C
L0C93:		jmp	L0E68			; 0C93 29 0E 68
;-------------------------------------------------------------------------------
; play_short_beep_and_update_state (confirmed sound section)
; Select delay data through L1251, wait, pulse $40 (1 kHz) then $00 on port 5.
; The following path continues into event/state processing when required.
;-------------------------------------------------------------------------------
L0C96:		nop				; 0C96 2B
		dci	L1251			; 0C97 2A 12 51
		lisu	7			; 0C9A 67
		lisl	2			; 0C9B 6A
		lr	A, S			; 0C9C 4C
		adc				; 0C9D 8E
		adc				; 0C9E 8E
		lm				; 0C9F 16
		lr	5, A			; 0CA0 55
		lm				; 0CA1 16
L0CA2:		inc				; 0CA2 1F
		bnz	L0CA2			; 0CA3 94 FE
		ds	5			; 0CA5 35
		bnz	L0CA2			; 0CA6 94 FB
		li	$40			; 0CA8 20 40
		outs	5			; 0CAA B5
		clr				; 0CAB 70
		outs	5			; 0CAC B5
		lis	4			; 0CAD 74
		ns	$B			; 0CAE FB
		bnz	L0CB2			; 0CAF 94 02
		pk				; 0CB1 0C
L0CB2:		dci	L1381			; 0CB2 2A 13 81
		pi	L088E			; 0CB5 28 08 8E
		li	$10			; 0CB8 20 10
		as	9			; 0CBA C9
		as	9			; 0CBB C9
		lr	IS, A			; 0CBC 0B
		lr	A, S			; 0CBD 4C
		lisu	6			; 0CBE 66
		lisl	1			; 0CBF 69
		inc				; 0CC0 1F
		lr	S, A			; 0CC1 5C
		lr	A, $B			; 0CC2 4B
		ni	$FB			; 0CC3 21 FB
		lr	$B, A			; 0CC5 5B
		lis	1			; 0CC6 71
		ns	$A			; 0CC7 FA
		bz	L0CCD			; 0CC8 84 04
		lis	4			; 0CCA 74
		as	$B			; 0CCB CB
		lr	$B, A			; 0CCC 5B
L0CCD:		lis	2			; 0CCD 72
		ns	$A			; 0CCE FA
		bz	L0CD4			; 0CCF 84 04
		lis	4			; 0CD1 74
		xs	$B			; 0CD2 EB
		lr	$B, A			; 0CD3 5B
L0CD4:		lis	4			; 0CD4 74
		ns	$B			; 0CD5 FB
		bz	L0CF9			; 0CD6 84 22
		lr	A, S			; 0CD8 4C
		ci	$58			; 0CD9 25 58
		bm	L0D13			; 0CDB 91 37
		ci	$11			; 0CDD 25 11
		bm	L0CE8			; 0CDF 91 08
		lis	2			; 0CE1 72
		ns	$A			; 0CE2 FA
		bz	L0CF2			; 0CE3 84 0E
		li	$21			; 0CE5 20 21
L0CE7:		lr	S, A			; 0CE7 5C
L0CE8:		lis	2			; 0CE8 72
		ns	$A			; 0CE9 FA
		bnz	L0CEF			; 0CEA 94 04
		jmp	L0E68			; 0CEC 29 0E 68
L0CEF:		jmp	L0E16			; 0CEF 29 0E 16
L0CF2:		li	$49			; 0CF2 20 49
		lr	S, A			; 0CF4 5C
		lis	2			; 0CF5 72
L0CF6:		lr	9, A			; 0CF6 59
		br	L0D27			; 0CF7 90 2F
L0CF9:		ds	S			; 0CF9 3C
		ds	S			; 0CFA 3C
		lr	A, S			; 0CFB 4C
		ci	$11			; 0CFC 25 11
		bp	L0D10			; 0CFE 81 11
		ci	$58			; 0D00 25 58
		bp	L0CE7			; 0D02 81 E4
		lis	2			; 0D04 72
		ns	$A			; 0D05 FA
		li	$49			; 0D06 20 49
		bnz	L0CE7			; 0D08 94 DE
		li	$21			; 0D0A 20 21
		lr	S, A			; 0D0C 5C
		lis	$A			; 0D0D 7A
		br	L0CF6			; 0D0E 90 E7
L0D10:		lis	7			; 0D10 77
		br	L0D14			; 0D11 90 02
L0D13:		lis	$F			; 0D13 7F
L0D14:		lr	9, A			; 0D14 59
		lis	2			; 0D15 72
		ns	$A			; 0D16 FA
		bz	L0D1C			; 0D17 84 04
		lis	1			; 0D19 71
		xs	$A			; 0D1A EA
		lr	$A, A			; 0D1B 5A
L0D1C:		lis	8			; 0D1C 78
		ns	9			; 0D1D F9
		lisu	6			; 0D1E 66
		lisl	1			; 0D1F 69
		li	$49			; 0D20 20 49
		bnz	L0D26			; 0D22 94 03
		li	$21			; 0D24 20 21
L0D26:		lr	S, A			; 0D26 5C
L0D27:		dci	L13CF			; 0D27 2A 13 CF
		pi	L088E			; 0D2A 28 08 8E
		jmp	L0E18			; 0D2D 29 0E 18
;-------------------------------------------------------------------------------
; direction_from_coordinate_delta (strongly likely)
; Compare coordinate pair r9 with pair r0, form absolute X/Y differences and
; encode horizontal direction as 1/2 and vertical direction as 4/8 in r4.
;-------------------------------------------------------------------------------
L0D30:		li	$10			; 0D30 20 10
		as	9			; 0D32 C9
		as	9			; 0D33 C9
		lr	IS, A			; 0D34 0B
		lr	A, I			; 0D35 4D
		lr	5, A			; 0D36 55
		lr	A, S			; 0D37 4C
		lr	6, A			; 0D38 56
		li	$10			; 0D39 20 10
		as	0			; 0D3B C0
		as	0			; 0D3C C0
		lr	IS, A			; 0D3D 0B
		lr	A, I			; 0D3E 4D
		com				; 0D3F 18
		inc				; 0D40 1F
		as	5			; 0D41 C5
		lr	5, A			; 0D42 55
		bp	L0D47			; 0D43 81 03
		com				; 0D45 18
		inc				; 0D46 1F
L0D47:		lr	4, A			; 0D47 54
		lr	A, S			; 0D48 4C
		com				; 0D49 18
		inc				; 0D4A 1F
		as	6			; 0D4B C6
		lr	6, A			; 0D4C 56
		bp	L0D51			; 0D4D 81 03
		com				; 0D4F 18
		inc				; 0D50 1F
L0D51:		lr	3, A			; 0D51 53
		com				; 0D52 18
		inc				; 0D53 1F
		as	4			; 0D54 C4
		clr				; 0D55 70
		bm	L0D5F			; 0D56 91 08
		as	5			; 0D58 C5
		lis	1			; 0D59 71
		bp	L0D5D			; 0D5A 81 02
		lis	2			; 0D5C 72
L0D5D:		br	L0D64			; 0D5D 90 06
L0D5F:		as	6			; 0D5F C6
		lis	4			; 0D60 74
		bp	L0D64			; 0D61 81 02
		lis	8			; 0D63 78
L0D64:		lr	4, A			; 0D64 54
		br	L0D83			; 0D65 90 1D
L0D67:		li	$10			; 0D67 20 10
		as	0			; 0D69 C0
		as	0			; 0D6A C0
		lr	IS, A			; 0D6B 0B
		lr	A, I			; 0D6C 4D
		com				; 0D6D 18
		inc				; 0D6E 1F
		as	5			; 0D6F C5
		bz	L0D76			; 0D70 84 05
		lis	2			; 0D72 72
		bm	L0D76			; 0D73 91 02
		lis	1			; 0D75 71
L0D76:		lr	4, A			; 0D76 54
		lr	A, S			; 0D77 4C
		com				; 0D78 18
		inc				; 0D79 1F
		as	6			; 0D7A C6
		bz	L0D81			; 0D7B 84 05
		lis	8			; 0D7D 78
		bm	L0D81			; 0D7E 91 02
		lis	4			; 0D80 74
L0D81:		as	4			; 0D81 C4
		lr	4, A			; 0D82 54
L0D83:		jmp	L0A24			; 0D83 29 0A 24
;-------------------------------------------------------------------------------
; choose_direction_step (strongly likely)
; Produce small signed steps, normally 0, 4 or $FC (-4), from side, state and
; current object coordinates; continue through the direction decoder.
;-------------------------------------------------------------------------------
L0D86:		clr				; 0D86 70
		lr	5, A			; 0D87 55
		lr	6, A			; 0D88 56
		as	2			; 0D89 C2
		ci	0			; 0D8A 25 00
		bnz	L0D98			; 0D8C 94 0B
		lis	1			; 0D8E 71
		ns	$A			; 0D8F FA
		lis	4			; 0D90 74
		bnz	L0D95			; 0D91 94 03
		li	$FC			; 0D93 20 FC
L0D95:		lr	5, A			; 0D95 55
		br	L0DA6			; 0D96 90 0F
L0D98:		li	$11			; 0D98 20 11
		as	7			; 0D9A C7
		as	7			; 0D9B C7
		lr	IS, A			; 0D9C 0B
		lr	A, S			; 0D9D 4C
		ci	$23			; 0D9E 25 23
		li	$FC			; 0DA0 20 FC
		bm	L0DA5			; 0DA2 91 02
		lis	4			; 0DA4 74
L0DA5:		lr	6, A			; 0DA5 56
L0DA6:		li	$10			; 0DA6 20 10
		as	7			; 0DA8 C7
		as	7			; 0DA9 C7
		lr	IS, A			; 0DAA 0B
		lr	A, I			; 0DAB 4D
		as	5			; 0DAC C5
		lr	5, A			; 0DAD 55
		lr	A, S			; 0DAE 4C
		as	6			; 0DAF C6
		lr	6, A			; 0DB0 56
		br	L0D67			; 0DB1 90 B5
;-------------------------------------------------------------------------------
; lookup_state_table_125d (strongly likely)
; Replace the current scratchpad state through L125D and choose r0=6 or 12 from
; ISAR parity before entering the nested update worker.
;-------------------------------------------------------------------------------
L0DB3:		dci	L125D			; 0DB3 2A 12 5D
		lr	A, S			; 0DB6 4C
		adc				; 0DB7 8E
		lm				; 0DB8 16
		lr	S, A			; 0DB9 5C
		lr	A, IS			; 0DBA 0A
		ni	1			; 0DBB 21 01
		lis	$C			; 0DBD 7C
		bnz	L0DC1			; 0DBE 94 02
		lis	6			; 0DC0 76
L0DC1:		lr	0, A			; 0DC1 50
		lisu	6			; 0DC2 66
		lisl	7			; 0DC3 6F
		clr				; 0DC4 70
		lr	S, A			; 0DC5 5C
; nested_state_update (strongly likely)
; Save the caller return from K in Q, process state/formation tables L1313 or
; L12FB, and return explicitly with LR P0,Q at L0E15.
L0DC6:		lr	K, P			; 0DC6 08
		lr	A, KU			; 0DC7 00
		lr	QU, A			; 0DC8 06
		lr	A, KL			; 0DC9 01
		lr	QL, A			; 0DCA 07
L0DCB:		dci	L1313			; 0DCB 2A 13 13
		lisu	6			; 0DCE 66
		lisl	1			; 0DCF 69
		lr	A, S			; 0DD0 4C
		lr	6, A			; 0DD1 56
		lisu	6			; 0DD2 66
		lisl	7			; 0DD3 6F
		lis	4			; 0DD4 74
		ns	S			; 0DD5 FC
		bz	L0DEB			; 0DD6 84 14
		dci	L12FB			; 0DD8 2A 12 FB
		lr	A, 0			; 0DDB 40
		ci	6			; 0DDC 25 06
		bm	L0DEB			; 0DDE 91 0C
		lis	$C			; 0DE0 7C
		adc				; 0DE1 8E
		lis	1			; 0DE2 71
		ns	$A			; 0DE3 FA
		li	$F6			; 0DE4 20 F6
		bnz	L0DE9			; 0DE6 94 02
		lis	$A			; 0DE8 7A
L0DE9:		as	6			; 0DE9 C6
		lr	6, A			; 0DEA 56
L0DEB:		lisu	5			; 0DEB 65
		lisl	3			; 0DEC 6B
		lr	A, 0			; 0DED 40
		adc				; 0DEE 8E
		adc				; 0DEF 8E
		lm				; 0DF0 16
		lr	D, A			; 0DF1 5E
		pi	L08EE			; 0DF2 28 08 EE
		lm				; 0DF5 16
		bz	L0DFA			; 0DF6 84 03
		com				; 0DF8 18
		inc				; 0DF9 1F
L0DFA:		as	6			; 0DFA C6
L0DFB:		lr	S, A			; 0DFB 5C
		ci	$C			; 0DFC 25 0C
		bp	L0E06			; 0DFE 81 07
		ci	$5E			; 0E00 25 5E
		bp	L0E09			; 0E02 81 06
		ai	$FE			; 0E04 24 FE
L0E06:		inc				; 0E06 1F
		br	L0DFB			; 0E07 90 F3
L0E09:		clr				; 0E09 70
		lr	$B, A			; 0E0A 5B
		pi	L0BBB			; 0E0B 28 0B BB
		ds	0			; 0E0E 30
		bz	L0E15			; 0E0F 84 05
		lis	6			; 0E11 76
		xs	0			; 0E12 E0
		bnz	L0DCB			; 0E13 94 B7
L0E15:		lr	P0, Q			; 0E15 0D
;-------------------------------------------------------------------------------
; start_round_or_screen (strongly likely)
; Reset phase-local state, toggle r10 bit 0, draw fixed screen components, and
; initialize players/objects for the next side or round.
;-------------------------------------------------------------------------------
L0E16:		clr				; 0E16 70
		lr	9, A			; 0E17 59
L0E18:		lis	1			; 0E18 71
		xs	$A			; 0E19 EA
		lr	$A, A			; 0E1A 5A
		lisu	6			; 0E1B 66
		lisl	0			; 0E1C 68
		clr				; 0E1D 70
		lr	S, A			; 0E1E 5C
; draw_fixed_screen_element: render parameter block L135F through L0820.
L0E1F:		dci	L135F			; 0E1F 2A 13 5F
		pi	L0820			; 0E22 28 08 20
L0E25:		lisu	5			; 0E25 65
		lisl	6			; 0E26 6E
		li	$12			; 0E27 20 12
		lr	4, A			; 0E29 54
		li	$1B			; 0E2A 20 1B
		lr	3, A			; 0E2C 53
		clr				; 0E2D 70
		lr	2, A			; 0E2E 52
L0E2F:		lr	A, S			; 0E2F 4C
		sr	4			; 0E30 14
		lr	1, A			; 0E31 51
		pi	L0840			; 0E32 28 08 40
		lr	A, I			; 0E35 4D
		sl	4			; 0E36 15
		sr	4			; 0E37 14
		lr	1, A			; 0E38 51
		lis	5			; 0E39 75
		as	3			; 0E3A C3
		lr	3, A			; 0E3B 53
		pi	L0840			; 0E3C 28 08 40
		li	$43			; 0E3F 20 43
		lr	3, A			; 0E41 53
		li	$80			; 0E42 20 80
		lr	2, A			; 0E44 52
		lr	A, IS			; 0E45 0A
		ci	$2F			; 0E46 25 2F
		bz	L0E2F			; 0E48 84 E6
		lis	7			; 0E4A 77
		ns	9			; 0E4B F9
		bz	L0E60			; 0E4C 84 13
		ds	9			; 0E4E 39
		lis	8			; 0E4F 78
		ns	9			; 0E50 F9
		lisl	6			; 0E51 6E
		bnz	L0E55			; 0E52 94 02
		lr	A, I			; 0E54 4D
L0E55:		li	$67			; 0E55 20 67
		outs	5			; 0E57 B5
		lr	5, A			; 0E58 55
		asd	S			; 0E59 DC
		lr	S, A			; 0E5A 5C
		pi	L0818			; 0E5B 28 08 18
		br	L0E25			; 0E5E 90 C6
L0E60:		lis	2			; 0E60 72
		lr	4, A			; 0E61 54
L0E62:		pi	L0818			; 0E62 28 08 18
		ds	4			; 0E65 34
		bnz	L0E62			; 0E66 94 FB
;-------------------------------------------------------------------------------
; advance_init_phase (confirmed counter behavior)
; Increment O60 and repeat initialization while the phase value is below four.
; After phase four, build the field and initialize active play state.
;-------------------------------------------------------------------------------
L0E68:		lisu	6			; 0E68 66
		lisl	0			; 0E69 68
		lr	A, S			; 0E6A 4C
		inc				; 0E6B 1F
		lr	S, A			; 0E6C 5C
		ci	4			; 0E6D 25 04
		bm	L0E16			; 0E6F 91 A6
		lis	2			; 0E71 72
		lr	4, A			; 0E72 54
L0E73:		pi	L0818			; 0E73 28 08 18
		ds	4			; 0E76 34
		bnz	L0E73			; 0E77 94 FB
		lisu	2			; 0E79 62
		lisl	0			; 0E7A 68
		pi	L082C			; 0E7B 28 08 2C
		dci	L1333			; 0E7E 2A 13 33
		lis	8			; 0E81 78
		lr	8, A			; 0E82 58
L0E83:		pi	L0820			; 0E83 28 08 20
		ds	8			; 0E86 38
		bnz	L0E83			; 0E87 94 FB
L0E89:		lis	$D			; 0E89 7D
		lr	4, A			; 0E8A 54
		lis	2			; 0E8B 72
		lr	6, A			; 0E8C 56
		pi	L084A			; 0E8D 28 08 4A
		li	$37			; 0E90 20 37
		lr	4, A			; 0E92 54
		lis	2			; 0E93 72
		lr	6, A			; 0E94 56
		pi	L084A			; 0E95 28 08 4A
		lis	7			; 0E98 77
		as	3			; 0E99 C3
		lr	3, A			; 0E9A 53
		ci	$55			; 0E9B 25 55
		bp	L0E89			; 0E9D 81 EB
		lis	2			; 0E9F 72
		lr	9, A			; 0EA0 59
		lr	A, $A			; 0EA1 4A
		ni	$C5			; 0EA2 21 C5
		lr	$A, A			; 0EA4 5A
		lisu	6			; 0EA5 66
		lisl	1			; 0EA6 69
		lr	A, D			; 0EA7 4E
		lr	3, A			; 0EA8 53
		ds	3			; 0EA9 33
		lis	7			; 0EAA 77
		lr	4, A			; 0EAB 54
		lis	1			; 0EAC 71
		ns	$A			; 0EAD FA
		lr	$A, A			; 0EAE 5A
		clr				; 0EAF 70
		bnz	L0EB4			; 0EB0 94 03
		li	$80			; 0EB2 20 80
L0EB4:		lr	2, A			; 0EB4 52
		lr	A, S			; 0EB5 4C
		lr	1, A			; 0EB6 51
		pi	L0840			; 0EB7 28 08 40
		pi	L09C4			; 0EBA 28 09 C4
		clr				; 0EBD 70
		as	S			; 0EBE CC
		bnz	L0ED1			; 0EBF 94 11
		li	$F0			; 0EC1 20 F0
		lr	S, A			; 0EC3 5C
		dci	L1392			; 0EC4 2A 13 92
		pi	L088E			; 0EC7 28 08 8E
		lisl	0			; 0ECA 68
		ds	S			; 0ECB 3C
		clr				; 0ECC 70
		lr	9, A			; 0ECD 59
		jmp	L0E1F			; 0ECE 29 0E 1F
L0ED1:		lisu	2			; 0ED1 62
		lisl	0			; 0ED2 68
L0ED3:		lis	4			; 0ED3 74
		lr	S, A			; 0ED4 5C
		lr	A, IS			; 0ED5 0A
		inc				; 0ED6 1F
		lr	IS, A			; 0ED7 0B
		ci	$2A			; 0ED8 25 2A
		bnz	L0ED3			; 0EDA 94 F8
		lis	$C			; 0EDC 7C
		lr	0, A			; 0EDD 50
		lisu	6			; 0EDE 66
		lisl	7			; 0EDF 6F
		lis	4			; 0EE0 74
		lr	S, A			; 0EE1 5C
		pi	L0DC6			; 0EE2 28 0D C6
		pi	L0DC6			; 0EE5 28 0D C6
		lisu	7			; 0EE8 67
		lisl	6			; 0EE9 6E
		li	$C0			; 0EEA 20 C0
		lr	I, A			; 0EEC 5D
		lr	D, A			; 0EED 5E
		lisu	2			; 0EEE 62
		lisl	0			; 0EEF 68
		li	$60			; 0EF0 20 60
		lr	S, A			; 0EF2 5C
;-------------------------------------------------------------------------------
; main_game_loop (strongly likely)
; Alternate controller sources, debounce console input, update active objects,
; evaluate state transitions and invoke the table-driven update worker.
;-------------------------------------------------------------------------------
L0EF3:		lisu	7			; 0EF3 67
		lisl	6			; 0EF4 6E
L0EF5:		li	$B0			; 0EF5 20 B0
L0EF7:		inc				; 0EF7 1F
		bnz	L0EF7			; 0EF8 94 FE
		lis	1			; 0EFA 71
		lr	4, A			; 0EFB 54
L0EFC:		lr	A, IS			; 0EFC 0A
		xi	1			; 0EFD 23 01
		lr	IS, A			; 0EFF 0B
		lr	A, IS			; 0F00 0A
		lr	7, A			; 0F01 57
		ni	1			; 0F02 21 01
		bnz	L0F0B			; 0F04 94 06
		pi	L08B0			; 0F06 28 08 B0
		br	L0F0E			; 0F09 90 04
L0F0B:		pi	L08C1			; 0F0B 28 08 C1
L0F0E:		lr	A, D			; 0F0E 4E
		lr	6, A			; 0F0F 56
		clr				; 0F10 70
		as	S			; 0F11 CC
		bnz	L0F22			; 0F12 94 0F
		lis	5			; 0F14 75
		lr	5, A			; 0F15 55
		ins	0			; 0F16 A0
		com				; 0F17 18
		ni	$F			; 0F18 21 0F
		bz	L0F22			; 0F1A 84 07
L0F1C:		ds	5			; 0F1C 35
		sr	1			; 0F1D 12
		bnz	L0F1C			; 0F1E 94 FD
		lr	A, 5			; 0F20 45
		lr	S, A			; 0F21 5C
L0F22:		lr	A, 7			; 0F22 47
		lr	IS, A			; 0F23 0B
		lr	A, S			; 0F24 4C
		ni	$C0			; 0F25 21 C0
		bnz	L0F33			; 0F27 94 0B
		ds	4			; 0F29 34
		bnz	L0F8E			; 0F2A 94 63
		li	$CE			; 0F2C 20 CE
L0F2E:		inc				; 0F2E 1F
		bnz	L0F2E			; 0F2F 94 FE
		br	L0EFC			; 0F31 90 CA
L0F33:		lisu	7			; 0F33 67
		lisl	4			; 0F34 6C
		ds	S			; 0F35 3C
		clr				; 0F36 70
		lisu	2			; 0F37 62
		lisl	0			; 0F38 68
		as	S			; 0F39 CC
		bnz	L0F52			; 0F3A 94 17
		lr	A, 7			; 0F3C 47
		lr	IS, A			; 0F3D 0B
		ni	1			; 0F3E 21 01
		bz	L0F49			; 0F40 84 08
		lr	A, D			; 0F42 4E
		li	$C0			; 0F43 20 C0
		ns	S			; 0F45 FC
		lr	A, I			; 0F46 4D
		bnz	L0EF5			; 0F47 94 AD
L0F49:		lr	A, S			; 0F49 4C
		ni	$C0			; 0F4A 21 C0
		bz	L0EF5			; 0F4C 84 A8
		clr				; 0F4E 70
		lr	S, A			; 0F4F 5C
		br	L0F82			; 0F50 90 31
L0F52:		lisu	2			; 0F52 62
		lisl	1			; 0F53 69
		ds	D			; 0F54 3E
		bnz	L0F58			; 0F55 94 02
		ds	D			; 0F57 3E
L0F58:		lr	A, 7			; 0F58 47
		lr	IS, A			; 0F59 0B
		lr	A, 6			; 0F5A 46
		ni	$30			; 0F5B 21 30
		bnz	L0F64			; 0F5D 94 06
L0F5F:		lis	$F			; 0F5F 7F
		ns	6			; 0F60 F6
		ai	$C0			; 0F61 24 C0
		lr	S, A			; 0F63 5C
L0F64:		lr	A, 6			; 0F64 46
		com				; 0F65 18
		inc				; 0F66 1F
		as	S			; 0F67 CC
		ni	$F			; 0F68 21 0F
		bnz	L0F5F			; 0F6A 94 F4
		lr	A, S			; 0F6C 4C
		ai	$C0			; 0F6D 24 C0
		lr	S, A			; 0F6F 5C
		ni	$C0			; 0F70 21 C0
		bz	L0F77			; 0F72 84 04
		jmp	L0EF5			; 0F74 29 0E F5
L0F77:		lr	A, IS			; 0F77 0A
		ci	$3E			; 0F78 25 3E
		bnz	L0F82			; 0F7A 94 07
		lisu	2			; 0F7C 62
		lisl	0			; 0F7D 68
		lis	3			; 0F7E 73
		lr	S, A			; 0F7F 5C
		lr	A, 7			; 0F80 47
		lr	IS, A			; 0F81 0B
L0F82:		pi	L0DB3			; 0F82 28 0D B3
		lis	6			; 0F85 76
		as	0			; 0F86 C0
		lr	0, A			; 0F87 50
		pi	L0DC6			; 0F88 28 0D C6
		jmp	L0EF3			; 0F8B 29 0E F3
;-------------------------------------------------------------------------------
; Timed game-event handling and extended collision checks (strongly likely).
; Initializes O20, waits for controller activity or timeout, updates event flags
; and object state, then dispatches sound/scene handling.
;-------------------------------------------------------------------------------
L0F8E:		clr				; 0F8E 70
		lr	5, A			; 0F8F 55
		lisu	7			; 0F90 67
		lisl	2			; 0F91 6A
		as	S			; 0F92 CC
		bnz	L0F97			; 0F93 94 03
		lis	5			; 0F95 75
		lr	S, A			; 0F96 5C
L0F97:		lisu	2			; 0F97 62
		lisl	0			; 0F98 68
		li	$B0			; 0F99 20 B0
		lr	S, A			; 0F9B 5C
		pi	L0818			; 0F9C 28 08 18
L0F9F:		lisu	2			; 0F9F 62
		lisl	1			; 0FA0 69
		ds	D			; 0FA1 3E
		bnz	L0FAD			; 0FA2 94 0A
		ds	S			; 0FA4 3C
		bnz	L0FAD			; 0FA5 94 07
		lisu	6			; 0FA7 66
		lisl	0			; 0FA8 68
		ds	S			; 0FA9 3C
		jmp	L0C6D			; 0FAA 29 0C 6D
L0FAD:		pi	L08B0			; 0FAD 28 08 B0
		bz	L0F9F			; 0FB0 84 EE
		lisl	5			; 0FB2 6D
		lis	2			; 0FB3 72
		lr	S, A			; 0FB4 5C
		lisu	7			; 0FB5 67
		lisl	7			; 0FB6 6F
		clr				; 0FB7 70
		as	S			; 0FB8 CC
		bnz	L0FBF			; 0FB9 94 05
		lr	A, $A			; 0FBB 4A
		oi	$40			; 0FBC 22 40
		lr	$A, A			; 0FBE 5A
L0FBF:		lis	3			; 0FBF 73
		lr	9, A			; 0FC0 59
		lisu	5			; 0FC1 65
		lisl	4			; 0FC2 6C
		li	$11			; 0FC3 20 11
		lr	I, A			; 0FC5 5D
		clr				; 0FC6 70
		lr	S, A			; 0FC7 5C
		lisu	7			; 0FC8 67
		lisl	1			; 0FC9 69
		li	$77			; 0FCA 20 77
		lr	S, A			; 0FCC 5C
L0FCD:		li	$FD			; 0FCD 20 FD
		lr	6, A			; 0FCF 56
		lis	2			; 0FD0 72
		lr	5, A			; 0FD1 55
		lisu	6			; 0FD2 66
		lisl	1			; 0FD3 69
		lr	A, S			; 0FD4 4C
		com				; 0FD5 18
		inc				; 0FD6 1F
		lisu	2			; 0FD7 62
		lisl	6			; 0FD8 6E
		as	S			; 0FD9 CC
		bz	L0FE9			; 0FDA 84 0E
		bp	L0FDF			; 0FDC 81 02
		ds	5			; 0FDE 35
L0FDF:		lis	1			; 0FDF 71
		ns	$A			; 0FE0 FA
		bz	L0FE6			; 0FE1 84 04
		ds	5			; 0FE3 35
		lis	3			; 0FE4 73
		lr	6, A			; 0FE5 56
L0FE6:		ds	5			; 0FE6 35
		bnz	L0FEF			; 0FE7 94 07
L0FE9:		lr	A, $A			; 0FE9 4A
		oi	$20			; 0FEA 22 20
		lr	$A, A			; 0FEC 5A
		br	L1035			; 0FED 90 47
L0FEF:		lisu	7			; 0FEF 67
		lisl	4			; 0FF0 6C
		lr	A, I			; 0FF1 4D
		sr	4			; 0FF2 14
		sr	1			; 0FF3 12
		ai	$11			; 0FF4 24 11
		com				; 0FF6 18
		as	S			; 0FF7 CC
		bnz	L1035			; 0FF8 94 3C
		lis	3			; 0FFA 73
		xs	9			; 0FFB E9
		bnz	L1035			; 0FFC 94 38
		lisl	6			; 0FFE 6E
		lis	4			; 0FFF 74
		xs	S			; 1000 EC
		bz	L1035			; 1001 84 33
		lis	5			; 1003 75
		xs	S			; 1004 EC
		bz	L1035			; 1005 84 2F
		lisu	4			; 1007 64
		lisl	7			; 1008 6F
		lr	A, S			; 1009 4C
		ci	$19			; 100A 25 19
		bp	L1035			; 100C 81 28
		lisu	5			; 100E 65
		lisl	1			; 100F 69
		lr	A, S			; 1010 4C
		ci	$23			; 1011 25 23
		bm	L1035			; 1013 91 21
		lisu	2			; 1015 62
		lisl	2			; 1016 6A
		lr	A, S			; 1017 4C
		as	6			; 1018 C6
		lr	S, A			; 1019 5C
		lisl	4			; 101A 6C
		lr	S, A			; 101B 5C
		lr	A, 6			; 101C 46
		com				; 101D 18
		inc				; 101E 1F
		lr	6, A			; 101F 56
		lisu	4			; 1020 64
		lisl	6			; 1021 6E
		as	S			; 1022 CC
		lr	S, A			; 1023 5C
		lisu	5			; 1024 65
		lisl	0			; 1025 68
		lr	A, 6			; 1026 46
		as	S			; 1027 CC
		lr	S, A			; 1028 5C
		lisu	6			; 1029 66
		lisl	1			; 102A 69
		lr	A, S			; 102B 4C
		ai	$FC			; 102C 24 FC
		lr	3, A			; 102E 53
		dci	L135B			; 102F 2A 13 5B
		pi	L0822			; 1032 28 08 22
;-------------------------------------------------------------------------------
; Repositioning and formation/zone tests (strongly likely).
; Copies coordinate state, evaluates object zones and finds minimum distances
; against object records O30-O33. r10 bit 4 records the proximity condition.
;-------------------------------------------------------------------------------
L1035:		pi	L08B0			; 1035 28 08 B0
		lis	8			; 1038 78
		ns	$A			; 1039 FA
		bnz	L10B9			; 103A 94 7E
		lisu	2			; 103C 62
		lisl	6			; 103D 6E
		lr	A, I			; 103E 4D
		lr	7, A			; 103F 57
		lr	A, I			; 1040 4D
		lisu	2			; 1041 62
		lisl	1			; 1042 69
		lr	D, A			; 1043 5E
		lr	A, 7			; 1044 47
		lr	S, A			; 1045 5C
		li	$20			; 1046 20 20
		ns	$A			; 1048 FA
		bz	L104E			; 1049 84 04
L104B:		jmp	L10E0			; 104B 29 10 E0
L104E:		lisu	7			; 104E 67
		lisl	3			; 104F 6B
		as	S			; 1050 CC
		bp	L104B			; 1051 81 F9
		lis	3			; 1053 73
		xs	9			; 1054 E9
		bnz	L104B			; 1055 94 F5
		lr	9, A			; 1057 59
		lis	8			; 1058 78
		as	$A			; 1059 CA
		lr	$A, A			; 105A 5A
		lisl	6			; 105B 6E
		lr	A, S			; 105C 4C
		ci	6			; 105D 25 06
		bp	L1096			; 105F 81 36
		lr	A, $A			; 1061 4A
		oi	2			; 1062 22 02
		lr	$A, A			; 1064 5A
		lisl	4			; 1065 6C
		lr	A, I			; 1066 4D
		sr	4			; 1067 14
		sr	1			; 1068 12
		ai	$A			; 1069 24 0A
		as	S			; 106B CC
		lisl	1			; 106C 69
		lr	S, A			; 106D 5C
		lisl	6			; 106E 6E
		lis	7			; 106F 77
		xs	S			; 1070 EC
		bnz	L1096			; 1071 94 24
		lisl	1			; 1073 69
		lr	A, S			; 1074 4C
		ai	$FD			; 1075 24 FD
		lr	S, A			; 1077 5C
		lis	1			; 1078 71
		ns	$A			; 1079 FA
		lisu	2			; 107A 62
		lisl	0			; 107B 68
		bnz	L1083			; 107C 94 06
		li	$F6			; 107E 20 F6
		as	S			; 1080 CC
		br	L1087			; 1081 90 05
L1083:		lr	A, S			; 1083 4C
		com				; 1084 18
		ai	$61			; 1085 24 61
L1087:		lr	5, A			; 1087 55
		lisu	7			; 1088 67
		lisl	4			; 1089 6C
		li	$3F			; 108A 20 3F
		ns	D			; 108C FE
		as	5			; 108D C5
		ci	$39			; 108E 25 39
		clr				; 1090 70
		bp	L1095			; 1091 81 03
		li	$20			; 1093 20 20
L1095:		lr	S, A			; 1095 5C
L1096:		lr	A, $A			; 1096 4A
		oi	$40			; 1097 22 40
		lr	$A, A			; 1099 5A
		lisu	7			; 109A 67
		lisl	3			; 109B 6B
		li	$10			; 109C 20 10
		ns	S			; 109E FC
		lis	6			; 109F 76
		bnz	L10A9			; 10A0 94 08
		li	$20			; 10A2 20 20
		ns	S			; 10A4 FC
		lis	$A			; 10A5 7A
		bnz	L10A9			; 10A6 94 02
		lis	2			; 10A8 72
L10A9:		lr	7, A			; 10A9 57
		lis	1			; 10AA 71
		ns	$A			; 10AB FA
		bz	L10B5			; 10AC 84 08
		li	$30			; 10AE 20 30
		ns	S			; 10B0 FC
		lis	$F			; 10B1 7F
		bnz	L10B5			; 10B2 94 02
		lis	3			; 10B4 73
L10B5:		lisu	6			; 10B5 66
		lisl	7			; 10B6 6F
		xs	7			; 10B7 E7
		lr	S, A			; 10B8 5C
L10B9:		lisu	2			; 10B9 62
		lisl	0			; 10BA 68
		lr	A, I			; 10BB 4D
		com				; 10BC 18
		inc				; 10BD 1F
		lr	4, A			; 10BE 54
		lr	A, D			; 10BF 4E
		com				; 10C0 18
		inc				; 10C1 1F
		lr	5, A			; 10C2 55
		lisu	3			; 10C3 63
		lisl	0			; 10C4 68
L10C5:		lr	A, I			; 10C5 4D
		as	4			; 10C6 C4
		bp	L10CB			; 10C7 81 03
		com				; 10C9 18
		inc				; 10CA 1F
L10CB:		lr	2, A			; 10CB 52
		lr	A, I			; 10CC 4D
		as	5			; 10CD C5
		bp	L10D2			; 10CE 81 03
		com				; 10D0 18
		inc				; 10D1 1F
L10D2:		as	2			; 10D2 C2
		ci	$F			; 10D3 25 0F
		bnc	L10DB			; 10D5 92 05
		lr	A, $A			; 10D7 4A
		oi	$10			; 10D8 22 10
		lr	$A, A			; 10DA 5A
L10DB:		lr	A, IS			; 10DB 0A
		ci	$1C			; 10DC 25 1C
		bp	L10C5			; 10DE 81 E6
;-------------------------------------------------------------------------------
; Player/object turn and automatic movement selection (strongly likely).
; Select control- or table-driven movement, iterate object groups and route the
; resulting event to the common frame/state handlers.
;-------------------------------------------------------------------------------
L10E0:		lisu	7			; 10E0 67
		lisl	5			; 10E1 6D
		lr	A, S			; 10E2 4C
		com				; 10E3 18
		inc				; 10E4 1F
		lisl	1			; 10E5 69
		as	S			; 10E6 CC
		clr				; 10E7 70
		lr	0, A			; 10E8 50
		bm	L10EE			; 10E9 91 04
		lisu	6			; 10EB 66
		lisl	7			; 10EC 6F
		lr	A, S			; 10ED 4C
L10EE:		lr	4, A			; 10EE 54
		lis	8			; 10EF 78
		ns	$A			; 10F0 FA
		bz	L10F6			; 10F1 84 04
		pi	L0A24			; 10F3 28 0A 24
L10F6:		lis	2			; 10F6 72
		ns	$A			; 10F7 FA
		bnz	L10FD			; 10F8 94 04
		jmp	L1137			; 10FA 29 11 37
L10FD:		lis	6			; 10FD 76
		lr	0, A			; 10FE 50
L10FF:		pi	L0A1F			; 10FF 28 0A 1F
		ds	0			; 1102 30
		bnz	L10FF			; 1103 94 FB
		pi	L08C1			; 1105 28 08 C1
		lis	$C			; 1108 7C
		lr	0, A			; 1109 50
		lis	8			; 110A 78
		ns	$A			; 110B FA
		bz	L111A			; 110C 84 0D
L110E:		pi	L0A1F			; 110E 28 0A 1F
		ds	0			; 1111 30
		lr	A, 0			; 1112 40
		ci	6			; 1113 25 06
		bm	L110E			; 1115 91 F8
		jmp	L1227			; 1117 29 12 27
L111A:		com				; 111A 18
		inc				; 111B 1F
		as	9			; 111C C9
		bnz	L1124			; 111D 94 06
		pi	L0A1F			; 111F 28 0A 1F
		br	L112E			; 1122 90 0B
L1124:		lis	1			; 1124 71
		ns	$A			; 1125 FA
		lis	2			; 1126 72
		bnz	L112A			; 1127 94 02
		lis	1			; 1129 71
L112A:		lr	4, A			; 112A 54
		pi	L0A24			; 112B 28 0A 24
L112E:		ds	0			; 112E 30
		lr	A, 0			; 112F 40
		ci	6			; 1130 25 06
		bm	L111A			; 1132 91 E7
		jmp	L1200			; 1134 29 12 00
;-------------------------------------------------------------------------------
; Formation lookup and object movement (strongly likely).
; Split L08C7 results into nibbles, normalize direction bits, read L1297-based
; formation records through L08DA and apply resulting moves.
;-------------------------------------------------------------------------------
L1137:		lis	2			; 1137 72
		lr	0, A			; 1138 50
		pi	L08C7			; 1139 28 08 C7
		ni	$F0			; 113C 21 F0
		sr	4			; 113E 14
		lr	7, A			; 113F 57
		pi	L0A10			; 1140 28 0A 10
		ds	0			; 1143 30
		pi	L08C7			; 1144 28 08 C7
		ni	$F			; 1147 21 0F
		lr	7, A			; 1149 57
		pi	L0A10			; 114A 28 0A 10
		lis	3			; 114D 73
		lr	0, A			; 114E 50
		xs	9			; 114F E9
		bz	L1159			; 1150 84 08
		clr				; 1152 70
		lr	4, A			; 1153 54
		pi	L0A24			; 1154 28 0A 24
		br	L1189			; 1157 90 31
L1159:		pi	L0A1F			; 1159 28 0A 1F
		lis	6			; 115C 76
		lr	0, A			; 115D 50
		pi	L08DA			; 115E 28 08 DA
		lisu	5			; 1161 65
		lisl	4			; 1162 6C
		bnz	L1166			; 1163 94 02
		lr	S, A			; 1165 5C
L1166:		li	$F0			; 1166 20 F0
		ns	S			; 1168 FC
		sr	4			; 1169 14
		lr	7, A			; 116A 57
		pi	L0A10			; 116B 28 0A 10
		ds	0			; 116E 30
		lisu	5			; 116F 65
		lisl	4			; 1170 6C
		lis	$F			; 1171 7F
		ns	S			; 1172 FC
		lr	7, A			; 1173 57
		pi	L0A10			; 1174 28 0A 10
		ds	0			; 1177 30
		pi	L08DA			; 1178 28 08 DA
		lm				; 117B 16
		lisu	5			; 117C 65
		lisl	5			; 117D 6D
		bnz	L1181			; 117E 94 02
		lr	S, A			; 1180 5C
L1181:		lis	$F			; 1181 7F
		ns	S			; 1182 FC
		lr	7, A			; 1183 57
		pi	L0A10			; 1184 28 0A 10
		br	L1194			; 1187 90 0C
L1189:		lis	6			; 1189 76
		lr	0, A			; 118A 50
L118B:		pi	L0A1F			; 118B 28 0A 1F
		ds	0			; 118E 30
		lr	A, 0			; 118F 40
		ci	3			; 1190 25 03
		bnz	L118B			; 1192 94 F8
;-------------------------------------------------------------------------------
; Multi-object update and event evaluation (strongly likely).
; Compare object 12 and 11, read the opposing controller and update objects 10
; through 7 using direct controls or generated direction steps.
;-------------------------------------------------------------------------------
L1194:		lis	$C			; 1194 7C
		lr	0, A			; 1195 50
		pi	L0D30			; 1196 28 0D 30
		ds	0			; 1199 30
		pi	L0D30			; 119A 28 0D 30
		pi	L08C1			; 119D 28 08 C1
		li	$30			; 11A0 20 30
		ns	S			; 11A2 FC
		bz	L11A9			; 11A3 84 05
		lr	A, $A			; 11A5 4A
		oi	$40			; 11A6 22 40
		lr	$A, A			; 11A8 5A
L11A9:		lis	$A			; 11A9 7A
		lr	0, A			; 11AA 50
		pi	L0A1F			; 11AB 28 0A 1F
		ds	0			; 11AE 30
L11AF:		li	$40			; 11AF 20 40
		ns	$A			; 11B1 FA
		bnz	L11CF			; 11B2 94 1C
		lr	A, 0			; 11B4 40
		ci	8			; 11B5 25 08
		bnz	L11BD			; 11B7 94 05
		lis	6			; 11B9 76
		lr	7, A			; 11BA 57
		br	L11BF			; 11BB 90 03
L11BD:		lis	5			; 11BD 75
		lr	7, A			; 11BE 57
L11BF:		lis	1			; 11BF 71
		lisu	7			; 11C0 67
		lisl	7			; 11C1 6F
		ns	S			; 11C2 FC
		lr	2, A			; 11C3 52
		lr	A, S			; 11C4 4C
		ai	$FF			; 11C5 24 FF
		ni	2			; 11C7 21 02
		sr	1			; 11C9 12
		as	0			; 11CA C0
		ni	1			; 11CB 21 01
		bnz	L11D4			; 11CD 94 06
L11CF:		pi	L0A1F			; 11CF 28 0A 1F
		br	L11D7			; 11D2 90 04
L11D4:		pi	L0D86			; 11D4 28 0D 86
L11D7:		ds	0			; 11D7 30
		lr	A, 0			; 11D8 40
		ci	7			; 11D9 25 07
		bm	L11AF			; 11DB 91 D3
		lisu	7			; 11DD 67
		lisl	3			; 11DE 6B
		li	$40			; 11DF 20 40
		ns	S			; 11E1 FC
		bnz	L11FD			; 11E2 94 1A
		lisl	7			; 11E4 6F
		lr	A, D			; 11E5 4E
		ci	4			; 11E6 25 04
		bp	L11F8			; 11E8 81 0F
		lisu	7			; 11EA 67
		lisl	5			; 11EB 6D
		lr	A, S			; 11EC 4C
		ci	$A			; 11ED 25 0A
		bm	L11F8			; 11EF 91 08
		lis	6			; 11F1 76
		lr	7, A			; 11F2 57
		pi	L0A10			; 11F3 28 0A 10
		br	L1200			; 11F6 90 09
L11F8:		pi	L0D30			; 11F8 28 0D 30
		br	L1200			; 11FB 90 04
L11FD:		pi	L0A1F			; 11FD 28 0A 1F
L1200:		lis	2			; 1200 72
		lr	5, A			; 1201 55
		clr				; 1202 70
		as	9			; 1203 C9
		bz	L1227			; 1204 84 22
		ci	6			; 1206 25 06
		bm	L120B			; 1208 91 02
		ds	5			; 120A 35
L120B:		lis	1			; 120B 71
		ns	$A			; 120C FA
		bz	L1210			; 120D 84 02
		ds	5			; 120F 35
L1210:		li	$10			; 1210 20 10
		as	9			; 1212 C9
		as	9			; 1213 C9
		lr	IS, A			; 1214 0B
		lr	A, S			; 1215 4C
		ds	5			; 1216 35
		bz	L1220			; 1217 84 08
		ci	$57			; 1219 25 57
		bp	L1227			; 121B 81 0B
		jmp	L0D13			; 121D 29 0D 13
L1220:		ci	$12			; 1220 25 12
		bm	L1227			; 1222 91 04
		jmp	L0D10			; 1224 29 0D 10
;-------------------------------------------------------------------------------
; Frame/time update (strongly likely)
; Advance O75, apply timing increment from L124D to O63, propagate carry into
; O62, optionally redraw, then re-enter the active update path at L0FCD.
;-------------------------------------------------------------------------------
L1227:		lisu	7			; 1227 67
		lisl	5			; 1228 6D
		lr	A, S			; 1229 4C
		inc				; 122A 1F
		lr	S, A			; 122B 5C
		ci	$60			; 122C 25 60
		bp	L1232			; 122E 81 03
		ds	S			; 1230 3C
		ds	S			; 1231 3C
L1232:		dci	L124D			; 1232 2A 12 4D
		lisu	7			; 1235 67
		lisl	2			; 1236 6A
		lr	A, S			; 1237 4C
		adc				; 1238 8E
		lm				; 1239 16
		lisu	6			; 123A 66
		lisl	3			; 123B 6B
		as	S			; 123C CC
		lr	S, A			; 123D 5C
		bnc	L124A			; 123E 92 0B
		lisu	6			; 1240 66
		lisl	2			; 1241 6A
		clr				; 1242 70
		as	S			; 1243 CC
		bz	L1247			; 1244 84 02
		ds	S			; 1246 3C
L1247:		pi	L09C4			; 1247 28 09 C4
L124A:		jmp	L0FCD			; 124A 29 0F CD
;===============================================================================
; DATA TABLES $124D-$13E9
; This range is addressed from reachable code through DCI. It must remain raw
; data. Labels below describe known consumers; contents are preserved exactly.
;===============================================================================
; frame/tempo increment table used at L1232
L124D:		.byte	$50, $14, $1D, $38	; 124D
; Delay/parameter table used by the short 1 kHz beep at L0C96.
L1251:		.byte	$48, $29, $01, $FF, $01, $00, $04, $00, $06, $00, $02, $00			; 1251
; State lookup table used by L0DB3.
L125D:		.byte	$00, $03, $07, $AB, $05, $04, $06, $AB, $01, $02, $08				; 125D
; Variable-length lookup/formation data consumed by L08C7.
L1268:		.byte	$08, $09, $0A, $0B, $0C, $17, $22, $23, $24, $77, $00, $77, $00, $77, $00, $77	; 1268
		.byte	$00, $08, $00, $0C, $88, $0F, $81, $11, $80, $13, $01, $77, $11, $03, $00, $07	; 1278
		.byte	$44, $0A, $50, $0C, $00, $0E, $00, $77, $11, $77, $00, $77, $00, $77, $00	; 1288
; Variable-length lookup/formation data consumed by L08DA.
L1297:		.byte	$0A, $1C, $25, $34, $40, $52, $5B, $67, $67, $77, $11, $03, $03, $11, $01, $06	; 1297
		.byte	$45, $01, $0F, $48, $01, $12, $08, $01, $17, $01, $01, $1B, $01, $04, $77, $06	; 12A7
		.byte	$11, $01, $0A, $11, $00, $0C, $95, $00, $77, $03, $11, $01, $0E, $49, $00, $14	; 12B7
		.byte	$04, $00, $19, $92, $01, $20, $98, $04, $77, $03, $51, $01, $12, $52, $01, $16	; 12C7
		.byte	$14, $01, $1B, $91, $01, $77, $03, $11, $05, $07, $51, $05, $0A, $51, $05, $0D	; 12D7
		.byte	$12, $09, $0E, $15, $09, $21, $A5, $04, $77, $08, $15, $01, $0C, $55, $01, $10	; 12E7
		.byte	$84, $01, $77, $02	; 12F7
; Alternate state/formation table selected inside L0DCB.
L12FB:		.byte	$11, $08, $07, $11, $09, $0B, $58, $09, $0D, $15, $00, $77, $77, $77, $1E, $0A	; 12FB
		.byte	$22, $0A, $1C, $06, $24, $06, $1E, $02						; 130B
; Primary state/formation table selected inside L0DCB.
L1313:		.byte	$22, $02, $1C, $02, $20, $02, $20, $07, $23, $0A, $2C, $03, $16, $02, $20, $08	; 1313
		.byte	$16, $0B, $2C, $0C, $1C, $14, $1C, $02, $20, $02				; 1323
; Three short selector/bitmap records chosen near L0BEC.
L132D:		.byte	$FF, $80		; 132D
L132F:		.byte	$AA, $80		; 132F
L1331:		.byte	$F7, $80		; 1331
; Eight consecutive graphics parameter records rendered from L0E83.
L1333:		.byte	$09, $37, $41, $59, $01, $09, $0E, $41, $01, $2A, $09, $0E, $41, $59, $01, $61	; 1333
		.byte	$0E, $41, $01, $2A, $0A, $0F, $C1, $57, $28, $58, $0C, $41, $01, $2E, $0A, $07	; 1343
		.byte	$C1, $61, $05, $12, $0C, $41, $01, $2E						; 1353
; Graphics parameter block entered through L0822 at $102F.
L135B:		.byte	$17, $C1, $09, $11	; 135B
; Fixed screen graphics parameter block entered through L0820 at $0E1F.
L135F:		.byte	$19, $11, $C1, $33, $07								; 135F
; Packed sprite/glyph data indexed as L1364 + 2*r1 by L0840.
L1364:		.byte	$F6, $DE, $59, $2E, $E7, $CE, $E7, $9E, $B7, $92, $F3, $9E, $F3, $DE, $E5, $24	; 1364
		.byte	$F7, $DE, $F7, $9E, $08, $20							; 1374
; Sound-effect table consumed by L088E from $0C6D.
L137A:		.byte	$27, $67, $25, $47, $23, $27, $00						; 137A
; Sound-effect table consumed by L088E from $0CB2.
L1381:		.byte	$04, $22, $07, $AB, $03, $BB, $08, $CC, $03, $34, $06, $12, $0D, $12, $0D, $12	; 1381
		.byte	$00			; 1391
; Sound-effect table consumed by L088E from $0EC4.
L1392:		.byte	$37, $6A, $1A, $61, $1B, $6A, $0E, $73, $1D, $73, $0D, $6A, $1D, $73, $0E, $73	; 1392
		.byte	$1D, $73, $0E, $73, $1B, $6A, $1D, $73, $10, $82, $20, $82, $0F, $7B, $31, $82	; 13A2
		.byte	$24, $90, $2B, $A2, $29, $9D, $24, $90, $20, $82, $1B, $6A, $16, $43, $18, $58	; 13B2
		.byte	$0D, $6A, $20, $82, $0E, $73, $1B, $6A, $18, $58, $2B, $43, $00			; 13C2
; Sound-effect table consumed by L088E from $0D27. The terminating zero is
; followed by unused ROM fill; retain all bytes to preserve the original image.
L13CF:		.byte	$31, $82, $0F, $7B, $24, $90, $20, $82, $41, $A2, $14, $9D, $31, $AD, $2B, $A2	; 13CF
		.byte	$36, $B6, $36, $B6, $36, $B6, $36, $B6, $6D, $B6, $00, $FF, $FF, $FF, $FF, $FF	; 13DF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 13EF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 13FF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 140F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 141F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 142F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 143F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 144F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 145F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 146F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 147F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 148F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 149F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14AF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14BF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14CF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14DF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14EF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 14FF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 150F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 151F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 152F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 153F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 154F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 155F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 156F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 157F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 158F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 159F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15AF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15BF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15CF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15DF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15EF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 15FF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 160F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 161F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 162F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 163F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 164F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 165F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 166F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 167F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 168F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 169F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16AF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16BF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16CF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16DF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16EF
		.byte	$FF, $00, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 16FF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 170F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 171F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 172F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 173F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 174F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 175F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 176F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 177F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 178F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 179F
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 17AF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 17BF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 17CF
		.byte	$FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF	; 17DF
		.byte	$FF, $00, $10, $E9, $1B, $DD, $E5, $00, $00, $00, $00, $00, $00, $00, $00, $00	; 17EF
		.byte	$00			; 17FF

; Interpreting the last bytes as a five bit alphabet and using ROT24 - it spells PANBLAST, perhaps it means something to someone.

		IF 0

Smart data report
=================
Mode: enabled by -s or /s
Memory range: $0800-$17FF
Code bytes: 2630
Data bytes: 1466

DCI data roots from reachable code:
  $1333 from $0E7E
  $1392 from $0EC4
  $135F from $0E1F
  $1364 from $0840
  $1313 from $0DCB
  $12FB from $0DD8
  $1331 from $0BEF
  $132F from $0BF9
  $132D from $0C00
  $137A from $0C6D
  $1251 from $0C97
  $1381 from $0CB2
  $125D from $0DB3
  $135B from $102F
  $13CF from $0D27
  $124D from $1232
  $1268 from $08C7
  $1297 from $08DA

Data intervals emitted as .byte:
  $0837-$0839 (3 bytes)
  $0C40-$0C43 (4 bytes)
  $124D-$17FF (1459 bytes)

		ENDIF