misc/crtcmmtest.s
;========================================================================================
; crtcmmtest.s
; Copyright (C) 2003-2021 Makoto Kamada
;
; This file is part of the XEiJ (X68000 Emulator in Java).
; You can use, modify and redistribute the XEiJ if the conditions are met.
; Read the XEiJ License for more details.
; https://stdkmd.net/xeij/
;========================================================================================
.include doscall.mac
;--------------------------------------------------------------------------------
;macros
leastr .macro s0,an
.data
@str:
.dc.b s0,0
.text
lea.l @str,an
.endm
peastr .macro s0,s1,s2,s3,s4,s5,s6,s7,s8,s9
.data
@str:
.dc.b s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,0
.text
pea.l @str
.endm
print .macro s0,s1,s2,s3,s4,s5,s6,s7,s8,s9
peastr s0,s1,s2,s3,s4,s5,s6,s7,s8,s9
jbsr print_by_write
addq.l #4,sp
.endm
putchar .macro c0
move.w c0,-(sp)
jbsr putchar_by_write
addq.l #2,sp
.endm
;--------------------------------------------------------------------------------
;main
.text
.even
main:
;start
bsr test_start
clr.l -(sp)
DOS _SUPER
move.l d0,(sp)
;supervisor mode
lea.l $00e80028,a4 ;CRTC R20
move.b (a4),-(sp) ;save memory mode
move.w $00e82600,-(sp)
andi.w #$ffe0,$00e82600 ;disable graphic screen
bsr area_check
tst.l test_failed
bne finish
;fill graphic screen
move.b #3,(a4) ;memory mode 3
lea.l $00c00000,a0
moveq.l #$ffffffff,d0
move.l d0,d1
move.l d0,d2
move.l d0,d3
move.l d0,d4
move.l d0,d5
move.l d0,d6
movea.l d0,a1
move.w #2048-1,d7 ;4*8*8*2048=524288
@@:
.irp i,0,1,2,3,4,5,6,7
movem.l d0-d6/a1,4*8*i(a0)
.endm
lea.l 4*8*8(a0),a0
dbra d7,@b
;loop
cmpi.b #6,$0CBC.w
beq 1f
lea.l data_table_030,a5
bra 2f
1: lea.l data_table_060,a5
2:
bra 209f
201:
movea.l (a5)+,a3
bra 109f
101:
move.b (a3)+,d1 ;memory mode
move.b (a3)+,d2 ;access mode
move.w (a3)+,d3 ;vram content before access
movea.l (a3)+,a1 ;address
movea.l (a3)+,a2 ;even address in memory mode 3
move.w (a3)+,d4 ;expected read data or written data
move.w (a3)+,d5 ;expected vram content after access
move.b #3,(a4) ;memory mode 3
move.w (a2),-(sp) ;save vram content
move.w d3,(a2) ;vram content before access
move.b d1,(a4) ;memory mode
tst.b d2 ;access mode
bne 11f
;read byte
clr.w d6
move.b (a1),d6 ;actual read data
bra 14f
11:
cmp.b #2,d2
bcc 12f
;read word
move.w (a1),d6 ;actual read data
bra 14f
12:
bne 13f
;write byte
move.w d4,d6
move.b d4,(a1) ;written data
bra 14f
13:
;write word
move.w d4,d6
move.w d4,(a1) ;written data
14:
move.b #3,(a4) ;memory mode 3
move.w (a2),d7 ;actual vram content after access
move.w (sp)+,(a2) ;restore vram content
;check
bsr test_check
109:
tst.l (a3)
bpl 101b
209:
tst.l (a5)
bne 201b
;clear graphic screen
move.b #3,(a4) ;memory mode 3
lea.l $00c00000,a0
moveq.l #$00000000,d0
move.l d0,d1
move.l d0,d2
move.l d0,d3
move.l d0,d4
move.l d0,d5
move.l d0,d6
movea.l d0,a1
move.w #2048-1,d7 ;4*8*8*2048=524288
@@:
.irp i,0,1,2,3,4,5,6,7
movem.l d0-d6/a1,4*8*i(a0)
.endm
lea.l 4*8*8(a0),a0
dbra d7,@b
finish:
move.w (sp)+,$00e82600
move.b (sp)+,(a4) ;restore memory mode
DOS _SUPER
addq.l #4,sp
;user mode
;end
bsr test_end
exit:
DOS _EXIT
;--------------------------------------------------------------------------------
;area check
.text
.even
area_check:
movem.l d0-d1/a0-a1,-(sp)
moveq.l #0,d0 ;bus error status
move.w sr,-(sp)
ori.w #$0700,sr
move.l $0008.w,-(sp)
move.l #buserr,$0008.w
movea.l sp,a1
moveq.l #0,d1 ;memory mode
1:
move.b d1,$00e80028
.irp addr,$00c00000,$00c80000,$00d00000,$00d80000
add.l d0,d0
lea.l @f(pc),a0
tst.w addr
@@:
.endm
addq.b #1,d1
cmp.b #8,d1
blo 1b
move.l (sp)+,$0008.w
move.w (sp)+,sr
addq.l #1,test_tested
move.l d0,d1
move.l bus_error_status,d0
cmp.l d0,d1
beq 9f
addq.l #1,test_failed
;expected
print 9,'.dc.l',9
bsr print_hex8
print 9,';expected',13,10
;actual
print 9,'.dc.l',9
move.l d1,d0
bsr print_hex8
print 9,';actual',13,10
9:
movem.l (sp)+,d0-d1/a0-a1
rts
buserr:
addq.b #1,d0
movea.l a1,sp
jmp (a0)
;--------------------------------------------------------------------------------
;data
.text
;bus error status
; bit31 memory mode 0 $00c00000 0=exists,1=not exists
; bit30 $00c80000
; bit29 $00d00000
; bit28 $00d80000
; bit27 memory mode 1 $00c00000
; :
; bit4 memory mode 6 $00d80000
; bit3 memory mode 7 $00c00000
; bit2 $00c80000
; bit1 $00d00000
; bit0 $00d80000
.align 4
bus_error_status:
.dc.l $03070000
.align 4
data_table_030:
.dc.l memory_mode_0
.dc.l memory_mode_1
.dc.l memory_mode_2_030
.dc.l memory_mode_3
.dc.l memory_mode_4
.dc.l memory_mode_5
.dc.l memory_mode_6
.dc.l memory_mode_7
.dc.l 0
data_table_060:
.dc.l memory_mode_0
.dc.l memory_mode_1
.dc.l memory_mode_2_060
.dc.l memory_mode_3
.dc.l memory_mode_4
.dc.l memory_mode_5
.dc.l memory_mode_6
.dc.l memory_mode_7
.dc.l 0
; +0 memory mode<<24|access mode<<16|vram content before access
; access mode 0=read byte,1=read word,2=write byte,3=write word
; +4 address
; +8 even address in memory mode 3
; +12 expected read data or written data<<16|expected vram content after access
memory_mode_0:
; +--------------------------+
; | 0x00c00000 .. 0x00c003ff |
; | 0x00c00400 0x00c007ff |
; | : : |
; | 0x00c7f800 0x00c7fbff |
; | 0x00c7fc00 .. 0x00c7ffff |
; +--------------------------+
;read byte
.dc.l $00001234,$00c00000,$00c00000,$00001234
.dc.l $00001234,$00c00001,$00c00000,$00041234
.dc.l $00001234,$00c003fe,$00c003fe,$00001234
.dc.l $00001234,$00c003ff,$00c003fe,$00041234
.dc.l $00001234,$00c00400,$00c00400,$00001234
.dc.l $00001234,$00c00401,$00c00400,$00041234
.dc.l $00001234,$00c007fe,$00c007fe,$00001234
.dc.l $00001234,$00c007ff,$00c007fe,$00041234
.dc.l $00001234,$00c7f800,$00c7f800,$00001234
.dc.l $00001234,$00c7f801,$00c7f800,$00041234
.dc.l $00001234,$00c7fbfe,$00c7fbfe,$00001234
.dc.l $00001234,$00c7fbff,$00c7fbfe,$00041234
.dc.l $00001234,$00c7fc00,$00c7fc00,$00001234
.dc.l $00001234,$00c7fc01,$00c7fc00,$00041234
.dc.l $00001234,$00c7fffe,$00c7fffe,$00001234
.dc.l $00001234,$00c7ffff,$00c7fffe,$00041234
.dc.l $00001234,$00c80000,$00c00000,$00001234
.dc.l $00001234,$00c80001,$00c00000,$00031234
.dc.l $00001234,$00c803fe,$00c003fe,$00001234
.dc.l $00001234,$00c803ff,$00c003fe,$00031234
.dc.l $00001234,$00c80400,$00c00400,$00001234
.dc.l $00001234,$00c80401,$00c00400,$00031234
.dc.l $00001234,$00c807fe,$00c007fe,$00001234
.dc.l $00001234,$00c807ff,$00c007fe,$00031234
.dc.l $00001234,$00cff800,$00c7f800,$00001234
.dc.l $00001234,$00cff801,$00c7f800,$00031234
.dc.l $00001234,$00cffbfe,$00c7fbfe,$00001234
.dc.l $00001234,$00cffbff,$00c7fbfe,$00031234
.dc.l $00001234,$00cffc00,$00c7fc00,$00001234
.dc.l $00001234,$00cffc01,$00c7fc00,$00031234
.dc.l $00001234,$00cffffe,$00c7fffe,$00001234
.dc.l $00001234,$00cfffff,$00c7fffe,$00031234
.dc.l $00001234,$00d00000,$00c00000,$00001234
.dc.l $00001234,$00d00001,$00c00000,$00021234
.dc.l $00001234,$00d003fe,$00c003fe,$00001234
.dc.l $00001234,$00d003ff,$00c003fe,$00021234
.dc.l $00001234,$00d00400,$00c00400,$00001234
.dc.l $00001234,$00d00401,$00c00400,$00021234
.dc.l $00001234,$00d007fe,$00c007fe,$00001234
.dc.l $00001234,$00d007ff,$00c007fe,$00021234
.dc.l $00001234,$00d7f800,$00c7f800,$00001234
.dc.l $00001234,$00d7f801,$00c7f800,$00021234
.dc.l $00001234,$00d7fbfe,$00c7fbfe,$00001234
.dc.l $00001234,$00d7fbff,$00c7fbfe,$00021234
.dc.l $00001234,$00d7fc00,$00c7fc00,$00001234
.dc.l $00001234,$00d7fc01,$00c7fc00,$00021234
.dc.l $00001234,$00d7fffe,$00c7fffe,$00001234
.dc.l $00001234,$00d7ffff,$00c7fffe,$00021234
.dc.l $00001234,$00d80000,$00c00000,$00001234
.dc.l $00001234,$00d80001,$00c00000,$00011234
.dc.l $00001234,$00d803fe,$00c003fe,$00001234
.dc.l $00001234,$00d803ff,$00c003fe,$00011234
.dc.l $00001234,$00d80400,$00c00400,$00001234
.dc.l $00001234,$00d80401,$00c00400,$00011234
.dc.l $00001234,$00d807fe,$00c007fe,$00001234
.dc.l $00001234,$00d807ff,$00c007fe,$00011234
.dc.l $00001234,$00dff800,$00c7f800,$00001234
.dc.l $00001234,$00dff801,$00c7f800,$00011234
.dc.l $00001234,$00dffbfe,$00c7fbfe,$00001234
.dc.l $00001234,$00dffbff,$00c7fbfe,$00011234
.dc.l $00001234,$00dffc00,$00c7fc00,$00001234
.dc.l $00001234,$00dffc01,$00c7fc00,$00011234
.dc.l $00001234,$00dffffe,$00c7fffe,$00001234
.dc.l $00001234,$00dfffff,$00c7fffe,$00011234
;read word
.dc.l $00011234,$00c00000,$00c00000,$00041234
.dc.l $00011234,$00c003fe,$00c003fe,$00041234
.dc.l $00011234,$00c00400,$00c00400,$00041234
.dc.l $00011234,$00c007fe,$00c007fe,$00041234
.dc.l $00011234,$00c7f800,$00c7f800,$00041234
.dc.l $00011234,$00c7fbfe,$00c7fbfe,$00041234
.dc.l $00011234,$00c7fc00,$00c7fc00,$00041234
.dc.l $00011234,$00c7fffe,$00c7fffe,$00041234
.dc.l $00011234,$00c80000,$00c00000,$00031234
.dc.l $00011234,$00c803fe,$00c003fe,$00031234
.dc.l $00011234,$00c80400,$00c00400,$00031234
.dc.l $00011234,$00c807fe,$00c007fe,$00031234
.dc.l $00011234,$00cff800,$00c7f800,$00031234
.dc.l $00011234,$00cffbfe,$00c7fbfe,$00031234
.dc.l $00011234,$00cffc00,$00c7fc00,$00031234
.dc.l $00011234,$00cffffe,$00c7fffe,$00031234
.dc.l $00011234,$00d00000,$00c00000,$00021234
.dc.l $00011234,$00d003fe,$00c003fe,$00021234
.dc.l $00011234,$00d00400,$00c00400,$00021234
.dc.l $00011234,$00d007fe,$00c007fe,$00021234
.dc.l $00011234,$00d7f800,$00c7f800,$00021234
.dc.l $00011234,$00d7fbfe,$00c7fbfe,$00021234
.dc.l $00011234,$00d7fc00,$00c7fc00,$00021234
.dc.l $00011234,$00d7fffe,$00c7fffe,$00021234
.dc.l $00011234,$00d80000,$00c00000,$00011234
.dc.l $00011234,$00d803fe,$00c003fe,$00011234
.dc.l $00011234,$00d80400,$00c00400,$00011234
.dc.l $00011234,$00d807fe,$00c007fe,$00011234
.dc.l $00011234,$00dff800,$00c7f800,$00011234
.dc.l $00011234,$00dffbfe,$00c7fbfe,$00011234
.dc.l $00011234,$00dffc00,$00c7fc00,$00011234
.dc.l $00011234,$00dffffe,$00c7fffe,$00011234
;write byte
.dc.l $00021234,$00c00000,$00c00000,$56781234
.dc.l $00021234,$00c00001,$00c00000,$56781238
.dc.l $00021234,$00c003fe,$00c003fe,$56781234
.dc.l $00021234,$00c003ff,$00c003fe,$56781238
.dc.l $00021234,$00c00400,$00c00400,$56781234
.dc.l $00021234,$00c00401,$00c00400,$56781238
.dc.l $00021234,$00c007fe,$00c007fe,$56781234
.dc.l $00021234,$00c007ff,$00c007fe,$56781238
.dc.l $00021234,$00c7f800,$00c7f800,$56781234
.dc.l $00021234,$00c7f801,$00c7f800,$56781238
.dc.l $00021234,$00c7fbfe,$00c7fbfe,$56781234
.dc.l $00021234,$00c7fbff,$00c7fbfe,$56781238
.dc.l $00021234,$00c7fc00,$00c7fc00,$56781234
.dc.l $00021234,$00c7fc01,$00c7fc00,$56781238
.dc.l $00021234,$00c7fffe,$00c7fffe,$56781234
.dc.l $00021234,$00c7ffff,$00c7fffe,$56781238
.dc.l $00021234,$00c80000,$00c00000,$56781234
.dc.l $00021234,$00c80001,$00c00000,$56781284
.dc.l $00021234,$00c803fe,$00c003fe,$56781234
.dc.l $00021234,$00c803ff,$00c003fe,$56781284
.dc.l $00021234,$00c80400,$00c00400,$56781234
.dc.l $00021234,$00c80401,$00c00400,$56781284
.dc.l $00021234,$00c807fe,$00c007fe,$56781234
.dc.l $00021234,$00c807ff,$00c007fe,$56781284
.dc.l $00021234,$00cff800,$00c7f800,$56781234
.dc.l $00021234,$00cff801,$00c7f800,$56781284
.dc.l $00021234,$00cffbfe,$00c7fbfe,$56781234
.dc.l $00021234,$00cffbff,$00c7fbfe,$56781284
.dc.l $00021234,$00cffc00,$00c7fc00,$56781234
.dc.l $00021234,$00cffc01,$00c7fc00,$56781284
.dc.l $00021234,$00cffffe,$00c7fffe,$56781234
.dc.l $00021234,$00cfffff,$00c7fffe,$56781284
.dc.l $00021234,$00d00000,$00c00000,$56781234
.dc.l $00021234,$00d00001,$00c00000,$56781834
.dc.l $00021234,$00d003fe,$00c003fe,$56781234
.dc.l $00021234,$00d003ff,$00c003fe,$56781834
.dc.l $00021234,$00d00400,$00c00400,$56781234
.dc.l $00021234,$00d00401,$00c00400,$56781834
.dc.l $00021234,$00d007fe,$00c007fe,$56781234
.dc.l $00021234,$00d007ff,$00c007fe,$56781834
.dc.l $00021234,$00d7f800,$00c7f800,$56781234
.dc.l $00021234,$00d7f801,$00c7f800,$56781834
.dc.l $00021234,$00d7fbfe,$00c7fbfe,$56781234
.dc.l $00021234,$00d7fbff,$00c7fbfe,$56781834
.dc.l $00021234,$00d7fc00,$00c7fc00,$56781234
.dc.l $00021234,$00d7fc01,$00c7fc00,$56781834
.dc.l $00021234,$00d7fffe,$00c7fffe,$56781234
.dc.l $00021234,$00d7ffff,$00c7fffe,$56781834
.dc.l $00021234,$00d80000,$00c00000,$56781234
.dc.l $00021234,$00d80001,$00c00000,$56788234
.dc.l $00021234,$00d803fe,$00c003fe,$56781234
.dc.l $00021234,$00d803ff,$00c003fe,$56788234
.dc.l $00021234,$00d80400,$00c00400,$56781234
.dc.l $00021234,$00d80401,$00c00400,$56788234
.dc.l $00021234,$00d807fe,$00c007fe,$56781234
.dc.l $00021234,$00d807ff,$00c007fe,$56788234
.dc.l $00021234,$00dff800,$00c7f800,$56781234
.dc.l $00021234,$00dff801,$00c7f800,$56788234
.dc.l $00021234,$00dffbfe,$00c7fbfe,$56781234
.dc.l $00021234,$00dffbff,$00c7fbfe,$56788234
.dc.l $00021234,$00dffc00,$00c7fc00,$56781234
.dc.l $00021234,$00dffc01,$00c7fc00,$56788234
.dc.l $00021234,$00dffffe,$00c7fffe,$56781234
.dc.l $00021234,$00dfffff,$00c7fffe,$56788234
;write word
.dc.l $00031234,$00c00000,$00c00000,$56781238
.dc.l $00031234,$00c003fe,$00c003fe,$56781238
.dc.l $00031234,$00c00400,$00c00400,$56781238
.dc.l $00031234,$00c007fe,$00c007fe,$56781238
.dc.l $00031234,$00c7f800,$00c7f800,$56781238
.dc.l $00031234,$00c7fbfe,$00c7fbfe,$56781238
.dc.l $00031234,$00c7fc00,$00c7fc00,$56781238
.dc.l $00031234,$00c7fffe,$00c7fffe,$56781238
.dc.l $00031234,$00c80000,$00c00000,$56781284
.dc.l $00031234,$00c803fe,$00c003fe,$56781284
.dc.l $00031234,$00c80400,$00c00400,$56781284
.dc.l $00031234,$00c807fe,$00c007fe,$56781284
.dc.l $00031234,$00cff800,$00c7f800,$56781284
.dc.l $00031234,$00cffbfe,$00c7fbfe,$56781284
.dc.l $00031234,$00cffc00,$00c7fc00,$56781284
.dc.l $00031234,$00cffffe,$00c7fffe,$56781284
.dc.l $00031234,$00d00000,$00c00000,$56781834
.dc.l $00031234,$00d003fe,$00c003fe,$56781834
.dc.l $00031234,$00d00400,$00c00400,$56781834
.dc.l $00031234,$00d007fe,$00c007fe,$56781834
.dc.l $00031234,$00d7f800,$00c7f800,$56781834
.dc.l $00031234,$00d7fbfe,$00c7fbfe,$56781834
.dc.l $00031234,$00d7fc00,$00c7fc00,$56781834
.dc.l $00031234,$00d7fffe,$00c7fffe,$56781834
.dc.l $00031234,$00d80000,$00c00000,$56788234
.dc.l $00031234,$00d803fe,$00c003fe,$56788234
.dc.l $00031234,$00d80400,$00c00400,$56788234
.dc.l $00031234,$00d807fe,$00c007fe,$56788234
.dc.l $00031234,$00dff800,$00c7f800,$56788234
.dc.l $00031234,$00dffbfe,$00c7fbfe,$56788234
.dc.l $00031234,$00dffc00,$00c7fc00,$56788234
.dc.l $00031234,$00dffffe,$00c7fffe,$56788234
;
.dc.l -1
memory_mode_1:
; +--------------------------+
; | 0x00c00000 .. 0x00c003ff |
; | 0x00c00400 0x00c007ff |
; | : : |
; | 0x00c7f800 0x00c7fbff |
; | 0x00c7fc00 .. 0x00c7ffff |
; +--------------------------+
;read byte
.dc.l $01001234,$00c00000,$00c00000,$00001234
.dc.l $01001234,$00c00001,$00c00000,$00341234
.dc.l $01001234,$00c003fe,$00c003fe,$00001234
.dc.l $01001234,$00c003ff,$00c003fe,$00341234
.dc.l $01001234,$00c00400,$00c00400,$00001234
.dc.l $01001234,$00c00401,$00c00400,$00341234
.dc.l $01001234,$00c007fe,$00c007fe,$00001234
.dc.l $01001234,$00c007ff,$00c007fe,$00341234
.dc.l $01001234,$00c7f800,$00c7f800,$00001234
.dc.l $01001234,$00c7f801,$00c7f800,$00341234
.dc.l $01001234,$00c7fbfe,$00c7fbfe,$00001234
.dc.l $01001234,$00c7fbff,$00c7fbfe,$00341234
.dc.l $01001234,$00c7fc00,$00c7fc00,$00001234
.dc.l $01001234,$00c7fc01,$00c7fc00,$00341234
.dc.l $01001234,$00c7fffe,$00c7fffe,$00001234
.dc.l $01001234,$00c7ffff,$00c7fffe,$00341234
.dc.l $01001234,$00c80000,$00c00000,$00001234
.dc.l $01001234,$00c80001,$00c00000,$00121234
.dc.l $01001234,$00c803fe,$00c003fe,$00001234
.dc.l $01001234,$00c803ff,$00c003fe,$00121234
.dc.l $01001234,$00c80400,$00c00400,$00001234
.dc.l $01001234,$00c80401,$00c00400,$00121234
.dc.l $01001234,$00c807fe,$00c007fe,$00001234
.dc.l $01001234,$00c807ff,$00c007fe,$00121234
.dc.l $01001234,$00cff800,$00c7f800,$00001234
.dc.l $01001234,$00cff801,$00c7f800,$00121234
.dc.l $01001234,$00cffbfe,$00c7fbfe,$00001234
.dc.l $01001234,$00cffbff,$00c7fbfe,$00121234
.dc.l $01001234,$00cffc00,$00c7fc00,$00001234
.dc.l $01001234,$00cffc01,$00c7fc00,$00121234
.dc.l $01001234,$00cffffe,$00c7fffe,$00001234
.dc.l $01001234,$00cfffff,$00c7fffe,$00121234
;read word
.dc.l $01011234,$00c00000,$00c00000,$00341234
.dc.l $01011234,$00c003fe,$00c003fe,$00341234
.dc.l $01011234,$00c00400,$00c00400,$00341234
.dc.l $01011234,$00c007fe,$00c007fe,$00341234
.dc.l $01011234,$00c7f800,$00c7f800,$00341234
.dc.l $01011234,$00c7fbfe,$00c7fbfe,$00341234
.dc.l $01011234,$00c7fc00,$00c7fc00,$00341234
.dc.l $01011234,$00c7fffe,$00c7fffe,$00341234
.dc.l $01011234,$00c80000,$00c00000,$00121234
.dc.l $01011234,$00c803fe,$00c003fe,$00121234
.dc.l $01011234,$00c80400,$00c00400,$00121234
.dc.l $01011234,$00c807fe,$00c007fe,$00121234
.dc.l $01011234,$00cff800,$00c7f800,$00121234
.dc.l $01011234,$00cffbfe,$00c7fbfe,$00121234
.dc.l $01011234,$00cffc00,$00c7fc00,$00121234
.dc.l $01011234,$00cffffe,$00c7fffe,$00121234
;write byte
.dc.l $01021234,$00c00000,$00c00000,$56781234
.dc.l $01021234,$00c00001,$00c00000,$56781278
.dc.l $01021234,$00c003fe,$00c003fe,$56781234
.dc.l $01021234,$00c003ff,$00c003fe,$56781278
.dc.l $01021234,$00c00400,$00c00400,$56781234
.dc.l $01021234,$00c00401,$00c00400,$56781278
.dc.l $01021234,$00c007fe,$00c007fe,$56781234
.dc.l $01021234,$00c007ff,$00c007fe,$56781278
.dc.l $01021234,$00c7f800,$00c7f800,$56781234
.dc.l $01021234,$00c7f801,$00c7f800,$56781278
.dc.l $01021234,$00c7fbfe,$00c7fbfe,$56781234
.dc.l $01021234,$00c7fbff,$00c7fbfe,$56781278
.dc.l $01021234,$00c7fc00,$00c7fc00,$56781234
.dc.l $01021234,$00c7fc01,$00c7fc00,$56781278
.dc.l $01021234,$00c7fffe,$00c7fffe,$56781234
.dc.l $01021234,$00c7ffff,$00c7fffe,$56781278
.dc.l $01021234,$00c80000,$00c00000,$56781234
.dc.l $01021234,$00c80001,$00c00000,$56787834
.dc.l $01021234,$00c803fe,$00c003fe,$56781234
.dc.l $01021234,$00c803ff,$00c003fe,$56787834
.dc.l $01021234,$00c80400,$00c00400,$56781234
.dc.l $01021234,$00c80401,$00c00400,$56787834
.dc.l $01021234,$00c807fe,$00c007fe,$56781234
.dc.l $01021234,$00c807ff,$00c007fe,$56787834
.dc.l $01021234,$00cff800,$00c7f800,$56781234
.dc.l $01021234,$00cff801,$00c7f800,$56787834
.dc.l $01021234,$00cffbfe,$00c7fbfe,$56781234
.dc.l $01021234,$00cffbff,$00c7fbfe,$56787834
.dc.l $01021234,$00cffc00,$00c7fc00,$56781234
.dc.l $01021234,$00cffc01,$00c7fc00,$56787834
.dc.l $01021234,$00cffffe,$00c7fffe,$56781234
.dc.l $01021234,$00cfffff,$00c7fffe,$56787834
;write word
.dc.l $01031234,$00c00000,$00c00000,$56781278
.dc.l $01031234,$00c003fe,$00c003fe,$56781278
.dc.l $01031234,$00c00400,$00c00400,$56781278
.dc.l $01031234,$00c007fe,$00c007fe,$56781278
.dc.l $01031234,$00c7f800,$00c7f800,$56781278
.dc.l $01031234,$00c7fbfe,$00c7fbfe,$56781278
.dc.l $01031234,$00c7fc00,$00c7fc00,$56781278
.dc.l $01031234,$00c7fffe,$00c7fffe,$56781278
.dc.l $01031234,$00c80000,$00c00000,$56787834
.dc.l $01031234,$00c803fe,$00c003fe,$56787834
.dc.l $01031234,$00c80400,$00c00400,$56787834
.dc.l $01031234,$00c807fe,$00c007fe,$56787834
.dc.l $01031234,$00cff800,$00c7f800,$56787834
.dc.l $01031234,$00cffbfe,$00c7fbfe,$56787834
.dc.l $01031234,$00cffc00,$00c7fc00,$56787834
.dc.l $01031234,$00cffffe,$00c7fffe,$56787834
;
.dc.l -1
memory_mode_2_030:
; +--------------------------+
; | 0x00c00000 .. 0x00c003ff |
; | 0x00c00400 0x00c007ff |
; | : : |
; | 0x00c7f800 0x00c7fbff |
; | 0x00c7fc00 .. 0x00c7ffff |
; +--------------------------+
;read byte
.dc.l $02001234,$00c00000,$00c00000,$00001234
.dc.l $02001234,$00c00001,$00c00000,$00341234
.dc.l $02001234,$00c003fe,$00c003fe,$00001234
.dc.l $02001234,$00c003ff,$00c003fe,$00341234
.dc.l $02001234,$00c00400,$00c00400,$00001234
.dc.l $02001234,$00c00401,$00c00400,$00341234
.dc.l $02001234,$00c007fe,$00c007fe,$00001234
.dc.l $02001234,$00c007ff,$00c007fe,$00341234
.dc.l $02001234,$00c7f800,$00c7f800,$00001234
.dc.l $02001234,$00c7f801,$00c7f800,$00341234
.dc.l $02001234,$00c7fbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00c7fbff,$00c7fbfe,$00341234
.dc.l $02001234,$00c7fc00,$00c7fc00,$00001234
.dc.l $02001234,$00c7fc01,$00c7fc00,$00341234
.dc.l $02001234,$00c7fffe,$00c7fffe,$00001234
.dc.l $02001234,$00c7ffff,$00c7fffe,$00341234
.dc.l $02001234,$00c80000,$00c00000,$00001234
.dc.l $02001234,$00c80001,$00c00000,$00001234
.dc.l $02001234,$00c803fe,$00c003fe,$00001234
.dc.l $02001234,$00c803ff,$00c003fe,$00001234
.dc.l $02001234,$00c80400,$00c00400,$00001234
.dc.l $02001234,$00c80401,$00c00400,$00001234
.dc.l $02001234,$00c807fe,$00c007fe,$00001234
.dc.l $02001234,$00c807ff,$00c007fe,$00001234
.dc.l $02001234,$00cff800,$00c7f800,$00001234
.dc.l $02001234,$00cff801,$00c7f800,$00001234
.dc.l $02001234,$00cffbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00cffbff,$00c7fbfe,$00001234
.dc.l $02001234,$00cffc00,$00c7fc00,$00001234
.dc.l $02001234,$00cffc01,$00c7fc00,$00001234
.dc.l $02001234,$00cffffe,$00c7fffe,$00001234
.dc.l $02001234,$00cfffff,$00c7fffe,$00001234
.dc.l $02001234,$00d00000,$00c00000,$00001234
.dc.l $02001234,$00d00001,$00c00000,$00341234
.dc.l $02001234,$00d003fe,$00c003fe,$00001234
.dc.l $02001234,$00d003ff,$00c003fe,$00341234
.dc.l $02001234,$00d00400,$00c00400,$00001234
.dc.l $02001234,$00d00401,$00c00400,$00341234
.dc.l $02001234,$00d007fe,$00c007fe,$00001234
.dc.l $02001234,$00d007ff,$00c007fe,$00341234
.dc.l $02001234,$00d7f800,$00c7f800,$00001234
.dc.l $02001234,$00d7f801,$00c7f800,$00341234
.dc.l $02001234,$00d7fbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00d7fbff,$00c7fbfe,$00341234
.dc.l $02001234,$00d7fc00,$00c7fc00,$00001234
.dc.l $02001234,$00d7fc01,$00c7fc00,$00341234
.dc.l $02001234,$00d7fffe,$00c7fffe,$00001234
.dc.l $02001234,$00d7ffff,$00c7fffe,$00341234
.dc.l $02001234,$00d80000,$00c00000,$00001234
.dc.l $02001234,$00d80001,$00c00000,$00001234
.dc.l $02001234,$00d803fe,$00c003fe,$00001234
.dc.l $02001234,$00d803ff,$00c003fe,$00001234
.dc.l $02001234,$00d80400,$00c00400,$00001234
.dc.l $02001234,$00d80401,$00c00400,$00001234
.dc.l $02001234,$00d807fe,$00c007fe,$00001234
.dc.l $02001234,$00d807ff,$00c007fe,$00001234
.dc.l $02001234,$00dff800,$00c7f800,$00001234
.dc.l $02001234,$00dff801,$00c7f800,$00001234
.dc.l $02001234,$00dffbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00dffbff,$00c7fbfe,$00001234
.dc.l $02001234,$00dffc00,$00c7fc00,$00001234
.dc.l $02001234,$00dffc01,$00c7fc00,$00001234
.dc.l $02001234,$00dffffe,$00c7fffe,$00001234
.dc.l $02001234,$00dfffff,$00c7fffe,$00001234
;read word
.dc.l $02011234,$00c00000,$00c00000,$00341234
.dc.l $02011234,$00c003fe,$00c003fe,$00341234
.dc.l $02011234,$00c00400,$00c00400,$00341234
.dc.l $02011234,$00c007fe,$00c007fe,$00341234
.dc.l $02011234,$00c7f800,$00c7f800,$00341234
.dc.l $02011234,$00c7fbfe,$00c7fbfe,$00341234
.dc.l $02011234,$00c7fc00,$00c7fc00,$00341234
.dc.l $02011234,$00c7fffe,$00c7fffe,$00341234
.dc.l $02011234,$00c80000,$00c00000,$00121234
.dc.l $02011234,$00c803fe,$00c003fe,$00121234
.dc.l $02011234,$00c80400,$00c00400,$00121234
.dc.l $02011234,$00c807fe,$00c007fe,$00121234
.dc.l $02011234,$00cff800,$00c7f800,$00121234
.dc.l $02011234,$00cffbfe,$00c7fbfe,$00121234
.dc.l $02011234,$00cffc00,$00c7fc00,$00121234
.dc.l $02011234,$00cffffe,$00c7fffe,$00121234
.dc.l $02011234,$00d00000,$00c00000,$00341234
.dc.l $02011234,$00d003fe,$00c003fe,$00341234
.dc.l $02011234,$00d00400,$00c00400,$00341234
.dc.l $02011234,$00d007fe,$00c007fe,$00341234
.dc.l $02011234,$00d7f800,$00c7f800,$00341234
.dc.l $02011234,$00d7fbfe,$00c7fbfe,$00341234
.dc.l $02011234,$00d7fc00,$00c7fc00,$00341234
.dc.l $02011234,$00d7fffe,$00c7fffe,$00341234
.dc.l $02011234,$00d80000,$00c00000,$00121234
.dc.l $02011234,$00d803fe,$00c003fe,$00121234
.dc.l $02011234,$00d80400,$00c00400,$00121234
.dc.l $02011234,$00d807fe,$00c007fe,$00121234
.dc.l $02011234,$00dff800,$00c7f800,$00121234
.dc.l $02011234,$00dffbfe,$00c7fbfe,$00121234
.dc.l $02011234,$00dffc00,$00c7fc00,$00121234
.dc.l $02011234,$00dffffe,$00c7fffe,$00121234
;write byte
.dc.l $02021234,$00c00000,$00c00000,$56787834
.dc.l $02021234,$00c00001,$00c00000,$56781278
.dc.l $02021234,$00c003fe,$00c003fe,$56787834
.dc.l $02021234,$00c003ff,$00c003fe,$56781278
.dc.l $02021234,$00c00400,$00c00400,$56787834
.dc.l $02021234,$00c00401,$00c00400,$56781278
.dc.l $02021234,$00c007fe,$00c007fe,$56787834
.dc.l $02021234,$00c007ff,$00c007fe,$56781278
.dc.l $02021234,$00c7f800,$00c7f800,$56787834
.dc.l $02021234,$00c7f801,$00c7f800,$56781278
.dc.l $02021234,$00c7fbfe,$00c7fbfe,$56787834
.dc.l $02021234,$00c7fbff,$00c7fbfe,$56781278
.dc.l $02021234,$00c7fc00,$00c7fc00,$56787834
.dc.l $02021234,$00c7fc01,$00c7fc00,$56781278
.dc.l $02021234,$00c7fffe,$00c7fffe,$56787834
.dc.l $02021234,$00c7ffff,$00c7fffe,$56781278
.dc.l $02021234,$00c80000,$00c00000,$56787834
.dc.l $02021234,$00c80001,$00c00000,$56781278
.dc.l $02021234,$00c803fe,$00c003fe,$56787834
.dc.l $02021234,$00c803ff,$00c003fe,$56781278
.dc.l $02021234,$00c80400,$00c00400,$56787834
.dc.l $02021234,$00c80401,$00c00400,$56781278
.dc.l $02021234,$00c807fe,$00c007fe,$56787834
.dc.l $02021234,$00c807ff,$00c007fe,$56781278
.dc.l $02021234,$00cff800,$00c7f800,$56787834
.dc.l $02021234,$00cff801,$00c7f800,$56781278
.dc.l $02021234,$00cffbfe,$00c7fbfe,$56787834
.dc.l $02021234,$00cffbff,$00c7fbfe,$56781278
.dc.l $02021234,$00cffc00,$00c7fc00,$56787834
.dc.l $02021234,$00cffc01,$00c7fc00,$56781278
.dc.l $02021234,$00cffffe,$00c7fffe,$56787834
.dc.l $02021234,$00cfffff,$00c7fffe,$56781278
.dc.l $02021234,$00d00000,$00c00000,$56787834
.dc.l $02021234,$00d00001,$00c00000,$56781278
.dc.l $02021234,$00d003fe,$00c003fe,$56787834
.dc.l $02021234,$00d003ff,$00c003fe,$56781278
.dc.l $02021234,$00d00400,$00c00400,$56787834
.dc.l $02021234,$00d00401,$00c00400,$56781278
.dc.l $02021234,$00d007fe,$00c007fe,$56787834
.dc.l $02021234,$00d007ff,$00c007fe,$56781278
.dc.l $02021234,$00d7f800,$00c7f800,$56787834
.dc.l $02021234,$00d7f801,$00c7f800,$56781278
.dc.l $02021234,$00d7fbfe,$00c7fbfe,$56787834
.dc.l $02021234,$00d7fbff,$00c7fbfe,$56781278
.dc.l $02021234,$00d7fc00,$00c7fc00,$56787834
.dc.l $02021234,$00d7fc01,$00c7fc00,$56781278
.dc.l $02021234,$00d7fffe,$00c7fffe,$56787834
.dc.l $02021234,$00d7ffff,$00c7fffe,$56781278
.dc.l $02021234,$00d80000,$00c00000,$56787834
.dc.l $02021234,$00d80001,$00c00000,$56781278
.dc.l $02021234,$00d803fe,$00c003fe,$56787834
.dc.l $02021234,$00d803ff,$00c003fe,$56781278
.dc.l $02021234,$00d80400,$00c00400,$56787834
.dc.l $02021234,$00d80401,$00c00400,$56781278
.dc.l $02021234,$00d807fe,$00c007fe,$56787834
.dc.l $02021234,$00d807ff,$00c007fe,$56781278
.dc.l $02021234,$00dff800,$00c7f800,$56787834
.dc.l $02021234,$00dff801,$00c7f800,$56781278
.dc.l $02021234,$00dffbfe,$00c7fbfe,$56787834
.dc.l $02021234,$00dffbff,$00c7fbfe,$56781278
.dc.l $02021234,$00dffc00,$00c7fc00,$56787834
.dc.l $02021234,$00dffc01,$00c7fc00,$56781278
.dc.l $02021234,$00dffffe,$00c7fffe,$56787834
.dc.l $02021234,$00dfffff,$00c7fffe,$56781278
;write word
.dc.l $02031234,$00c00000,$00c00000,$56787878
.dc.l $02031234,$00c003fe,$00c003fe,$56787878
.dc.l $02031234,$00c00400,$00c00400,$56787878
.dc.l $02031234,$00c007fe,$00c007fe,$56787878
.dc.l $02031234,$00c7f800,$00c7f800,$56787878
.dc.l $02031234,$00c7fbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00c7fc00,$00c7fc00,$56787878
.dc.l $02031234,$00c7fffe,$00c7fffe,$56787878
.dc.l $02031234,$00c80000,$00c00000,$56787878
.dc.l $02031234,$00c803fe,$00c003fe,$56787878
.dc.l $02031234,$00c80400,$00c00400,$56787878
.dc.l $02031234,$00c807fe,$00c007fe,$56787878
.dc.l $02031234,$00cff800,$00c7f800,$56787878
.dc.l $02031234,$00cffbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00cffc00,$00c7fc00,$56787878
.dc.l $02031234,$00cffffe,$00c7fffe,$56787878
.dc.l $02031234,$00d00000,$00c00000,$56787878
.dc.l $02031234,$00d003fe,$00c003fe,$56787878
.dc.l $02031234,$00d00400,$00c00400,$56787878
.dc.l $02031234,$00d007fe,$00c007fe,$56787878
.dc.l $02031234,$00d7f800,$00c7f800,$56787878
.dc.l $02031234,$00d7fbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00d7fc00,$00c7fc00,$56787878
.dc.l $02031234,$00d7fffe,$00c7fffe,$56787878
.dc.l $02031234,$00d80000,$00c00000,$56787878
.dc.l $02031234,$00d803fe,$00c003fe,$56787878
.dc.l $02031234,$00d80400,$00c00400,$56787878
.dc.l $02031234,$00d807fe,$00c007fe,$56787878
.dc.l $02031234,$00dff800,$00c7f800,$56787878
.dc.l $02031234,$00dffbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00dffc00,$00c7fc00,$56787878
.dc.l $02031234,$00dffffe,$00c7fffe,$56787878
;
.dc.l -1
memory_mode_2_060:
; +--------------------------+
; | 0x00c00000 .. 0x00c003ff |
; | 0x00c00400 0x00c007ff |
; | : : |
; | 0x00c7f800 0x00c7fbff |
; | 0x00c7fc00 .. 0x00c7ffff |
; +--------------------------+
;read byte
.dc.l $02001234,$00c00000,$00c00000,$00001234
.dc.l $02001234,$00c00001,$00c00000,$00341234
.dc.l $02001234,$00c003fe,$00c003fe,$00001234
.dc.l $02001234,$00c003ff,$00c003fe,$00341234
.dc.l $02001234,$00c00400,$00c00400,$00001234
.dc.l $02001234,$00c00401,$00c00400,$00341234
.dc.l $02001234,$00c007fe,$00c007fe,$00001234
.dc.l $02001234,$00c007ff,$00c007fe,$00341234
.dc.l $02001234,$00c7f800,$00c7f800,$00001234
.dc.l $02001234,$00c7f801,$00c7f800,$00341234
.dc.l $02001234,$00c7fbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00c7fbff,$00c7fbfe,$00341234
.dc.l $02001234,$00c7fc00,$00c7fc00,$00001234
.dc.l $02001234,$00c7fc01,$00c7fc00,$00341234
.dc.l $02001234,$00c7fffe,$00c7fffe,$00001234
.dc.l $02001234,$00c7ffff,$00c7fffe,$00341234
.dc.l $02001234,$00c80000,$00c00000,$00001234
.dc.l $02001234,$00c80001,$00c00000,$00001234
.dc.l $02001234,$00c803fe,$00c003fe,$00001234
.dc.l $02001234,$00c803ff,$00c003fe,$00001234
.dc.l $02001234,$00c80400,$00c00400,$00001234
.dc.l $02001234,$00c80401,$00c00400,$00001234
.dc.l $02001234,$00c807fe,$00c007fe,$00001234
.dc.l $02001234,$00c807ff,$00c007fe,$00001234
.dc.l $02001234,$00cff800,$00c7f800,$00001234
.dc.l $02001234,$00cff801,$00c7f800,$00001234
.dc.l $02001234,$00cffbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00cffbff,$00c7fbfe,$00001234
.dc.l $02001234,$00cffc00,$00c7fc00,$00001234
.dc.l $02001234,$00cffc01,$00c7fc00,$00001234
.dc.l $02001234,$00cffffe,$00c7fffe,$00001234
.dc.l $02001234,$00cfffff,$00c7fffe,$00001234
.dc.l $02001234,$00d00000,$00c00000,$00001234
.dc.l $02001234,$00d00001,$00c00000,$00341234
.dc.l $02001234,$00d003fe,$00c003fe,$00001234
.dc.l $02001234,$00d003ff,$00c003fe,$00341234
.dc.l $02001234,$00d00400,$00c00400,$00001234
.dc.l $02001234,$00d00401,$00c00400,$00341234
.dc.l $02001234,$00d007fe,$00c007fe,$00001234
.dc.l $02001234,$00d007ff,$00c007fe,$00341234
.dc.l $02001234,$00d7f800,$00c7f800,$00001234
.dc.l $02001234,$00d7f801,$00c7f800,$00341234
.dc.l $02001234,$00d7fbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00d7fbff,$00c7fbfe,$00341234
.dc.l $02001234,$00d7fc00,$00c7fc00,$00001234
.dc.l $02001234,$00d7fc01,$00c7fc00,$00341234
.dc.l $02001234,$00d7fffe,$00c7fffe,$00001234
.dc.l $02001234,$00d7ffff,$00c7fffe,$00341234
.dc.l $02001234,$00d80000,$00c00000,$00001234
.dc.l $02001234,$00d80001,$00c00000,$00001234
.dc.l $02001234,$00d803fe,$00c003fe,$00001234
.dc.l $02001234,$00d803ff,$00c003fe,$00001234
.dc.l $02001234,$00d80400,$00c00400,$00001234
.dc.l $02001234,$00d80401,$00c00400,$00001234
.dc.l $02001234,$00d807fe,$00c007fe,$00001234
.dc.l $02001234,$00d807ff,$00c007fe,$00001234
.dc.l $02001234,$00dff800,$00c7f800,$00001234
.dc.l $02001234,$00dff801,$00c7f800,$00001234
.dc.l $02001234,$00dffbfe,$00c7fbfe,$00001234
.dc.l $02001234,$00dffbff,$00c7fbfe,$00001234
.dc.l $02001234,$00dffc00,$00c7fc00,$00001234
.dc.l $02001234,$00dffc01,$00c7fc00,$00001234
.dc.l $02001234,$00dffffe,$00c7fffe,$00001234
.dc.l $02001234,$00dfffff,$00c7fffe,$00001234
;read word
.dc.l $02011234,$00c00000,$00c00000,$00341234
.dc.l $02011234,$00c003fe,$00c003fe,$00341234
.dc.l $02011234,$00c00400,$00c00400,$00341234
.dc.l $02011234,$00c007fe,$00c007fe,$00341234
.dc.l $02011234,$00c7f800,$00c7f800,$00341234
.dc.l $02011234,$00c7fbfe,$00c7fbfe,$00341234
.dc.l $02011234,$00c7fc00,$00c7fc00,$00341234
.dc.l $02011234,$00c7fffe,$00c7fffe,$00341234
.dc.l $02011234,$00c80000,$00c00000,$00121234
.dc.l $02011234,$00c803fe,$00c003fe,$00121234
.dc.l $02011234,$00c80400,$00c00400,$00121234
.dc.l $02011234,$00c807fe,$00c007fe,$00121234
.dc.l $02011234,$00cff800,$00c7f800,$00121234
.dc.l $02011234,$00cffbfe,$00c7fbfe,$00121234
.dc.l $02011234,$00cffc00,$00c7fc00,$00121234
.dc.l $02011234,$00cffffe,$00c7fffe,$00121234
.dc.l $02011234,$00d00000,$00c00000,$00341234
.dc.l $02011234,$00d003fe,$00c003fe,$00341234
.dc.l $02011234,$00d00400,$00c00400,$00341234
.dc.l $02011234,$00d007fe,$00c007fe,$00341234
.dc.l $02011234,$00d7f800,$00c7f800,$00341234
.dc.l $02011234,$00d7fbfe,$00c7fbfe,$00341234
.dc.l $02011234,$00d7fc00,$00c7fc00,$00341234
.dc.l $02011234,$00d7fffe,$00c7fffe,$00341234
.dc.l $02011234,$00d80000,$00c00000,$00121234
.dc.l $02011234,$00d803fe,$00c003fe,$00121234
.dc.l $02011234,$00d80400,$00c00400,$00121234
.dc.l $02011234,$00d807fe,$00c007fe,$00121234
.dc.l $02011234,$00dff800,$00c7f800,$00121234
.dc.l $02011234,$00dffbfe,$00c7fbfe,$00121234
.dc.l $02011234,$00dffc00,$00c7fc00,$00121234
.dc.l $02011234,$00dffffe,$00c7fffe,$00121234
;write byte
.dc.l $02021234,$00c00000,$00c00000,$56780034
.dc.l $02021234,$00c00001,$00c00000,$56781278
.dc.l $02021234,$00c003fe,$00c003fe,$56780034
.dc.l $02021234,$00c003ff,$00c003fe,$56781278
.dc.l $02021234,$00c00400,$00c00400,$56780034
.dc.l $02021234,$00c00401,$00c00400,$56781278
.dc.l $02021234,$00c007fe,$00c007fe,$56780034
.dc.l $02021234,$00c007ff,$00c007fe,$56781278
.dc.l $02021234,$00c7f800,$00c7f800,$56780034
.dc.l $02021234,$00c7f801,$00c7f800,$56781278
.dc.l $02021234,$00c7fbfe,$00c7fbfe,$56780034
.dc.l $02021234,$00c7fbff,$00c7fbfe,$56781278
.dc.l $02021234,$00c7fc00,$00c7fc00,$56780034
.dc.l $02021234,$00c7fc01,$00c7fc00,$56781278
.dc.l $02021234,$00c7fffe,$00c7fffe,$56780034
.dc.l $02021234,$00c7ffff,$00c7fffe,$56781278
.dc.l $02021234,$00c80000,$00c00000,$56780034
.dc.l $02021234,$00c80001,$00c00000,$56781278
.dc.l $02021234,$00c803fe,$00c003fe,$56780034
.dc.l $02021234,$00c803ff,$00c003fe,$56781278
.dc.l $02021234,$00c80400,$00c00400,$56780034
.dc.l $02021234,$00c80401,$00c00400,$56781278
.dc.l $02021234,$00c807fe,$00c007fe,$56780034
.dc.l $02021234,$00c807ff,$00c007fe,$56781278
.dc.l $02021234,$00cff800,$00c7f800,$56780034
.dc.l $02021234,$00cff801,$00c7f800,$56781278
.dc.l $02021234,$00cffbfe,$00c7fbfe,$56780034
.dc.l $02021234,$00cffbff,$00c7fbfe,$56781278
.dc.l $02021234,$00cffc00,$00c7fc00,$56780034
.dc.l $02021234,$00cffc01,$00c7fc00,$56781278
.dc.l $02021234,$00cffffe,$00c7fffe,$56780034
.dc.l $02021234,$00cfffff,$00c7fffe,$56781278
.dc.l $02021234,$00d00000,$00c00000,$56780034
.dc.l $02021234,$00d00001,$00c00000,$56781278
.dc.l $02021234,$00d003fe,$00c003fe,$56780034
.dc.l $02021234,$00d003ff,$00c003fe,$56781278
.dc.l $02021234,$00d00400,$00c00400,$56780034
.dc.l $02021234,$00d00401,$00c00400,$56781278
.dc.l $02021234,$00d007fe,$00c007fe,$56780034
.dc.l $02021234,$00d007ff,$00c007fe,$56781278
.dc.l $02021234,$00d7f800,$00c7f800,$56780034
.dc.l $02021234,$00d7f801,$00c7f800,$56781278
.dc.l $02021234,$00d7fbfe,$00c7fbfe,$56780034
.dc.l $02021234,$00d7fbff,$00c7fbfe,$56781278
.dc.l $02021234,$00d7fc00,$00c7fc00,$56780034
.dc.l $02021234,$00d7fc01,$00c7fc00,$56781278
.dc.l $02021234,$00d7fffe,$00c7fffe,$56780034
.dc.l $02021234,$00d7ffff,$00c7fffe,$56781278
.dc.l $02021234,$00d80000,$00c00000,$56780034
.dc.l $02021234,$00d80001,$00c00000,$56781278
.dc.l $02021234,$00d803fe,$00c003fe,$56780034
.dc.l $02021234,$00d803ff,$00c003fe,$56781278
.dc.l $02021234,$00d80400,$00c00400,$56780034
.dc.l $02021234,$00d80401,$00c00400,$56781278
.dc.l $02021234,$00d807fe,$00c007fe,$56780034
.dc.l $02021234,$00d807ff,$00c007fe,$56781278
.dc.l $02021234,$00dff800,$00c7f800,$56780034
.dc.l $02021234,$00dff801,$00c7f800,$56781278
.dc.l $02021234,$00dffbfe,$00c7fbfe,$56780034
.dc.l $02021234,$00dffbff,$00c7fbfe,$56781278
.dc.l $02021234,$00dffc00,$00c7fc00,$56780034
.dc.l $02021234,$00dffc01,$00c7fc00,$56781278
.dc.l $02021234,$00dffffe,$00c7fffe,$56780034
.dc.l $02021234,$00dfffff,$00c7fffe,$56781278
;write word
.dc.l $02031234,$00c00000,$00c00000,$56787878
.dc.l $02031234,$00c003fe,$00c003fe,$56787878
.dc.l $02031234,$00c00400,$00c00400,$56787878
.dc.l $02031234,$00c007fe,$00c007fe,$56787878
.dc.l $02031234,$00c7f800,$00c7f800,$56787878
.dc.l $02031234,$00c7fbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00c7fc00,$00c7fc00,$56787878
.dc.l $02031234,$00c7fffe,$00c7fffe,$56787878
.dc.l $02031234,$00c80000,$00c00000,$56787878
.dc.l $02031234,$00c803fe,$00c003fe,$56787878
.dc.l $02031234,$00c80400,$00c00400,$56787878
.dc.l $02031234,$00c807fe,$00c007fe,$56787878
.dc.l $02031234,$00cff800,$00c7f800,$56787878
.dc.l $02031234,$00cffbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00cffc00,$00c7fc00,$56787878
.dc.l $02031234,$00cffffe,$00c7fffe,$56787878
.dc.l $02031234,$00d00000,$00c00000,$56787878
.dc.l $02031234,$00d003fe,$00c003fe,$56787878
.dc.l $02031234,$00d00400,$00c00400,$56787878
.dc.l $02031234,$00d007fe,$00c007fe,$56787878
.dc.l $02031234,$00d7f800,$00c7f800,$56787878
.dc.l $02031234,$00d7fbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00d7fc00,$00c7fc00,$56787878
.dc.l $02031234,$00d7fffe,$00c7fffe,$56787878
.dc.l $02031234,$00d80000,$00c00000,$56787878
.dc.l $02031234,$00d803fe,$00c003fe,$56787878
.dc.l $02031234,$00d80400,$00c00400,$56787878
.dc.l $02031234,$00d807fe,$00c007fe,$56787878
.dc.l $02031234,$00dff800,$00c7f800,$56787878
.dc.l $02031234,$00dffbfe,$00c7fbfe,$56787878
.dc.l $02031234,$00dffc00,$00c7fc00,$56787878
.dc.l $02031234,$00dffffe,$00c7fffe,$56787878
;
.dc.l -1
memory_mode_3:
; +--------------------------+
; | 0x00c00000 .. 0x00c003ff |
; | 0x00c00400 0x00c007ff |
; | : : |
; | 0x00c7f800 0x00c7fbff |
; | 0x00c7fc00 .. 0x00c7ffff |
; +--------------------------+
;read byte
.dc.l $03001234,$00c00000,$00c00000,$00121234
.dc.l $03001234,$00c00001,$00c00000,$00341234
.dc.l $03001234,$00c003fe,$00c003fe,$00121234
.dc.l $03001234,$00c003ff,$00c003fe,$00341234
.dc.l $03001234,$00c00400,$00c00400,$00121234
.dc.l $03001234,$00c00401,$00c00400,$00341234
.dc.l $03001234,$00c007fe,$00c007fe,$00121234
.dc.l $03001234,$00c007ff,$00c007fe,$00341234
.dc.l $03001234,$00c7f800,$00c7f800,$00121234
.dc.l $03001234,$00c7f801,$00c7f800,$00341234
.dc.l $03001234,$00c7fbfe,$00c7fbfe,$00121234
.dc.l $03001234,$00c7fbff,$00c7fbfe,$00341234
.dc.l $03001234,$00c7fc00,$00c7fc00,$00121234
.dc.l $03001234,$00c7fc01,$00c7fc00,$00341234
.dc.l $03001234,$00c7fffe,$00c7fffe,$00121234
.dc.l $03001234,$00c7ffff,$00c7fffe,$00341234
;read word
.dc.l $03011234,$00c00000,$00c00000,$12341234
.dc.l $03011234,$00c003fe,$00c003fe,$12341234
.dc.l $03011234,$00c00400,$00c00400,$12341234
.dc.l $03011234,$00c007fe,$00c007fe,$12341234
.dc.l $03011234,$00c7f800,$00c7f800,$12341234
.dc.l $03011234,$00c7fbfe,$00c7fbfe,$12341234
.dc.l $03011234,$00c7fc00,$00c7fc00,$12341234
.dc.l $03011234,$00c7fffe,$00c7fffe,$12341234
;write byte
.dc.l $03021234,$00c00000,$00c00000,$56787834
.dc.l $03021234,$00c00001,$00c00000,$56781278
.dc.l $03021234,$00c003fe,$00c003fe,$56787834
.dc.l $03021234,$00c003ff,$00c003fe,$56781278
.dc.l $03021234,$00c00400,$00c00400,$56787834
.dc.l $03021234,$00c00401,$00c00400,$56781278
.dc.l $03021234,$00c007fe,$00c007fe,$56787834
.dc.l $03021234,$00c007ff,$00c007fe,$56781278
.dc.l $03021234,$00c7f800,$00c7f800,$56787834
.dc.l $03021234,$00c7f801,$00c7f800,$56781278
.dc.l $03021234,$00c7fbfe,$00c7fbfe,$56787834
.dc.l $03021234,$00c7fbff,$00c7fbfe,$56781278
.dc.l $03021234,$00c7fc00,$00c7fc00,$56787834
.dc.l $03021234,$00c7fc01,$00c7fc00,$56781278
.dc.l $03021234,$00c7fffe,$00c7fffe,$56787834
.dc.l $03021234,$00c7ffff,$00c7fffe,$56781278
;write word
.dc.l $03031234,$00c00000,$00c00000,$56785678
.dc.l $03031234,$00c003fe,$00c003fe,$56785678
.dc.l $03031234,$00c00400,$00c00400,$56785678
.dc.l $03031234,$00c007fe,$00c007fe,$56785678
.dc.l $03031234,$00c7f800,$00c7f800,$56785678
.dc.l $03031234,$00c7fbfe,$00c7fbfe,$56785678
.dc.l $03031234,$00c7fc00,$00c7fc00,$56785678
.dc.l $03031234,$00c7fffe,$00c7fffe,$56785678
;
.dc.l -1
memory_mode_4:
;referenced address
; 0b00000000_110Yyyyy_yyyyyXxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c00400 .. 0x00c007ff |
; | 0x00c00800 0x00c00bff | 0x00c00c00 0x00c00fff |
; | : : | : : |
; | 0x00cff000 0x00cff3ff | 0x00cff400 0x00cff7ff |
; | 0x00cff800 .. 0x00cffbff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d00400 .. 0x00d007ff |
; | 0x00d00800 0x00d00bff | 0x00d00c00 0x00d00fff |
; | : : | : : |
; | 0x00dff000 0x00dff3ff | 0x00dff400 0x00dff7ff |
; | 0x00dff800 .. 0x00dffbff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;stored address
; 0b00000000_110YXyyy_yyyyyyxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c80000 .. 0x00c803ff |
; | 0x00c00400 0x00c007ff | 0x00c80400 0x00c807ff |
; | : G0 : | : G1 : |
; | 0x00c7f800 0x00c7fbff | 0x00cff800 0x00cffbff |
; | 0x00c7fc00 .. 0x00c7ffff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d80000 .. 0x00d803ff |
; | 0x00d00400 0x00d007ff | 0x00d80400 0x00d807ff |
; | : G2 : | : G3 : |
; | 0x00d7f800 0x00d7fbff | 0x00dff800 0x00dffbff |
; | 0x00d7fc00 .. 0x00d7ffff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;read byte
.dc.l $04001234,$00c00000,$00c00000,$00001234
.dc.l $04001234,$00c00001,$00c00000,$00041234
.dc.l $04001234,$00c003fe,$00c003fe,$00001234
.dc.l $04001234,$00c003ff,$00c003fe,$00041234
.dc.l $04001234,$00c00400,$00c00000,$00001234
.dc.l $04001234,$00c00401,$00c00000,$00031234
.dc.l $04001234,$00c007fe,$00c003fe,$00001234
.dc.l $04001234,$00c007ff,$00c003fe,$00031234
.dc.l $04001234,$00c00800,$00c00400,$00001234
.dc.l $04001234,$00c00801,$00c00400,$00041234
.dc.l $04001234,$00c00bfe,$00c007fe,$00001234
.dc.l $04001234,$00c00bff,$00c007fe,$00041234
.dc.l $04001234,$00c00c00,$00c00400,$00001234
.dc.l $04001234,$00c00c01,$00c00400,$00031234
.dc.l $04001234,$00c00ffe,$00c007fe,$00001234
.dc.l $04001234,$00c00fff,$00c007fe,$00031234
.dc.l $04001234,$00cff000,$00c7f800,$00001234
.dc.l $04001234,$00cff001,$00c7f800,$00041234
.dc.l $04001234,$00cff3fe,$00c7fbfe,$00001234
.dc.l $04001234,$00cff3ff,$00c7fbfe,$00041234
.dc.l $04001234,$00cff400,$00c7f800,$00001234
.dc.l $04001234,$00cff401,$00c7f800,$00031234
.dc.l $04001234,$00cff7fe,$00c7fbfe,$00001234
.dc.l $04001234,$00cff7ff,$00c7fbfe,$00031234
.dc.l $04001234,$00cff800,$00c7fc00,$00001234
.dc.l $04001234,$00cff801,$00c7fc00,$00041234
.dc.l $04001234,$00cffbfe,$00c7fffe,$00001234
.dc.l $04001234,$00cffbff,$00c7fffe,$00041234
.dc.l $04001234,$00cffc00,$00c7fc00,$00001234
.dc.l $04001234,$00cffc01,$00c7fc00,$00031234
.dc.l $04001234,$00cffffe,$00c7fffe,$00001234
.dc.l $04001234,$00cfffff,$00c7fffe,$00031234
.dc.l $04001234,$00d00000,$00c00000,$00001234
.dc.l $04001234,$00d00001,$00c00000,$00021234
.dc.l $04001234,$00d003fe,$00c003fe,$00001234
.dc.l $04001234,$00d003ff,$00c003fe,$00021234
.dc.l $04001234,$00d00400,$00c00000,$00001234
.dc.l $04001234,$00d00401,$00c00000,$00011234
.dc.l $04001234,$00d007fe,$00c003fe,$00001234
.dc.l $04001234,$00d007ff,$00c003fe,$00011234
.dc.l $04001234,$00d00800,$00c00400,$00001234
.dc.l $04001234,$00d00801,$00c00400,$00021234
.dc.l $04001234,$00d00bfe,$00c007fe,$00001234
.dc.l $04001234,$00d00bff,$00c007fe,$00021234
.dc.l $04001234,$00d00c00,$00c00400,$00001234
.dc.l $04001234,$00d00c01,$00c00400,$00011234
.dc.l $04001234,$00d00ffe,$00c007fe,$00001234
.dc.l $04001234,$00d00fff,$00c007fe,$00011234
.dc.l $04001234,$00dff000,$00c7f800,$00001234
.dc.l $04001234,$00dff001,$00c7f800,$00021234
.dc.l $04001234,$00dff3fe,$00c7fbfe,$00001234
.dc.l $04001234,$00dff3ff,$00c7fbfe,$00021234
.dc.l $04001234,$00dff400,$00c7f800,$00001234
.dc.l $04001234,$00dff401,$00c7f800,$00011234
.dc.l $04001234,$00dff7fe,$00c7fbfe,$00001234
.dc.l $04001234,$00dff7ff,$00c7fbfe,$00011234
.dc.l $04001234,$00dff800,$00c7fc00,$00001234
.dc.l $04001234,$00dff801,$00c7fc00,$00021234
.dc.l $04001234,$00dffbfe,$00c7fffe,$00001234
.dc.l $04001234,$00dffbff,$00c7fffe,$00021234
.dc.l $04001234,$00dffc00,$00c7fc00,$00001234
.dc.l $04001234,$00dffc01,$00c7fc00,$00011234
.dc.l $04001234,$00dffffe,$00c7fffe,$00001234
.dc.l $04001234,$00dfffff,$00c7fffe,$00011234
;read word
.dc.l $04011234,$00c00000,$00c00000,$00041234
.dc.l $04011234,$00c003fe,$00c003fe,$00041234
.dc.l $04011234,$00c00400,$00c00000,$00031234
.dc.l $04011234,$00c007fe,$00c003fe,$00031234
.dc.l $04011234,$00c00800,$00c00400,$00041234
.dc.l $04011234,$00c00bfe,$00c007fe,$00041234
.dc.l $04011234,$00c00c00,$00c00400,$00031234
.dc.l $04011234,$00c00ffe,$00c007fe,$00031234
.dc.l $04011234,$00cff000,$00c7f800,$00041234
.dc.l $04011234,$00cff3fe,$00c7fbfe,$00041234
.dc.l $04011234,$00cff400,$00c7f800,$00031234
.dc.l $04011234,$00cff7fe,$00c7fbfe,$00031234
.dc.l $04011234,$00cff800,$00c7fc00,$00041234
.dc.l $04011234,$00cffbfe,$00c7fffe,$00041234
.dc.l $04011234,$00cffc00,$00c7fc00,$00031234
.dc.l $04011234,$00cffffe,$00c7fffe,$00031234
.dc.l $04011234,$00d00000,$00c00000,$00021234
.dc.l $04011234,$00d003fe,$00c003fe,$00021234
.dc.l $04011234,$00d00400,$00c00000,$00011234
.dc.l $04011234,$00d007fe,$00c003fe,$00011234
.dc.l $04011234,$00d00800,$00c00400,$00021234
.dc.l $04011234,$00d00bfe,$00c007fe,$00021234
.dc.l $04011234,$00d00c00,$00c00400,$00011234
.dc.l $04011234,$00d00ffe,$00c007fe,$00011234
.dc.l $04011234,$00dff000,$00c7f800,$00021234
.dc.l $04011234,$00dff3fe,$00c7fbfe,$00021234
.dc.l $04011234,$00dff400,$00c7f800,$00011234
.dc.l $04011234,$00dff7fe,$00c7fbfe,$00011234
.dc.l $04011234,$00dff800,$00c7fc00,$00021234
.dc.l $04011234,$00dffbfe,$00c7fffe,$00021234
.dc.l $04011234,$00dffc00,$00c7fc00,$00011234
.dc.l $04011234,$00dffffe,$00c7fffe,$00011234
;write byte
.dc.l $04021234,$00c00000,$00c00000,$56781234
.dc.l $04021234,$00c00001,$00c00000,$56781238
.dc.l $04021234,$00c003fe,$00c003fe,$56781234
.dc.l $04021234,$00c003ff,$00c003fe,$56781238
.dc.l $04021234,$00c00400,$00c00000,$56781234
.dc.l $04021234,$00c00401,$00c00000,$56781284
.dc.l $04021234,$00c007fe,$00c003fe,$56781234
.dc.l $04021234,$00c007ff,$00c003fe,$56781284
.dc.l $04021234,$00c00800,$00c00400,$56781234
.dc.l $04021234,$00c00801,$00c00400,$56781238
.dc.l $04021234,$00c00bfe,$00c007fe,$56781234
.dc.l $04021234,$00c00bff,$00c007fe,$56781238
.dc.l $04021234,$00c00c00,$00c00400,$56781234
.dc.l $04021234,$00c00c01,$00c00400,$56781284
.dc.l $04021234,$00c00ffe,$00c007fe,$56781234
.dc.l $04021234,$00c00fff,$00c007fe,$56781284
.dc.l $04021234,$00cff000,$00c7f800,$56781234
.dc.l $04021234,$00cff001,$00c7f800,$56781238
.dc.l $04021234,$00cff3fe,$00c7fbfe,$56781234
.dc.l $04021234,$00cff3ff,$00c7fbfe,$56781238
.dc.l $04021234,$00cff400,$00c7f800,$56781234
.dc.l $04021234,$00cff401,$00c7f800,$56781284
.dc.l $04021234,$00cff7fe,$00c7fbfe,$56781234
.dc.l $04021234,$00cff7ff,$00c7fbfe,$56781284
.dc.l $04021234,$00cff800,$00c7fc00,$56781234
.dc.l $04021234,$00cff801,$00c7fc00,$56781238
.dc.l $04021234,$00cffbfe,$00c7fffe,$56781234
.dc.l $04021234,$00cffbff,$00c7fffe,$56781238
.dc.l $04021234,$00cffc00,$00c7fc00,$56781234
.dc.l $04021234,$00cffc01,$00c7fc00,$56781284
.dc.l $04021234,$00cffffe,$00c7fffe,$56781234
.dc.l $04021234,$00cfffff,$00c7fffe,$56781284
.dc.l $04021234,$00d00000,$00c00000,$56781234
.dc.l $04021234,$00d00001,$00c00000,$56781834
.dc.l $04021234,$00d003fe,$00c003fe,$56781234
.dc.l $04021234,$00d003ff,$00c003fe,$56781834
.dc.l $04021234,$00d00400,$00c00000,$56781234
.dc.l $04021234,$00d00401,$00c00000,$56788234
.dc.l $04021234,$00d007fe,$00c003fe,$56781234
.dc.l $04021234,$00d007ff,$00c003fe,$56788234
.dc.l $04021234,$00d00800,$00c00400,$56781234
.dc.l $04021234,$00d00801,$00c00400,$56781834
.dc.l $04021234,$00d00bfe,$00c007fe,$56781234
.dc.l $04021234,$00d00bff,$00c007fe,$56781834
.dc.l $04021234,$00d00c00,$00c00400,$56781234
.dc.l $04021234,$00d00c01,$00c00400,$56788234
.dc.l $04021234,$00d00ffe,$00c007fe,$56781234
.dc.l $04021234,$00d00fff,$00c007fe,$56788234
.dc.l $04021234,$00dff000,$00c7f800,$56781234
.dc.l $04021234,$00dff001,$00c7f800,$56781834
.dc.l $04021234,$00dff3fe,$00c7fbfe,$56781234
.dc.l $04021234,$00dff3ff,$00c7fbfe,$56781834
.dc.l $04021234,$00dff400,$00c7f800,$56781234
.dc.l $04021234,$00dff401,$00c7f800,$56788234
.dc.l $04021234,$00dff7fe,$00c7fbfe,$56781234
.dc.l $04021234,$00dff7ff,$00c7fbfe,$56788234
.dc.l $04021234,$00dff800,$00c7fc00,$56781234
.dc.l $04021234,$00dff801,$00c7fc00,$56781834
.dc.l $04021234,$00dffbfe,$00c7fffe,$56781234
.dc.l $04021234,$00dffbff,$00c7fffe,$56781834
.dc.l $04021234,$00dffc00,$00c7fc00,$56781234
.dc.l $04021234,$00dffc01,$00c7fc00,$56788234
.dc.l $04021234,$00dffffe,$00c7fffe,$56781234
.dc.l $04021234,$00dfffff,$00c7fffe,$56788234
;write word
.dc.l $04031234,$00c00000,$00c00000,$56781238
.dc.l $04031234,$00c003fe,$00c003fe,$56781238
.dc.l $04031234,$00c00400,$00c00000,$56781284
.dc.l $04031234,$00c007fe,$00c003fe,$56781284
.dc.l $04031234,$00c00800,$00c00400,$56781238
.dc.l $04031234,$00c00bfe,$00c007fe,$56781238
.dc.l $04031234,$00c00c00,$00c00400,$56781284
.dc.l $04031234,$00c00ffe,$00c007fe,$56781284
.dc.l $04031234,$00cff000,$00c7f800,$56781238
.dc.l $04031234,$00cff3fe,$00c7fbfe,$56781238
.dc.l $04031234,$00cff400,$00c7f800,$56781284
.dc.l $04031234,$00cff7fe,$00c7fbfe,$56781284
.dc.l $04031234,$00cff800,$00c7fc00,$56781238
.dc.l $04031234,$00cffbfe,$00c7fffe,$56781238
.dc.l $04031234,$00cffc00,$00c7fc00,$56781284
.dc.l $04031234,$00cffffe,$00c7fffe,$56781284
.dc.l $04031234,$00d00000,$00c00000,$56781834
.dc.l $04031234,$00d003fe,$00c003fe,$56781834
.dc.l $04031234,$00d00400,$00c00000,$56788234
.dc.l $04031234,$00d007fe,$00c003fe,$56788234
.dc.l $04031234,$00d00800,$00c00400,$56781834
.dc.l $04031234,$00d00bfe,$00c007fe,$56781834
.dc.l $04031234,$00d00c00,$00c00400,$56788234
.dc.l $04031234,$00d00ffe,$00c007fe,$56788234
.dc.l $04031234,$00dff000,$00c7f800,$56781834
.dc.l $04031234,$00dff3fe,$00c7fbfe,$56781834
.dc.l $04031234,$00dff400,$00c7f800,$56788234
.dc.l $04031234,$00dff7fe,$00c7fbfe,$56788234
.dc.l $04031234,$00dff800,$00c7fc00,$56781834
.dc.l $04031234,$00dffbfe,$00c7fffe,$56781834
.dc.l $04031234,$00dffc00,$00c7fc00,$56788234
.dc.l $04031234,$00dffffe,$00c7fffe,$56788234
;
.dc.l -1
memory_mode_5:
;referenced address
; 0b00000000_110Yyyyy_yyyyyXxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c00400 .. 0x00c007ff |
; | 0x00c00800 0x00c00bff | 0x00c00c00 0x00c00fff |
; | : : | : : |
; | 0x00cff000 0x00cff3ff | 0x00cff400 0x00cff7ff |
; | 0x00cff800 .. 0x00cffbff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d00400 .. 0x00d007ff |
; | 0x00d00800 0x00d00bff | 0x00d00c00 0x00d00fff |
; | : : | : : |
; | 0x00dff000 0x00dff3ff | 0x00dff400 0x00dff7ff |
; | 0x00dff800 .. 0x00dffbff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;stored address
; 0b00000000_110YXyyy_yyyyyyxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c80000 .. 0x00c803ff |
; | 0x00c00400 0x00c007ff | 0x00c80400 0x00c807ff |
; | : G0 : | : G1 : |
; | 0x00c7f800 0x00c7fbff | 0x00cff800 0x00cffbff |
; | 0x00c7fc00 .. 0x00c7ffff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d80000 .. 0x00d803ff |
; | 0x00d00400 0x00d007ff | 0x00d80400 0x00d807ff |
; | : G2 : | : G3 : |
; | 0x00d7f800 0x00d7fbff | 0x00dff800 0x00dffbff |
; | 0x00d7fc00 .. 0x00d7ffff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;read byte
.dc.l $05001234,$00c00000,$00c00000,$00001234
.dc.l $05001234,$00c00001,$00c00000,$00041234
.dc.l $05001234,$00c003fe,$00c003fe,$00001234
.dc.l $05001234,$00c003ff,$00c003fe,$00041234
.dc.l $05001234,$00c00400,$00c00000,$00001234
.dc.l $05001234,$00c00401,$00c00000,$00031234
.dc.l $05001234,$00c007fe,$00c003fe,$00001234
.dc.l $05001234,$00c007ff,$00c003fe,$00031234
.dc.l $05001234,$00c00800,$00c00400,$00001234
.dc.l $05001234,$00c00801,$00c00400,$00041234
.dc.l $05001234,$00c00bfe,$00c007fe,$00001234
.dc.l $05001234,$00c00bff,$00c007fe,$00041234
.dc.l $05001234,$00c00c00,$00c00400,$00001234
.dc.l $05001234,$00c00c01,$00c00400,$00031234
.dc.l $05001234,$00c00ffe,$00c007fe,$00001234
.dc.l $05001234,$00c00fff,$00c007fe,$00031234
.dc.l $05001234,$00cff000,$00c7f800,$00001234
.dc.l $05001234,$00cff001,$00c7f800,$00041234
.dc.l $05001234,$00cff3fe,$00c7fbfe,$00001234
.dc.l $05001234,$00cff3ff,$00c7fbfe,$00041234
.dc.l $05001234,$00cff400,$00c7f800,$00001234
.dc.l $05001234,$00cff401,$00c7f800,$00031234
.dc.l $05001234,$00cff7fe,$00c7fbfe,$00001234
.dc.l $05001234,$00cff7ff,$00c7fbfe,$00031234
.dc.l $05001234,$00cff800,$00c7fc00,$00001234
.dc.l $05001234,$00cff801,$00c7fc00,$00041234
.dc.l $05001234,$00cffbfe,$00c7fffe,$00001234
.dc.l $05001234,$00cffbff,$00c7fffe,$00041234
.dc.l $05001234,$00cffc00,$00c7fc00,$00001234
.dc.l $05001234,$00cffc01,$00c7fc00,$00031234
.dc.l $05001234,$00cffffe,$00c7fffe,$00001234
.dc.l $05001234,$00cfffff,$00c7fffe,$00031234
.dc.l $05001234,$00d00000,$00c00000,$00001234
.dc.l $05001234,$00d00001,$00c00000,$00021234
.dc.l $05001234,$00d003fe,$00c003fe,$00001234
.dc.l $05001234,$00d003ff,$00c003fe,$00021234
.dc.l $05001234,$00d00400,$00c00000,$00001234
.dc.l $05001234,$00d00401,$00c00000,$00011234
.dc.l $05001234,$00d007fe,$00c003fe,$00001234
.dc.l $05001234,$00d007ff,$00c003fe,$00011234
.dc.l $05001234,$00d00800,$00c00400,$00001234
.dc.l $05001234,$00d00801,$00c00400,$00021234
.dc.l $05001234,$00d00bfe,$00c007fe,$00001234
.dc.l $05001234,$00d00bff,$00c007fe,$00021234
.dc.l $05001234,$00d00c00,$00c00400,$00001234
.dc.l $05001234,$00d00c01,$00c00400,$00011234
.dc.l $05001234,$00d00ffe,$00c007fe,$00001234
.dc.l $05001234,$00d00fff,$00c007fe,$00011234
.dc.l $05001234,$00dff000,$00c7f800,$00001234
.dc.l $05001234,$00dff001,$00c7f800,$00021234
.dc.l $05001234,$00dff3fe,$00c7fbfe,$00001234
.dc.l $05001234,$00dff3ff,$00c7fbfe,$00021234
.dc.l $05001234,$00dff400,$00c7f800,$00001234
.dc.l $05001234,$00dff401,$00c7f800,$00011234
.dc.l $05001234,$00dff7fe,$00c7fbfe,$00001234
.dc.l $05001234,$00dff7ff,$00c7fbfe,$00011234
.dc.l $05001234,$00dff800,$00c7fc00,$00001234
.dc.l $05001234,$00dff801,$00c7fc00,$00021234
.dc.l $05001234,$00dffbfe,$00c7fffe,$00001234
.dc.l $05001234,$00dffbff,$00c7fffe,$00021234
.dc.l $05001234,$00dffc00,$00c7fc00,$00001234
.dc.l $05001234,$00dffc01,$00c7fc00,$00011234
.dc.l $05001234,$00dffffe,$00c7fffe,$00001234
.dc.l $05001234,$00dfffff,$00c7fffe,$00011234
;read word
.dc.l $05011234,$00c00000,$00c00000,$00041234
.dc.l $05011234,$00c003fe,$00c003fe,$00041234
.dc.l $05011234,$00c00400,$00c00000,$00031234
.dc.l $05011234,$00c007fe,$00c003fe,$00031234
.dc.l $05011234,$00c00800,$00c00400,$00041234
.dc.l $05011234,$00c00bfe,$00c007fe,$00041234
.dc.l $05011234,$00c00c00,$00c00400,$00031234
.dc.l $05011234,$00c00ffe,$00c007fe,$00031234
.dc.l $05011234,$00cff000,$00c7f800,$00041234
.dc.l $05011234,$00cff3fe,$00c7fbfe,$00041234
.dc.l $05011234,$00cff400,$00c7f800,$00031234
.dc.l $05011234,$00cff7fe,$00c7fbfe,$00031234
.dc.l $05011234,$00cff800,$00c7fc00,$00041234
.dc.l $05011234,$00cffbfe,$00c7fffe,$00041234
.dc.l $05011234,$00cffc00,$00c7fc00,$00031234
.dc.l $05011234,$00cffffe,$00c7fffe,$00031234
.dc.l $05011234,$00d00000,$00c00000,$00021234
.dc.l $05011234,$00d003fe,$00c003fe,$00021234
.dc.l $05011234,$00d00400,$00c00000,$00011234
.dc.l $05011234,$00d007fe,$00c003fe,$00011234
.dc.l $05011234,$00d00800,$00c00400,$00021234
.dc.l $05011234,$00d00bfe,$00c007fe,$00021234
.dc.l $05011234,$00d00c00,$00c00400,$00011234
.dc.l $05011234,$00d00ffe,$00c007fe,$00011234
.dc.l $05011234,$00dff000,$00c7f800,$00021234
.dc.l $05011234,$00dff3fe,$00c7fbfe,$00021234
.dc.l $05011234,$00dff400,$00c7f800,$00011234
.dc.l $05011234,$00dff7fe,$00c7fbfe,$00011234
.dc.l $05011234,$00dff800,$00c7fc00,$00021234
.dc.l $05011234,$00dffbfe,$00c7fffe,$00021234
.dc.l $05011234,$00dffc00,$00c7fc00,$00011234
.dc.l $05011234,$00dffffe,$00c7fffe,$00011234
;write byte
.dc.l $05021234,$00c00000,$00c00000,$56781234
.dc.l $05021234,$00c00001,$00c00000,$56781238
.dc.l $05021234,$00c003fe,$00c003fe,$56781234
.dc.l $05021234,$00c003ff,$00c003fe,$56781238
.dc.l $05021234,$00c00400,$00c00000,$56781234
.dc.l $05021234,$00c00401,$00c00000,$56781284
.dc.l $05021234,$00c007fe,$00c003fe,$56781234
.dc.l $05021234,$00c007ff,$00c003fe,$56781284
.dc.l $05021234,$00c00800,$00c00400,$56781234
.dc.l $05021234,$00c00801,$00c00400,$56781238
.dc.l $05021234,$00c00bfe,$00c007fe,$56781234
.dc.l $05021234,$00c00bff,$00c007fe,$56781238
.dc.l $05021234,$00c00c00,$00c00400,$56781234
.dc.l $05021234,$00c00c01,$00c00400,$56781284
.dc.l $05021234,$00c00ffe,$00c007fe,$56781234
.dc.l $05021234,$00c00fff,$00c007fe,$56781284
.dc.l $05021234,$00cff000,$00c7f800,$56781234
.dc.l $05021234,$00cff001,$00c7f800,$56781238
.dc.l $05021234,$00cff3fe,$00c7fbfe,$56781234
.dc.l $05021234,$00cff3ff,$00c7fbfe,$56781238
.dc.l $05021234,$00cff400,$00c7f800,$56781234
.dc.l $05021234,$00cff401,$00c7f800,$56781284
.dc.l $05021234,$00cff7fe,$00c7fbfe,$56781234
.dc.l $05021234,$00cff7ff,$00c7fbfe,$56781284
.dc.l $05021234,$00cff800,$00c7fc00,$56781234
.dc.l $05021234,$00cff801,$00c7fc00,$56781238
.dc.l $05021234,$00cffbfe,$00c7fffe,$56781234
.dc.l $05021234,$00cffbff,$00c7fffe,$56781238
.dc.l $05021234,$00cffc00,$00c7fc00,$56781234
.dc.l $05021234,$00cffc01,$00c7fc00,$56781284
.dc.l $05021234,$00cffffe,$00c7fffe,$56781234
.dc.l $05021234,$00cfffff,$00c7fffe,$56781284
.dc.l $05021234,$00d00000,$00c00000,$56781234
.dc.l $05021234,$00d00001,$00c00000,$56781834
.dc.l $05021234,$00d003fe,$00c003fe,$56781234
.dc.l $05021234,$00d003ff,$00c003fe,$56781834
.dc.l $05021234,$00d00400,$00c00000,$56781234
.dc.l $05021234,$00d00401,$00c00000,$56788234
.dc.l $05021234,$00d007fe,$00c003fe,$56781234
.dc.l $05021234,$00d007ff,$00c003fe,$56788234
.dc.l $05021234,$00d00800,$00c00400,$56781234
.dc.l $05021234,$00d00801,$00c00400,$56781834
.dc.l $05021234,$00d00bfe,$00c007fe,$56781234
.dc.l $05021234,$00d00bff,$00c007fe,$56781834
.dc.l $05021234,$00d00c00,$00c00400,$56781234
.dc.l $05021234,$00d00c01,$00c00400,$56788234
.dc.l $05021234,$00d00ffe,$00c007fe,$56781234
.dc.l $05021234,$00d00fff,$00c007fe,$56788234
.dc.l $05021234,$00dff000,$00c7f800,$56781234
.dc.l $05021234,$00dff001,$00c7f800,$56781834
.dc.l $05021234,$00dff3fe,$00c7fbfe,$56781234
.dc.l $05021234,$00dff3ff,$00c7fbfe,$56781834
.dc.l $05021234,$00dff400,$00c7f800,$56781234
.dc.l $05021234,$00dff401,$00c7f800,$56788234
.dc.l $05021234,$00dff7fe,$00c7fbfe,$56781234
.dc.l $05021234,$00dff7ff,$00c7fbfe,$56788234
.dc.l $05021234,$00dff800,$00c7fc00,$56781234
.dc.l $05021234,$00dff801,$00c7fc00,$56781834
.dc.l $05021234,$00dffbfe,$00c7fffe,$56781234
.dc.l $05021234,$00dffbff,$00c7fffe,$56781834
.dc.l $05021234,$00dffc00,$00c7fc00,$56781234
.dc.l $05021234,$00dffc01,$00c7fc00,$56788234
.dc.l $05021234,$00dffffe,$00c7fffe,$56781234
.dc.l $05021234,$00dfffff,$00c7fffe,$56788234
;write word
.dc.l $05031234,$00c00000,$00c00000,$56781238
.dc.l $05031234,$00c003fe,$00c003fe,$56781238
.dc.l $05031234,$00c00400,$00c00000,$56781284
.dc.l $05031234,$00c007fe,$00c003fe,$56781284
.dc.l $05031234,$00c00800,$00c00400,$56781238
.dc.l $05031234,$00c00bfe,$00c007fe,$56781238
.dc.l $05031234,$00c00c00,$00c00400,$56781284
.dc.l $05031234,$00c00ffe,$00c007fe,$56781284
.dc.l $05031234,$00cff000,$00c7f800,$56781238
.dc.l $05031234,$00cff3fe,$00c7fbfe,$56781238
.dc.l $05031234,$00cff400,$00c7f800,$56781284
.dc.l $05031234,$00cff7fe,$00c7fbfe,$56781284
.dc.l $05031234,$00cff800,$00c7fc00,$56781238
.dc.l $05031234,$00cffbfe,$00c7fffe,$56781238
.dc.l $05031234,$00cffc00,$00c7fc00,$56781284
.dc.l $05031234,$00cffffe,$00c7fffe,$56781284
.dc.l $05031234,$00d00000,$00c00000,$56781834
.dc.l $05031234,$00d003fe,$00c003fe,$56781834
.dc.l $05031234,$00d00400,$00c00000,$56788234
.dc.l $05031234,$00d007fe,$00c003fe,$56788234
.dc.l $05031234,$00d00800,$00c00400,$56781834
.dc.l $05031234,$00d00bfe,$00c007fe,$56781834
.dc.l $05031234,$00d00c00,$00c00400,$56788234
.dc.l $05031234,$00d00ffe,$00c007fe,$56788234
.dc.l $05031234,$00dff000,$00c7f800,$56781834
.dc.l $05031234,$00dff3fe,$00c7fbfe,$56781834
.dc.l $05031234,$00dff400,$00c7f800,$56788234
.dc.l $05031234,$00dff7fe,$00c7fbfe,$56788234
.dc.l $05031234,$00dff800,$00c7fc00,$56781834
.dc.l $05031234,$00dffbfe,$00c7fffe,$56781834
.dc.l $05031234,$00dffc00,$00c7fc00,$56788234
.dc.l $05031234,$00dffffe,$00c7fffe,$56788234
;
.dc.l -1
memory_mode_6:
;referenced address
; 0b00000000_110Yyyyy_yyyyyXxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c00400 .. 0x00c007ff |
; | 0x00c00800 0x00c00bff | 0x00c00c00 0x00c00fff |
; | : : | : : |
; | 0x00cff000 0x00cff3ff | 0x00cff400 0x00cff7ff |
; | 0x00cff800 .. 0x00cffbff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d00400 .. 0x00d007ff |
; | 0x00d00800 0x00d00bff | 0x00d00c00 0x00d00fff |
; | : : | : : |
; | 0x00dff000 0x00dff3ff | 0x00dff400 0x00dff7ff |
; | 0x00dff800 .. 0x00dffbff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;stored address
; 0b00000000_110YXyyy_yyyyyyxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c80000 .. 0x00c803ff |
; | 0x00c00400 0x00c007ff | 0x00c80400 0x00c807ff |
; | : G0 : | : G1 : |
; | 0x00c7f800 0x00c7fbff | 0x00cff800 0x00cffbff |
; | 0x00c7fc00 .. 0x00c7ffff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d80000 .. 0x00d803ff |
; | 0x00d00400 0x00d007ff | 0x00d80400 0x00d807ff |
; | : G2 : | : G3 : |
; | 0x00d7f800 0x00d7fbff | 0x00dff800 0x00dffbff |
; | 0x00d7fc00 .. 0x00d7ffff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;read byte
.dc.l $06001234,$00c00000,$00c00000,$00001234
.dc.l $06001234,$00c00001,$00c00000,$00041234
.dc.l $06001234,$00c003fe,$00c003fe,$00001234
.dc.l $06001234,$00c003ff,$00c003fe,$00041234
.dc.l $06001234,$00c00400,$00c00000,$00001234
.dc.l $06001234,$00c00401,$00c00000,$00031234
.dc.l $06001234,$00c007fe,$00c003fe,$00001234
.dc.l $06001234,$00c007ff,$00c003fe,$00031234
.dc.l $06001234,$00c00800,$00c00400,$00001234
.dc.l $06001234,$00c00801,$00c00400,$00041234
.dc.l $06001234,$00c00bfe,$00c007fe,$00001234
.dc.l $06001234,$00c00bff,$00c007fe,$00041234
.dc.l $06001234,$00c00c00,$00c00400,$00001234
.dc.l $06001234,$00c00c01,$00c00400,$00031234
.dc.l $06001234,$00c00ffe,$00c007fe,$00001234
.dc.l $06001234,$00c00fff,$00c007fe,$00031234
.dc.l $06001234,$00cff000,$00c7f800,$00001234
.dc.l $06001234,$00cff001,$00c7f800,$00041234
.dc.l $06001234,$00cff3fe,$00c7fbfe,$00001234
.dc.l $06001234,$00cff3ff,$00c7fbfe,$00041234
.dc.l $06001234,$00cff400,$00c7f800,$00001234
.dc.l $06001234,$00cff401,$00c7f800,$00031234
.dc.l $06001234,$00cff7fe,$00c7fbfe,$00001234
.dc.l $06001234,$00cff7ff,$00c7fbfe,$00031234
.dc.l $06001234,$00cff800,$00c7fc00,$00001234
.dc.l $06001234,$00cff801,$00c7fc00,$00041234
.dc.l $06001234,$00cffbfe,$00c7fffe,$00001234
.dc.l $06001234,$00cffbff,$00c7fffe,$00041234
.dc.l $06001234,$00cffc00,$00c7fc00,$00001234
.dc.l $06001234,$00cffc01,$00c7fc00,$00031234
.dc.l $06001234,$00cffffe,$00c7fffe,$00001234
.dc.l $06001234,$00cfffff,$00c7fffe,$00031234
.dc.l $06001234,$00d00000,$00c00000,$00001234
.dc.l $06001234,$00d00001,$00c00000,$00021234
.dc.l $06001234,$00d003fe,$00c003fe,$00001234
.dc.l $06001234,$00d003ff,$00c003fe,$00021234
.dc.l $06001234,$00d00400,$00c00000,$00001234
.dc.l $06001234,$00d00401,$00c00000,$00011234
.dc.l $06001234,$00d007fe,$00c003fe,$00001234
.dc.l $06001234,$00d007ff,$00c003fe,$00011234
.dc.l $06001234,$00d00800,$00c00400,$00001234
.dc.l $06001234,$00d00801,$00c00400,$00021234
.dc.l $06001234,$00d00bfe,$00c007fe,$00001234
.dc.l $06001234,$00d00bff,$00c007fe,$00021234
.dc.l $06001234,$00d00c00,$00c00400,$00001234
.dc.l $06001234,$00d00c01,$00c00400,$00011234
.dc.l $06001234,$00d00ffe,$00c007fe,$00001234
.dc.l $06001234,$00d00fff,$00c007fe,$00011234
.dc.l $06001234,$00dff000,$00c7f800,$00001234
.dc.l $06001234,$00dff001,$00c7f800,$00021234
.dc.l $06001234,$00dff3fe,$00c7fbfe,$00001234
.dc.l $06001234,$00dff3ff,$00c7fbfe,$00021234
.dc.l $06001234,$00dff400,$00c7f800,$00001234
.dc.l $06001234,$00dff401,$00c7f800,$00011234
.dc.l $06001234,$00dff7fe,$00c7fbfe,$00001234
.dc.l $06001234,$00dff7ff,$00c7fbfe,$00011234
.dc.l $06001234,$00dff800,$00c7fc00,$00001234
.dc.l $06001234,$00dff801,$00c7fc00,$00021234
.dc.l $06001234,$00dffbfe,$00c7fffe,$00001234
.dc.l $06001234,$00dffbff,$00c7fffe,$00021234
.dc.l $06001234,$00dffc00,$00c7fc00,$00001234
.dc.l $06001234,$00dffc01,$00c7fc00,$00011234
.dc.l $06001234,$00dffffe,$00c7fffe,$00001234
.dc.l $06001234,$00dfffff,$00c7fffe,$00011234
;read word
.dc.l $06011234,$00c00000,$00c00000,$00041234
.dc.l $06011234,$00c003fe,$00c003fe,$00041234
.dc.l $06011234,$00c00400,$00c00000,$00031234
.dc.l $06011234,$00c007fe,$00c003fe,$00031234
.dc.l $06011234,$00c00800,$00c00400,$00041234
.dc.l $06011234,$00c00bfe,$00c007fe,$00041234
.dc.l $06011234,$00c00c00,$00c00400,$00031234
.dc.l $06011234,$00c00ffe,$00c007fe,$00031234
.dc.l $06011234,$00cff000,$00c7f800,$00041234
.dc.l $06011234,$00cff3fe,$00c7fbfe,$00041234
.dc.l $06011234,$00cff400,$00c7f800,$00031234
.dc.l $06011234,$00cff7fe,$00c7fbfe,$00031234
.dc.l $06011234,$00cff800,$00c7fc00,$00041234
.dc.l $06011234,$00cffbfe,$00c7fffe,$00041234
.dc.l $06011234,$00cffc00,$00c7fc00,$00031234
.dc.l $06011234,$00cffffe,$00c7fffe,$00031234
.dc.l $06011234,$00d00000,$00c00000,$00021234
.dc.l $06011234,$00d003fe,$00c003fe,$00021234
.dc.l $06011234,$00d00400,$00c00000,$00011234
.dc.l $06011234,$00d007fe,$00c003fe,$00011234
.dc.l $06011234,$00d00800,$00c00400,$00021234
.dc.l $06011234,$00d00bfe,$00c007fe,$00021234
.dc.l $06011234,$00d00c00,$00c00400,$00011234
.dc.l $06011234,$00d00ffe,$00c007fe,$00011234
.dc.l $06011234,$00dff000,$00c7f800,$00021234
.dc.l $06011234,$00dff3fe,$00c7fbfe,$00021234
.dc.l $06011234,$00dff400,$00c7f800,$00011234
.dc.l $06011234,$00dff7fe,$00c7fbfe,$00011234
.dc.l $06011234,$00dff800,$00c7fc00,$00021234
.dc.l $06011234,$00dffbfe,$00c7fffe,$00021234
.dc.l $06011234,$00dffc00,$00c7fc00,$00011234
.dc.l $06011234,$00dffffe,$00c7fffe,$00011234
;write byte
.dc.l $06021234,$00c00000,$00c00000,$56781234
.dc.l $06021234,$00c00001,$00c00000,$56781238
.dc.l $06021234,$00c003fe,$00c003fe,$56781234
.dc.l $06021234,$00c003ff,$00c003fe,$56781238
.dc.l $06021234,$00c00400,$00c00000,$56781234
.dc.l $06021234,$00c00401,$00c00000,$56781284
.dc.l $06021234,$00c007fe,$00c003fe,$56781234
.dc.l $06021234,$00c007ff,$00c003fe,$56781284
.dc.l $06021234,$00c00800,$00c00400,$56781234
.dc.l $06021234,$00c00801,$00c00400,$56781238
.dc.l $06021234,$00c00bfe,$00c007fe,$56781234
.dc.l $06021234,$00c00bff,$00c007fe,$56781238
.dc.l $06021234,$00c00c00,$00c00400,$56781234
.dc.l $06021234,$00c00c01,$00c00400,$56781284
.dc.l $06021234,$00c00ffe,$00c007fe,$56781234
.dc.l $06021234,$00c00fff,$00c007fe,$56781284
.dc.l $06021234,$00cff000,$00c7f800,$56781234
.dc.l $06021234,$00cff001,$00c7f800,$56781238
.dc.l $06021234,$00cff3fe,$00c7fbfe,$56781234
.dc.l $06021234,$00cff3ff,$00c7fbfe,$56781238
.dc.l $06021234,$00cff400,$00c7f800,$56781234
.dc.l $06021234,$00cff401,$00c7f800,$56781284
.dc.l $06021234,$00cff7fe,$00c7fbfe,$56781234
.dc.l $06021234,$00cff7ff,$00c7fbfe,$56781284
.dc.l $06021234,$00cff800,$00c7fc00,$56781234
.dc.l $06021234,$00cff801,$00c7fc00,$56781238
.dc.l $06021234,$00cffbfe,$00c7fffe,$56781234
.dc.l $06021234,$00cffbff,$00c7fffe,$56781238
.dc.l $06021234,$00cffc00,$00c7fc00,$56781234
.dc.l $06021234,$00cffc01,$00c7fc00,$56781284
.dc.l $06021234,$00cffffe,$00c7fffe,$56781234
.dc.l $06021234,$00cfffff,$00c7fffe,$56781284
.dc.l $06021234,$00d00000,$00c00000,$56781234
.dc.l $06021234,$00d00001,$00c00000,$56781834
.dc.l $06021234,$00d003fe,$00c003fe,$56781234
.dc.l $06021234,$00d003ff,$00c003fe,$56781834
.dc.l $06021234,$00d00400,$00c00000,$56781234
.dc.l $06021234,$00d00401,$00c00000,$56788234
.dc.l $06021234,$00d007fe,$00c003fe,$56781234
.dc.l $06021234,$00d007ff,$00c003fe,$56788234
.dc.l $06021234,$00d00800,$00c00400,$56781234
.dc.l $06021234,$00d00801,$00c00400,$56781834
.dc.l $06021234,$00d00bfe,$00c007fe,$56781234
.dc.l $06021234,$00d00bff,$00c007fe,$56781834
.dc.l $06021234,$00d00c00,$00c00400,$56781234
.dc.l $06021234,$00d00c01,$00c00400,$56788234
.dc.l $06021234,$00d00ffe,$00c007fe,$56781234
.dc.l $06021234,$00d00fff,$00c007fe,$56788234
.dc.l $06021234,$00dff000,$00c7f800,$56781234
.dc.l $06021234,$00dff001,$00c7f800,$56781834
.dc.l $06021234,$00dff3fe,$00c7fbfe,$56781234
.dc.l $06021234,$00dff3ff,$00c7fbfe,$56781834
.dc.l $06021234,$00dff400,$00c7f800,$56781234
.dc.l $06021234,$00dff401,$00c7f800,$56788234
.dc.l $06021234,$00dff7fe,$00c7fbfe,$56781234
.dc.l $06021234,$00dff7ff,$00c7fbfe,$56788234
.dc.l $06021234,$00dff800,$00c7fc00,$56781234
.dc.l $06021234,$00dff801,$00c7fc00,$56781834
.dc.l $06021234,$00dffbfe,$00c7fffe,$56781234
.dc.l $06021234,$00dffbff,$00c7fffe,$56781834
.dc.l $06021234,$00dffc00,$00c7fc00,$56781234
.dc.l $06021234,$00dffc01,$00c7fc00,$56788234
.dc.l $06021234,$00dffffe,$00c7fffe,$56781234
.dc.l $06021234,$00dfffff,$00c7fffe,$56788234
;write word
.dc.l $06031234,$00c00000,$00c00000,$56781238
.dc.l $06031234,$00c003fe,$00c003fe,$56781238
.dc.l $06031234,$00c00400,$00c00000,$56781284
.dc.l $06031234,$00c007fe,$00c003fe,$56781284
.dc.l $06031234,$00c00800,$00c00400,$56781238
.dc.l $06031234,$00c00bfe,$00c007fe,$56781238
.dc.l $06031234,$00c00c00,$00c00400,$56781284
.dc.l $06031234,$00c00ffe,$00c007fe,$56781284
.dc.l $06031234,$00cff000,$00c7f800,$56781238
.dc.l $06031234,$00cff3fe,$00c7fbfe,$56781238
.dc.l $06031234,$00cff400,$00c7f800,$56781284
.dc.l $06031234,$00cff7fe,$00c7fbfe,$56781284
.dc.l $06031234,$00cff800,$00c7fc00,$56781238
.dc.l $06031234,$00cffbfe,$00c7fffe,$56781238
.dc.l $06031234,$00cffc00,$00c7fc00,$56781284
.dc.l $06031234,$00cffffe,$00c7fffe,$56781284
.dc.l $06031234,$00d00000,$00c00000,$56781834
.dc.l $06031234,$00d003fe,$00c003fe,$56781834
.dc.l $06031234,$00d00400,$00c00000,$56788234
.dc.l $06031234,$00d007fe,$00c003fe,$56788234
.dc.l $06031234,$00d00800,$00c00400,$56781834
.dc.l $06031234,$00d00bfe,$00c007fe,$56781834
.dc.l $06031234,$00d00c00,$00c00400,$56788234
.dc.l $06031234,$00d00ffe,$00c007fe,$56788234
.dc.l $06031234,$00dff000,$00c7f800,$56781834
.dc.l $06031234,$00dff3fe,$00c7fbfe,$56781834
.dc.l $06031234,$00dff400,$00c7f800,$56788234
.dc.l $06031234,$00dff7fe,$00c7fbfe,$56788234
.dc.l $06031234,$00dff800,$00c7fc00,$56781834
.dc.l $06031234,$00dffbfe,$00c7fffe,$56781834
.dc.l $06031234,$00dffc00,$00c7fc00,$56788234
.dc.l $06031234,$00dffffe,$00c7fffe,$56788234
;
.dc.l -1
memory_mode_7:
;referenced address
; 0b00000000_110Yyyyy_yyyyyXxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c00400 .. 0x00c007ff |
; | 0x00c00800 0x00c00bff | 0x00c00c00 0x00c00fff |
; | : : | : : |
; | 0x00cff000 0x00cff3ff | 0x00cff400 0x00cff7ff |
; | 0x00cff800 .. 0x00cffbff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d00400 .. 0x00d007ff |
; | 0x00d00800 0x00d00bff | 0x00d00c00 0x00d00fff |
; | : : | : : |
; | 0x00dff000 0x00dff3ff | 0x00dff400 0x00dff7ff |
; | 0x00dff800 .. 0x00dffbff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;stored address
; 0b00000000_110YXyyy_yyyyyyxx_xxxxxxx?
; +--------------------------+--------------------------+
; | 0x00c00000 .. 0x00c003ff | 0x00c80000 .. 0x00c803ff |
; | 0x00c00400 0x00c007ff | 0x00c80400 0x00c807ff |
; | : G0 : | : G1 : |
; | 0x00c7f800 0x00c7fbff | 0x00cff800 0x00cffbff |
; | 0x00c7fc00 .. 0x00c7ffff | 0x00cffc00 .. 0x00cfffff |
; +--------------------------+--------------------------+
; | 0x00d00000 .. 0x00d003ff | 0x00d80000 .. 0x00d803ff |
; | 0x00d00400 0x00d007ff | 0x00d80400 0x00d807ff |
; | : G2 : | : G3 : |
; | 0x00d7f800 0x00d7fbff | 0x00dff800 0x00dffbff |
; | 0x00d7fc00 .. 0x00d7ffff | 0x00dffc00 .. 0x00dfffff |
; +--------------------------+--------------------------+
;read byte
.dc.l $07001234,$00c00000,$00c00000,$00001234
.dc.l $07001234,$00c00001,$00c00000,$00041234
.dc.l $07001234,$00c003fe,$00c003fe,$00001234
.dc.l $07001234,$00c003ff,$00c003fe,$00041234
.dc.l $07001234,$00c00400,$00c00000,$00001234
.dc.l $07001234,$00c00401,$00c00000,$00031234
.dc.l $07001234,$00c007fe,$00c003fe,$00001234
.dc.l $07001234,$00c007ff,$00c003fe,$00031234
.dc.l $07001234,$00c00800,$00c00400,$00001234
.dc.l $07001234,$00c00801,$00c00400,$00041234
.dc.l $07001234,$00c00bfe,$00c007fe,$00001234
.dc.l $07001234,$00c00bff,$00c007fe,$00041234
.dc.l $07001234,$00c00c00,$00c00400,$00001234
.dc.l $07001234,$00c00c01,$00c00400,$00031234
.dc.l $07001234,$00c00ffe,$00c007fe,$00001234
.dc.l $07001234,$00c00fff,$00c007fe,$00031234
.dc.l $07001234,$00cff000,$00c7f800,$00001234
.dc.l $07001234,$00cff001,$00c7f800,$00041234
.dc.l $07001234,$00cff3fe,$00c7fbfe,$00001234
.dc.l $07001234,$00cff3ff,$00c7fbfe,$00041234
.dc.l $07001234,$00cff400,$00c7f800,$00001234
.dc.l $07001234,$00cff401,$00c7f800,$00031234
.dc.l $07001234,$00cff7fe,$00c7fbfe,$00001234
.dc.l $07001234,$00cff7ff,$00c7fbfe,$00031234
.dc.l $07001234,$00cff800,$00c7fc00,$00001234
.dc.l $07001234,$00cff801,$00c7fc00,$00041234
.dc.l $07001234,$00cffbfe,$00c7fffe,$00001234
.dc.l $07001234,$00cffbff,$00c7fffe,$00041234
.dc.l $07001234,$00cffc00,$00c7fc00,$00001234
.dc.l $07001234,$00cffc01,$00c7fc00,$00031234
.dc.l $07001234,$00cffffe,$00c7fffe,$00001234
.dc.l $07001234,$00cfffff,$00c7fffe,$00031234
.dc.l $07001234,$00d00000,$00c00000,$00001234
.dc.l $07001234,$00d00001,$00c00000,$00021234
.dc.l $07001234,$00d003fe,$00c003fe,$00001234
.dc.l $07001234,$00d003ff,$00c003fe,$00021234
.dc.l $07001234,$00d00400,$00c00000,$00001234
.dc.l $07001234,$00d00401,$00c00000,$00011234
.dc.l $07001234,$00d007fe,$00c003fe,$00001234
.dc.l $07001234,$00d007ff,$00c003fe,$00011234
.dc.l $07001234,$00d00800,$00c00400,$00001234
.dc.l $07001234,$00d00801,$00c00400,$00021234
.dc.l $07001234,$00d00bfe,$00c007fe,$00001234
.dc.l $07001234,$00d00bff,$00c007fe,$00021234
.dc.l $07001234,$00d00c00,$00c00400,$00001234
.dc.l $07001234,$00d00c01,$00c00400,$00011234
.dc.l $07001234,$00d00ffe,$00c007fe,$00001234
.dc.l $07001234,$00d00fff,$00c007fe,$00011234
.dc.l $07001234,$00dff000,$00c7f800,$00001234
.dc.l $07001234,$00dff001,$00c7f800,$00021234
.dc.l $07001234,$00dff3fe,$00c7fbfe,$00001234
.dc.l $07001234,$00dff3ff,$00c7fbfe,$00021234
.dc.l $07001234,$00dff400,$00c7f800,$00001234
.dc.l $07001234,$00dff401,$00c7f800,$00011234
.dc.l $07001234,$00dff7fe,$00c7fbfe,$00001234
.dc.l $07001234,$00dff7ff,$00c7fbfe,$00011234
.dc.l $07001234,$00dff800,$00c7fc00,$00001234
.dc.l $07001234,$00dff801,$00c7fc00,$00021234
.dc.l $07001234,$00dffbfe,$00c7fffe,$00001234
.dc.l $07001234,$00dffbff,$00c7fffe,$00021234
.dc.l $07001234,$00dffc00,$00c7fc00,$00001234
.dc.l $07001234,$00dffc01,$00c7fc00,$00011234
.dc.l $07001234,$00dffffe,$00c7fffe,$00001234
.dc.l $07001234,$00dfffff,$00c7fffe,$00011234
;read word
.dc.l $07011234,$00c00000,$00c00000,$00041234
.dc.l $07011234,$00c003fe,$00c003fe,$00041234
.dc.l $07011234,$00c00400,$00c00000,$00031234
.dc.l $07011234,$00c007fe,$00c003fe,$00031234
.dc.l $07011234,$00c00800,$00c00400,$00041234
.dc.l $07011234,$00c00bfe,$00c007fe,$00041234
.dc.l $07011234,$00c00c00,$00c00400,$00031234
.dc.l $07011234,$00c00ffe,$00c007fe,$00031234
.dc.l $07011234,$00cff000,$00c7f800,$00041234
.dc.l $07011234,$00cff3fe,$00c7fbfe,$00041234
.dc.l $07011234,$00cff400,$00c7f800,$00031234
.dc.l $07011234,$00cff7fe,$00c7fbfe,$00031234
.dc.l $07011234,$00cff800,$00c7fc00,$00041234
.dc.l $07011234,$00cffbfe,$00c7fffe,$00041234
.dc.l $07011234,$00cffc00,$00c7fc00,$00031234
.dc.l $07011234,$00cffffe,$00c7fffe,$00031234
.dc.l $07011234,$00d00000,$00c00000,$00021234
.dc.l $07011234,$00d003fe,$00c003fe,$00021234
.dc.l $07011234,$00d00400,$00c00000,$00011234
.dc.l $07011234,$00d007fe,$00c003fe,$00011234
.dc.l $07011234,$00d00800,$00c00400,$00021234
.dc.l $07011234,$00d00bfe,$00c007fe,$00021234
.dc.l $07011234,$00d00c00,$00c00400,$00011234
.dc.l $07011234,$00d00ffe,$00c007fe,$00011234
.dc.l $07011234,$00dff000,$00c7f800,$00021234
.dc.l $07011234,$00dff3fe,$00c7fbfe,$00021234
.dc.l $07011234,$00dff400,$00c7f800,$00011234
.dc.l $07011234,$00dff7fe,$00c7fbfe,$00011234
.dc.l $07011234,$00dff800,$00c7fc00,$00021234
.dc.l $07011234,$00dffbfe,$00c7fffe,$00021234
.dc.l $07011234,$00dffc00,$00c7fc00,$00011234
.dc.l $07011234,$00dffffe,$00c7fffe,$00011234
;write byte
.dc.l $07021234,$00c00000,$00c00000,$56781234
.dc.l $07021234,$00c00001,$00c00000,$56781238
.dc.l $07021234,$00c003fe,$00c003fe,$56781234
.dc.l $07021234,$00c003ff,$00c003fe,$56781238
.dc.l $07021234,$00c00400,$00c00000,$56781234
.dc.l $07021234,$00c00401,$00c00000,$56781284
.dc.l $07021234,$00c007fe,$00c003fe,$56781234
.dc.l $07021234,$00c007ff,$00c003fe,$56781284
.dc.l $07021234,$00c00800,$00c00400,$56781234
.dc.l $07021234,$00c00801,$00c00400,$56781238
.dc.l $07021234,$00c00bfe,$00c007fe,$56781234
.dc.l $07021234,$00c00bff,$00c007fe,$56781238
.dc.l $07021234,$00c00c00,$00c00400,$56781234
.dc.l $07021234,$00c00c01,$00c00400,$56781284
.dc.l $07021234,$00c00ffe,$00c007fe,$56781234
.dc.l $07021234,$00c00fff,$00c007fe,$56781284
.dc.l $07021234,$00cff000,$00c7f800,$56781234
.dc.l $07021234,$00cff001,$00c7f800,$56781238
.dc.l $07021234,$00cff3fe,$00c7fbfe,$56781234
.dc.l $07021234,$00cff3ff,$00c7fbfe,$56781238
.dc.l $07021234,$00cff400,$00c7f800,$56781234
.dc.l $07021234,$00cff401,$00c7f800,$56781284
.dc.l $07021234,$00cff7fe,$00c7fbfe,$56781234
.dc.l $07021234,$00cff7ff,$00c7fbfe,$56781284
.dc.l $07021234,$00cff800,$00c7fc00,$56781234
.dc.l $07021234,$00cff801,$00c7fc00,$56781238
.dc.l $07021234,$00cffbfe,$00c7fffe,$56781234
.dc.l $07021234,$00cffbff,$00c7fffe,$56781238
.dc.l $07021234,$00cffc00,$00c7fc00,$56781234
.dc.l $07021234,$00cffc01,$00c7fc00,$56781284
.dc.l $07021234,$00cffffe,$00c7fffe,$56781234
.dc.l $07021234,$00cfffff,$00c7fffe,$56781284
.dc.l $07021234,$00d00000,$00c00000,$56781234
.dc.l $07021234,$00d00001,$00c00000,$56781834
.dc.l $07021234,$00d003fe,$00c003fe,$56781234
.dc.l $07021234,$00d003ff,$00c003fe,$56781834
.dc.l $07021234,$00d00400,$00c00000,$56781234
.dc.l $07021234,$00d00401,$00c00000,$56788234
.dc.l $07021234,$00d007fe,$00c003fe,$56781234
.dc.l $07021234,$00d007ff,$00c003fe,$56788234
.dc.l $07021234,$00d00800,$00c00400,$56781234
.dc.l $07021234,$00d00801,$00c00400,$56781834
.dc.l $07021234,$00d00bfe,$00c007fe,$56781234
.dc.l $07021234,$00d00bff,$00c007fe,$56781834
.dc.l $07021234,$00d00c00,$00c00400,$56781234
.dc.l $07021234,$00d00c01,$00c00400,$56788234
.dc.l $07021234,$00d00ffe,$00c007fe,$56781234
.dc.l $07021234,$00d00fff,$00c007fe,$56788234
.dc.l $07021234,$00dff000,$00c7f800,$56781234
.dc.l $07021234,$00dff001,$00c7f800,$56781834
.dc.l $07021234,$00dff3fe,$00c7fbfe,$56781234
.dc.l $07021234,$00dff3ff,$00c7fbfe,$56781834
.dc.l $07021234,$00dff400,$00c7f800,$56781234
.dc.l $07021234,$00dff401,$00c7f800,$56788234
.dc.l $07021234,$00dff7fe,$00c7fbfe,$56781234
.dc.l $07021234,$00dff7ff,$00c7fbfe,$56788234
.dc.l $07021234,$00dff800,$00c7fc00,$56781234
.dc.l $07021234,$00dff801,$00c7fc00,$56781834
.dc.l $07021234,$00dffbfe,$00c7fffe,$56781234
.dc.l $07021234,$00dffbff,$00c7fffe,$56781834
.dc.l $07021234,$00dffc00,$00c7fc00,$56781234
.dc.l $07021234,$00dffc01,$00c7fc00,$56788234
.dc.l $07021234,$00dffffe,$00c7fffe,$56781234
.dc.l $07021234,$00dfffff,$00c7fffe,$56788234
;write word
.dc.l $07031234,$00c00000,$00c00000,$56781238
.dc.l $07031234,$00c003fe,$00c003fe,$56781238
.dc.l $07031234,$00c00400,$00c00000,$56781284
.dc.l $07031234,$00c007fe,$00c003fe,$56781284
.dc.l $07031234,$00c00800,$00c00400,$56781238
.dc.l $07031234,$00c00bfe,$00c007fe,$56781238
.dc.l $07031234,$00c00c00,$00c00400,$56781284
.dc.l $07031234,$00c00ffe,$00c007fe,$56781284
.dc.l $07031234,$00cff000,$00c7f800,$56781238
.dc.l $07031234,$00cff3fe,$00c7fbfe,$56781238
.dc.l $07031234,$00cff400,$00c7f800,$56781284
.dc.l $07031234,$00cff7fe,$00c7fbfe,$56781284
.dc.l $07031234,$00cff800,$00c7fc00,$56781238
.dc.l $07031234,$00cffbfe,$00c7fffe,$56781238
.dc.l $07031234,$00cffc00,$00c7fc00,$56781284
.dc.l $07031234,$00cffffe,$00c7fffe,$56781284
.dc.l $07031234,$00d00000,$00c00000,$56781834
.dc.l $07031234,$00d003fe,$00c003fe,$56781834
.dc.l $07031234,$00d00400,$00c00000,$56788234
.dc.l $07031234,$00d007fe,$00c003fe,$56788234
.dc.l $07031234,$00d00800,$00c00400,$56781834
.dc.l $07031234,$00d00bfe,$00c007fe,$56781834
.dc.l $07031234,$00d00c00,$00c00400,$56788234
.dc.l $07031234,$00d00ffe,$00c007fe,$56788234
.dc.l $07031234,$00dff000,$00c7f800,$56781834
.dc.l $07031234,$00dff3fe,$00c7fbfe,$56781834
.dc.l $07031234,$00dff400,$00c7f800,$56788234
.dc.l $07031234,$00dff7fe,$00c7fbfe,$56788234
.dc.l $07031234,$00dff800,$00c7fc00,$56781834
.dc.l $07031234,$00dffbfe,$00c7fffe,$56781834
.dc.l $07031234,$00dffc00,$00c7fc00,$56788234
.dc.l $07031234,$00dffffe,$00c7fffe,$56788234
;
.dc.l -1
;--------------------------------------------------------------------------------
;test
.text
.even
test_start:
clr.l test_failed
clr.l test_tested
rts
;<d1.b:memory mode
;<d2.b:access mode
;<d4.w:expected read data or written data
;<d5.w:expected vram content after access
;<d6.w:actual read data
;<d7.w:actual vram content after access
;?d0
test_check:
addq.l #1,test_tested
cmp.w d4,d6 ;compare read data
bne 21f
cmp.w d5,d7 ;compare vram content after access
beq 29f
21:
addq.l #1,test_failed
;expected
print 9,'.dc.l',9
move.b d1,d0 ;memory mode
lsl.w #8,d0
move.b d2,d0 ;access mode
swap.w d0
move.w d3,d0 ;vram content before access
bsr print_hex8
putchar #','
move.l a1,d0 ;address
bsr print_hex8
putchar #','
move.l a2,d0 ;even address in memory mode 3
bsr print_hex8
putchar #','
move.w d4,d0 ;expected read data
swap.w d0
move.w d5,d0 ;expected conten after access
bsr print_hex8
print 9,';expected',13,10
;actual
print 9,'.dc.l',9
move.b d1,d0 ;memory mode
lsl.w #8,d0
move.b d2,d0 ;access mode
swap.w d0
move.w d3,d0 ;vram content before access
bsr print_hex8
putchar #','
move.l a1,d0 ;address
bsr print_hex8
putchar #','
move.l a2,d0 ;even address in memory mode 3
bsr print_hex8
putchar #','
move.w d6,d0 ;actual read data
swap.w d0
move.w d7,d0 ;actual conten after access
bsr print_hex8
print 9,';actual',13,10
;
29:
rts
test_end:
movem.l d0-d4,-(sp)
move.l test_failed,d2
;<d2.lfailed
move.l test_tested,d3
;<d3.l:tested
move.l d3,d4
sub.l d2,d4
;<d4.l:passed
print 'tested:'
move.l d3,d0 ;tested
jbsr print_dec
tst.l d3
beq 38f ;no tests were performed
print ', passed:'
move.l d4,d0 ;passed
jbsr print_dec
print '('
mulu.w #10000,d0
divu.w d3,d0 ;10000*passed/tested
and.l #$0000ffff,d0
move.l #10000,d4
sub.w d0,d4 ;100-100*passed/tested
moveq.l #2,d1
jbsr print_fix
print '%), failed:'
move.l d2,d0 ;failed
jbsr print_dec
print '('
move.l d4,d0 ;100-100*passed/tested
jbsr print_fix
print '%)'
38:
jbsr print_crlf
movem.l (sp)+,d0-d4
rts
.bss
.align 4
test_failed:
.ds.l 1
test_tested:
.ds.l 1
;--------------------------------------------------------------------------------
;print decimal number
;<d0.l:number
.text
.even
print_dec:
movem.l d0-d2/a0-a1,-(sp)
lea.l -12(sp),sp
movea.l sp,a0
tst.l d0
bne 1f
move.b #'0',(a0)+
bra 5f
1:
lea.l base_ten(pc),a1
2:
move.l (a1)+,d1
cmp.l d1,d0
blo 2b
3:
moveq.l #'0'-1,d2
4:
addq.b #1,d2
sub.l d1,d0
bcc 4b
add.l d1,d0
move.b d2,(a0)+
move.l (a1)+,d1
bne 3b
5:
suba.l sp,a0
move.l a0,-(sp)
pea.l 4(sp)
move.w #1,-(sp)
DOS _WRITE
lea.l 10+12(sp),sp
movem.l (sp)+,d0-d2/a0-a1
rts
;--------------------------------------------------------------------------------
;print fixed point decimal number
;<d0.l:fixed point decimal number * 10^d1
;<d1.b:number of digits after decimal point (>=1)
.text
.even
print_fix:
movem.l d0-d4/a0-a1,-(sp)
moveq.l #0,d3
move.b d1,d3
;<d3.l:number of digits after decimal point (>=1)
move.l d3,d4
addq.w #3,d4
and.w #-4,d4 ;round up to multiples of four
add.w #12,d4 ;12 bytes for integer part and decimal point
;<d4.l:buffer size
suba.l d4,sp
;<sp.l:buffer
movea.l sp,a0
tst.l d0
bne 20f
;zero
move.b #'0',(a0)+
move.b #'.',(a0)+
move.w d3,d2 ;number of digits after decimal point (>=1)
bra 12f
11:
move.b #'0',(a0)+
12:
dbra d2,11b
bra 80f ;print
;non-zero
20:
lea.l base_ten(pc),a1
;zero suppression
21:
move.l (a1)+,d1
cmp.l d1,d0
blo 21b
;convert to decimal number
22:
moveq.l #'0'-1,d2
23:
addq.b #1,d2
sub.l d1,d0
bcc 23b
add.l d1,d0
move.b d2,(a0)+
move.l (a1)+,d1
bne 22b
;
move.l a0,d2
sub.l sp,d2
;<d2.l:number of digits
cmp.w d3,d2
bls 40f
;number of digits > number of digits after decimal point
;insert '.'
move.w d3,d2 ;number of digits after decimal point (>=1)
movea.l a0,a1
addq.l #1,a0
bra 32f
31:
move.b -(a1),1(a1)
32:
dbra d2,31b
move.b #'.',(a1)
bra 80f
40:
;number of digits after decimal point >= number of digits
;insert '0.00...'
move.w d3,d0 ;number of digits after decimal point (>=1)
sub.w d2,d0 ;number of zeros after decimal point (>=0)
movea.l a0,a1
lea.l 2(a0,d0.w),a0
bra 42f
41:
move.b -(a1),2(a1,d0.w)
42:
dbra d2,41b
movea.l sp,a1
move.b #'0',(a1)+
move.b #'.',(a1)+
bra 44f
43:
move.b #'0',(a1)+
44:
dbra d0,43b
;print
80:
suba.l sp,a0
move.l a0,-(sp) ;length
pea.l 4(sp) ;buffer
move.w #1,-(sp) ;stdout
DOS _WRITE
lea.l 10(sp),sp
adda.l d4,sp
movem.l (sp)+,d0-d4/a0-a1
rts
base_ten:
.dc.l 1000000000
.dc.l 100000000
.dc.l 10000000
.dc.l 1000000
.dc.l 100000
.dc.l 10000
.dc.l 1000
.dc.l 100
.dc.l 10
.dc.l 1
.dc.l 0
;--------------------------------------------------------------------------------
;print hexadecimal number
;<d0.l:number
.text
.even
print_hex8:
movem.l d0-d2/a0,-(sp)
lea.l -10(sp),sp
movea.l sp,a0
move.b #'$',(a0)+
moveq.l #8-1,d2
2:
rol.l #4,d0
moveq.l #15,d1
and.w d0,d1
move.b 10f(pc,d1.w),(a0)+
dbra d2,2b
pea.l 1+8.w
pea.l 4(sp)
move.w #1,-(sp)
DOS _WRITE
lea.l 10+10(sp),sp
movem.l (sp)+,d0-d2/a0
rts
10:
.dc.b '0123456789abcdef'
;--------------------------------------------------------------------------------
;print crlf
.text
.even
print_crlf:
move.l d0,-(sp)
pea.l 2.w
pea.l 10f(pc)
move.w #1,-(sp)
DOS _WRITE
lea.l 10(sp),sp
move.l (sp)+,d0
rts
10:
.dc.b 13,10
;--------------------------------------------------------------------------------
;print character
;<4(sp).w:character
.text
.even
putchar_by_write:
move.l d0,-(sp)
pea.l 1.w
pea.l 12+1(sp)
move.w #1,-(sp)
DOS _WRITE
lea.l 10(sp),sp
move.l (sp)+,d0
rts
;--------------------------------------------------------------------------------
;print string
;<4(sp).l:string
.text
.even
print_by_write:
movem.l d0/a0-a1,-(sp)
movea.l 16(sp),a1
movea.l a1,a0
@@:
tst.b (a1)+
bne @b
subq.l #1,a1
suba.l a0,a1
movem.l a0-a1,-(sp)
move.w #1,-(sp)
DOS _WRITE
lea.l 10(sp),sp
movem.l (sp)+,d0/a0-a1
rts
;--------------------------------------------------------------------------------
;end
.end main