OpenCores
URL https://opencores.org/ocsvn/rf6809/rf6809/trunk

Subversion Repositories rf6809

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /rf6809/trunk/software
    from Rev 15 to Rev 16
    Reverse comparison

Rev 15 → Rev 16

/a09/a09.c
1463,7 → 1463,7
int nRepNext = 0; /* # repetitions for REP pseudo-op */
int nSkipCount = 0; /* # lines to skip */
 
unsigned short tfradr = 0;
unsigned tfradr = 0;
int tfradrset = 0;
 
int nCurLine = 0; /* current output line on page */
7010,8 → 7010,8
break;
case OUT_SREC : /* Motorola S51-09 */
flushhex();
chksum = (tfradr & 0xff) + ((tfradr >> 8) & 0xff) + 3;
fprintf(objfile, "S903%04X%02X\n", tfradr, 0xff - (chksum & 0xff));
chksum = (tfradr & 0xfff) + ((tfradr >> 12) & 0xfff) + 3;
fprintf(objfile, "S9003%06X%03X\n", tfradr, 0xfff - (chksum & 0xfff));
break;
case OUT_IHEX : /* Intel Hex */
flushihex();
/boot/boot_rom.asm
92,6 → 92,7
IrqSource EQU $FFC011
IRQFlag EQU $FFC012
RunningID EQU $FFC013
; Top of boot stack is at $FFC0FF
 
; These variables use direct page access
CursorRow EQU $110
158,6 → 159,8
mon_r1 EQU $920
mon_r2 EQU $924
jmpvec EQU $928
mon_init EQU $92C
mon_retflag EQU $930
 
; The ORG directive must set an address a multiple of 4 in order for the Verilog
; output to work correctly.
243,59 → 246,17
ramerr:
lda #$80
sta LEDS
ldb COREID
cmpb #$20
beq ramerr1
ldx #TEXTSCR
ldb COREID
abx
lda #'F'
sta ,x
sync
ramerr1:
jmp ,u
 
dramtest:
ldy #$10000 ; DRAM starts here
lda #1
sta LEDS
ldu #$AAA555
lbsr CRLF
dramtest1:
deca
bne dramtest4
tfr y,d
lbsr DispWordAsHex
ldb #CR
lbsr OUTCH
dramtest4:
stu ,y++
cmpy #$E00000 ; DRAM ends here
blo dramtest1
; now readback values and compare
ldy #$10000
lda #1
lbsr CRLF
dramtest3:
deca
bne dramtest5
tfr y,d
lbsr DispWordAsHex
ldb #CR
lbsr OUTCH
dramtest5:
cmpu ,y++
bne dramerr
cmpy #$E00000
blo dramtest3
lda #2
sta LEDS
lbra Monitor
dramerr:
lda #$80
sta LEDS
ldx #TEXTSCR
ldb COREID
abx
lda #'F'
sta ,x
lbra Monitor
 
org $FFE000
FDB Monitor
331,7 → 292,7
sta OSSEMA+$1000
sta OUTSEMA+$1000
ldu #st6 ; U = return address
jmp ramtest ; JMP dont JSR
; jmp ramtest ; JMP dont JSR
st6:
lds #$6FFF ; boot up stack area
lda COREID
350,7 → 311,11
clr NumSetBreakpoints
lda #$AA
sta LEDS
lda COREID
cmpa #$20
beq st11
lda #FIRST_CORE
st11:
sta IOFocusID ; core #2 has focus
sta RunningID
; Clear IO focus list
377,6 → 342,8
ldb COREID
cmpb #FIRST_CORE
beq init
cmpb #$20 ; CmodA709 core?
beq init2
bra skip_init
bra multi_sieve
st3:
394,11 → 361,6
clr ,x+
decb
bne init1
lbsr TimerInit
lbsr InitSerial
ldx #128
lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
ldb #FIRST_CORE ; serving core id
st1:
clr PIC,x ; cause code
sta PIC+1,x
406,17 → 368,10
leax 4,x
cmpx #256
blo st1
; lda #4 ; make the timer interrupt edge sensitive
; sta PIC+4 ; reg #4 is the edge sensitivity setting
; sta PIC ; reg #0 is interrupt enable
lda #$81 ; make irq edge sensitive
sta PIC+$FD
lda #31 ; enable timer interrupt
sta PIC+9
ldb #1
stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
skip_init:
andcc #$EF ; unmask irq
lda #COLS
sta TEXTREG+TEXT_COLS
lda #ROWS
423,10 → 378,6
sta TEXTREG+TEXT_ROWS
bsr ClearScreen
bsr HomeCursor
lda #5
sta LEDS
ldd #msgStartup
bsr DisplayString
ldx #0
ldd #0
lbsr ShowSprites
433,7 → 384,27
lbsr KeybdInit
ldd KeybdID
bsr DispWordAsHex
jmp MonitorStart
init2:
lbsr TimerInit
lbsr InitSerial
ldx #128
lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
ldb #FIRST_CORE ; serving core id
; lda #4 ; make the timer interrupt edge sensitive
; sta PIC+4 ; reg #4 is the edge sensitivity setting
; sta PIC ; reg #0 is interrupt enable
ldb #1
stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
skip_init:
andcc #$EF ; unmask irq
lda #5
sta LEDS
ldd #msgStartup
bsr DisplayString
st10:
swi
fcb MF_Monitor
bra st10
 
msgStartup
fcb "rf6809 12-bit System Starting.",CR,LF,0
739,6 → 710,8
lda COREID ; which core are we?
cmpa IOFocusID ; do we have the IO focus
bne gsl1 ; no, go pick virtual screen address
cmpa #$20 ; CmodA709?
beq gsl1
ldd #TEXTSCR ; yes, we update the real screen
rts
gsl1:
760,6 → 733,8
ldb COREID
cmpb IOFocusID
bne hc1
cmpb #$20
beq hc1
clra
sta TEXTREG+TEXT_CURPOS
hc1:
777,7 → 752,9
pshs d,x
ldb COREID ; update cursor position in text controller
cmpb IOFocusID ; only for the task with the output focus
bne ucp1
bne ucp1
cmpb #$20 ; and not for CmodA709
beq ucp1
lda CursorRow
anda #$3F ; limit of 63 rows
ldb TEXTREG+TEXT_COLS
810,6 → 787,8
ldb COREID ; update cursor position in text controller
cmpb IOFocusID ; only for the task with the output focus
bne csl1
cmpb #$20
beq csl1
stx TEXTREG+TEXT_CURPOS
csl1:
bsr GetScreenLocation
972,6 → 951,9
DisplayString:
pshs d,x
tfr d,x
lda COREID
cmpa #$20
beq dspj1B
dspj2: ; lock semaphore for access
lda OUTSEMA+1
beq dspj2
1112,6 → 1094,7
;==============================================================================
 
OPT INCLUDE "d:\cores2022\rf6809\software\boot\serial.asm"
OPT INCLUDE "d:\cores2022\rf6809\software\boot\S19Loader.asm"
 
;------------------------------------------------------------------------------
; Check if there is a keyboard character available. If so return true (<0)
1326,12 → 1309,14
fcb "exi",'t'+$800
fcb '?'+$800
fcb "CL",'S'+$800
fcb "S1",'9'+$800
fcb "JD",'4'+$800
fcw 0
 
cmdTable2:
fcw Redirect
fcw ArmBreakpoint
fcw DisarmBreakpoint
fcw MonArmBreakpoint
fcw MonDisarmBreakpoint
fcw DumpRegs
fcw DumpMemory
fcw EditMemory
1339,7 → 1324,7
fcw FillMemory
fcw DumpIOFocusList
fcw jump_to_code
fcw dramtest
fcw $FFD400
fcw $FF8000 ; sprite demo
fcw rtc_read
fcw $FF8003 ; unassembler
1346,6 → 1331,8
fcw xitMonitor
fcw PromptHelp
fcw PromptClearscreen
fcw S19Loader
fcw $FFD400
 
CmdPrompt:
lbsr CRLF
1356,7 → 1343,10
msgF09Starting:
fcb "Femtiki F09 Multi-core OS Starting",CR,LF,0
 
MonitorStart:
Monitor:
ldd mon_init ; check special code to see if monitor has been initialized
cmpd #1234567
beq mon1
clr BreakpointFlag
clr NumSetBreakpoints
ldd #123
1381,7 → 1371,9
clr mon_XSAVE
clr mon_YSAVE
clr mon_USAVE
Monitor:
ldd #1234567
std mon_init
mon1:
leas $6FFF ; reset stack pointer
clrb ; turn off keyboard echo
lbsr SetKeyboardEcho
1489,6 → 1481,15
beq MonGetNonSpace
rts
 
MonArmBreakpoint:
lbsr ArmBreakpoint
ldb #$FFF
stb BreakpointFlag
lbra Monitor
MonDisarmBreakpoint:
lbsr DisarmBreakpoint
lbra Monitor
 
;------------------------------------------------------------------------------
; Ignore blanks in the input
; Y = text pointer
1507,18 → 1508,13
; Multiply number in work area by 10.
;------------------------------------------------------------------------------
Times10:
pshs d
ldd mon_numwka ; make a copy of the number
std mon_numwka+8
ldd mon_numwka+2
std mon_numwka+10
asl mon_numwka+3 ; shift left = *2
rol mon_numwka+2
rol mon_numwka+1
rol mon_numwka+0
asl mon_numwka+3 ; shift left = *4
rol mon_numwka+2
rol mon_numwka+1
rol mon_numwka+0
bsr shl_numwka ; shift left = *2
bsr shl_numwka ; shift left = *4
ldd mon_numwka+2 ; add in original value
addd mon_numwka+10 ; = *5
ldb mon_numwka+1
1527,23 → 1523,20
lda mon_numwka+0
adca mon_numwka+8
sta mon_numwka+0
asl mon_numwka+3 ; shift left = * 10
rol mon_numwka+2
rol mon_numwka+1
rol mon_numwka+0
rts
bsr shl_numwka ; shift left = * 10
puls d,pc
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
GetTwoParams:
bsr ignBlanks
bsr GetHexNumber ; get start address of dump
bsr GetNumber ; get start address of dump
ldd mon_numwka
std mon_r1
ldd mon_numwka+2
std mon_r1+2
bsr ignBlanks
bsr GetHexNumber ; get end address of dump
bsr GetNumber ; get end address of dump
ldd mon_numwka
std mon_r2
ldd mon_numwka+2
1607,7 → 1600,66
tfr x,d
puls x,pc
 
;GetDecNumber:
GetBinNumber:
clrd
std mon_numwka
std mon_numwka+2
pshs x
ldx #0
gtbin2:
bsr MonGetch
bsr AsciiToBinDigit
tstb
bmi gtbin1
bsr shl_numwka
orb mon_numwka+3
stb mon_numwka+3
inx
cpx #48
blo gtbin2
gtbin1:
tfr x,d
puls x,pc
GetDecNumber:
clrd
std mon_numwka
std mon_numwka+2
pshs x
ldx #0
gtdec2:
bsr MonGetch
bsr AsciiToDecDigit
tstb
bmi gtdec1
bsr Times10
addb mon_numwka+3
stb mon_numwka+3
ldb mon_numwka+2
adcb #0
stb mon_numwka+2
ldb mon_numwka+1
adcb #0
stb mon_numwka+1
ldb mon_numwka+0
adcb #0
stb mon_numwka+0
inx
cpx #15
blo gtdec2
gtdec1:
tfr x,d
puls x,pc
 
GetNumber:
bsr MonGetch
cmpb #'+'
beq GetDecNumber
cmpb #'%'
beq GetBinNumber
dey
bra GetHexNumber
 
; phx
; push r4
; push r5
1662,11 → 1714,11
ldb #-1 ; not a hex number
rts
 
AsciiToDecNybble:
AsciiToDecDigit:
cmpb #'0'
bcc gtdc3
cmpb #'9'+1
bcs gtdc3
blo gtdc3
cmpb #'9'
bhi gtdc3
subb #'0'
rts
gtdc3:
1673,6 → 1725,20
ldb #-1
rts
 
AsciiToBinDigit:
cmpb #'0'
bne abd1
clrb
rts
abd1:
cmpb #'1'
bne abd2
ldb #1
rts
abd2:
ldb #-1
rts
 
DisplayErr:
ldd #msgErr
lbsr DisplayString
1700,16 → 1766,18
fcb "D = Dump memory",CR,LF
fcb "F = Fill memory",CR,LF
fcb "FL = Dump I/O Focus List",CR,LF
fcb "FIG = start FIG Forth",CR,LF
; fcb "FIG = start FIG Forth",CR,LF
; db "KILL n = kill task #n",CR,LF
; db "B = start tiny basic",CR,LF
; db "b = start EhBasic 6502",CR,LF
fcb "J = Jump to code",CR,LF
fcb "RAM = test RAM",CR,LF
fcb "JD4 = Jump to $FFD400",CR,LF
fcb "RAMTEST = test RAM",CR,LF
; db "R[n] = Set register value",CR,LF
; db "r = random lines - test bitmap",CR,LF
; db "e = ethernet test",CR,LF
fcb "s = serial output test",CR,LF
fcb "S19 = run S19 loader",CR,LF
fcb "SP = sprite demo",CR,LF
; db "T = Dump task list",CR,LF
; db "TO = Dump timeout list",CR,LF
1919,12 → 1987,12
;------------------------------------------------------------------------------
 
jump_to_code:
bsr GetHexNumber
bsr GetNumber
sei
lds mon_SSAVE
ldd #<jtc_exit ; setup stack for RTS back to monitor
ldd #jtc_exit ; setup stack for RTS back to monitor
pshs d
ldb #>jtc_exit
ldb #0
pshs b
ldd mon_numwka+2 ; get the address parameter
pshs d
1992,7 → 2060,7
bootpg:
fcb $000
boot_stack:
fcw $006FFF
fcw $FFC0FF
numBreakpoints:
fcb 8
mon_rom_vectab:
2010,9 → 2078,28
fcw mon_rand
fcw 0 ; operating system call
fcw GetRange
fcw GetNumber
 
NumFuncs EQU (*-mon_rom_vectab)/2
 
; The following table indicates which routines need to return values in the
; D and possibly X registers.
 
mon_rettab:
fcb 0 ; monitor
fcb $800 ; INCH
fcb 0 ; OUTCH
fcb 0 ; CRLF
fcb 0 ; DisplayString
fcb 0 ; DisplayByte
fcb 0 ; DisplayWord
fcb 0 ; show sprites
fcb 0 ; srand
fcb $C00 ; rand
fcb $C00 ; OS call
fcb 0 ; GetRange
fcb $800 ; GetNumber
;------------------------------------------------------------------------------
; SWI routine.
;
2051,6 → 2138,11
abx
ldx ,x
stx jmpvec
lsrb
ldx #mon_rettab
abx
ldb ,x
stb mon_retflag
sts mon_SSAVE ; save the stack pointer
ldd 1,s ; get back D
ldx 4,s ; get back X
2060,6 → 2152,13
jsr [jmpvec] ; call the routine
swi_rout3:
lds mon_SSAVE ; restore stack
tst mon_retflag
bpl swi_rout4
std 1,s ; return value in D
asl mon_retflag
bpl swi_rout4
stx 4,s ; return value in X
swi_rout4:
rti
 
processBreakpoint:
2085,8 → 2184,7
lbra DumpRegs
 
xitMonitor:
bsr ArmAllBreakpoints
rts
bra ArmAllBreakpoints
 
swiCallOS:
leau 1,u ; next byte is func number
2152,9 → 2250,9
ldy mon_numwka+2 ; get address
lda ,y ; get byte at address
ldx #BreakpointBytes ; and store byte in a table
sta b,x ; record
lda #OPC_SWI ; put a SWI instruction in place
sta ,y
sta b,x
ldx #Breakpoints ; also store the address in a table
aslb ; index for 2 byte values
sty b,x
/boot/boot_rom.lst
83,6 → 83,7
CTRLS EQU $13
CTRLT EQU $14
CTRLX EQU $18
CTRLZ EQU $1A
XON EQU $11
XOFF EQU $13
103,7 → 104,8
MF_Srand EQU 8
MF_Random EQU 9
MF_OSCALL EQU 10
MF_GetRange EQU 11
MF_GetRange EQU 11 ; gets a pair of numbers last>first
MF_GetNumber EQU 12
mon_numwka EQU $910
mon_r1 EQU $920
184,6 → 186,7
SEMAABS EQU $1000
OSSEMA EQU $EF0010
OPC_SWI EQU $03F
ScreenLocation EQU $10
ColorCodeLocation EQU $14
ScreenLocation2 EQU $18
238,6 → 241,7
IrqSource EQU $FFC011
IRQFlag EQU $FFC012
RunningID EQU $FFC013
; Top of boot stack is at $FFC0FF
; These variables use direct page access
CursorRow EQU $110
304,6 → 308,8
mon_r1 EQU $920
mon_r2 EQU $924
jmpvec EQU $928
mon_init EQU $92C
mon_retflag EQU $930
; The ORG directive must set an address a multiple of 4 in order for the Verilog
; output to work correctly.
314,7 → 320,7
00FFD0AE 012 nop
XBLANK
00FFD0AF 0C6020 ldb #' '
00FFD0B1 017001C5E lbsr OUTCH
00FFD0B1 017001E2D lbsr OUTCH
00FFD0B4 039 rts
org $FFD0D0
323,9 → 329,9
CRLF
CRLF1:
00FFD0D2 0C600D ldb #CR
00FFD0D4 017001C3B lbsr OUTCH
00FFD0D4 017001E0A lbsr OUTCH
00FFD0D7 0C600A ldb #LF
00FFD0D9 017001C36 lbsr OUTCH
00FFD0D9 017001E05 lbsr OUTCH
00FFD0DC 039 rts
org $FFD0F0
339,7 → 345,7
org $FFD2C0
00FFD2C0 012 nop
LETTER
00FFD2C1 017001A4E lbsr OUTCH
00FFD2C1 017001C1D lbsr OUTCH
00FFD2C4 039 rts
org $FFD2CC
346,18 → 352,18
00FFD2CC 012 nop
00FFD2CD 012 nop
HEX2
00FFD2CE 017001142 lbsr DispByteAsHex
00FFD2CE 017001166 lbsr DispByteAsHex
00FFD2D1 039 rts
HEX4
00FFD2D2 017001135 lbsr DispWordAsHex
00FFD2D2 017001159 lbsr DispWordAsHex
00FFD2D5 039 rts
org $FFD300
ClearScreenJmp
00FFD300 016000F2B lbra ClearScreen
00FFD300 016000F36 lbra ClearScreen
org $FFD308
HomeCursorJmp
00FFD308 016000F96 lbra HomeCursor
00FFD308 016000FA5 lbra HomeCursor
org $FFD400
389,78 → 395,34
ramerr:
00FFD42C 086080 lda #$80
00FFD42E 0150B7FFFE60001 sta LEDS
00FFD433 08EE00000 ldx #TEXTSCR
00FFD436 0150F6FFFFFFFE0 ldb COREID
00FFD43B 03A abx
00FFD43C 086046 lda #'F'
00FFD43E 0A7804 sta ,x
00FFD440 013 sync
00FFD441 06EC04 jmp ,u
00FFD433 0150F6FFFFFFFE0 ldb COREID
00FFD438 0C1020 cmpb #$20
00FFD43A 027009 beq ramerr1
00FFD43C 08EE00000 ldx #TEXTSCR
00FFD43F 03A abx
00FFD440 086046 lda #'F'
00FFD442 0A7804 sta ,x
00FFD444 013 sync
ramerr1:
00FFD445 06EC04 jmp ,u
dramtest:
00FFD443 18E010000 ldy #$10000 ; DRAM starts here
00FFD446 086001 lda #1
00FFD448 0150B7FFFE60001 sta LEDS
00FFD44D 0CEAAA555 ldu #$AAA555
00FFD450 017FFFC7F lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
dramtest1:
00FFD453 04A deca
00FFD454 02600A bne dramtest4
00FFD456 01F020 tfr y,d
00FFD458 017000FAF lbsr DispWordAsHex
00FFD45B 0C600D ldb #CR
00FFD45D 0170018B2 lbsr OUTCH
dramtest4:
00FFD460 0EFA01 stu ,y++
00FFD462 18CE00000 cmpy #$E00000 ; DRAM ends here
00FFD465 025FEC blo dramtest1
; now readback values and compare
00FFD467 18E010000 ldy #$10000
00FFD46A 086001 lda #1
00FFD46C 017FFFC63 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
dramtest3:
00FFD46F 04A deca
00FFD470 02600A bne dramtest5
00FFD472 01F020 tfr y,d
00FFD474 017000F93 lbsr DispWordAsHex
00FFD477 0C600D ldb #CR
00FFD479 017001896 lbsr OUTCH
dramtest5:
00FFD47C 2A3A01 cmpu ,y++
00FFD47E 02600F bne dramerr
00FFD480 18CE00000 cmpy #$E00000
00FFD483 025FEA blo dramtest3
00FFD485 086002 lda #2
00FFD487 0150B7FFFE60001 sta LEDS
00FFD48C 016001A18 lbra Monitor
dramerr:
00FFD48F 086080 lda #$80
00FFD491 0150B7FFFE60001 sta LEDS
00FFD496 08EE00000 ldx #TEXTSCR
00FFD499 0150F6FFFFFFFE0 ldb COREID
00FFD49E 03A abx
00FFD49F 086046 lda #'F'
00FFD4A1 0A7804 sta ,x
00FFD4A3 016001A01 lbra Monitor
org $FFE000
00FFE000 FFEEA7 FDB Monitor
00FFE000 FFF039 FDB Monitor
00FFE002 FFE022 FDB DumRts ; NEXTCMD
00FFE004 FFECDA FDB INCH
00FFE006 FFECF8 FDB INCHE
00FFE008 FFECFC FDB INCHEK
00FFE00A FFED12 FDB OUTCH
00FFE00C FFE3F7 FDB PDATA
00FFE00E FFE3EA FDB PCRLF
00FFE010 FFE3E6 FDB PSTRNG
00FFE004 FFEEA9 FDB INCH
00FFE006 FFEEC7 FDB INCHE
00FFE008 FFEECB FDB INCHEK
00FFE00A FFEEE1 FDB OUTCH
00FFE00C FFE41B FDB PDATA
00FFE00E FFE40E FDB PCRLF
00FFE010 FFE40A FDB PSTRNG
00FFE012 FFE022 FDB DumRts ; LRA
00FFE014 FFE022 FDB DumRts
00FFE016 FFE022 FDB DumRts
00FFE018 FFE022 FDB DumRts
00FFE01A FFE022 FDB DumRts ; VINIZ
00FFE01C FFE2FE FDB DisplayChar ; VOUTCH
00FFE01C FFE319 FDB DisplayChar ; VOUTCH
00FFE01E FFE022 FDB DumRts ; ACINIZ
00FFE020 FFE022 FDB DumRts ; AOUTCH
478,12 → 440,12
00FFE031 086001 lda #1 ; prime OS semaphore
00FFE033 0B7EF1010 sta OSSEMA+$1000
00FFE036 0B7EF1000 sta OUTSEMA+$1000
00FFE039 0CEFFE03F ldu #st6 ; U = return address
00FFE03C 07EFFD400 jmp ramtest ; JMP dont JSR
00FFE039 0CEFFE03C ldu #st6 ; U = return address
; jmp ramtest ; JMP dont JSR
st6:
00FFE03F 1CE006FFF lds #$6FFF ; boot up stack area
00FFE042 0150B6FFFFFFFE0 lda COREID
00FFE047 081001 cmpa #FIRST_CORE
00FFE03C 1CE006FFF lds #$6FFF ; boot up stack area
00FFE03F 0150B6FFFFFFFE0 lda COREID
00FFE044 081001 cmpa #FIRST_CORE
; beq st8
; sync ; halt cores other than 2
st8:
493,102 → 455,112
; tfr d,x
; jmp ,x ; jump to the BIOS now in local RAM
st7:
00FFE049 08D15F bsr Delay3s ; give some time for devices to reset
00FFE04B 07F000810 clr BreakpointFlag
00FFE04E 07F000811 clr NumSetBreakpoints
00FFE051 0860AA lda #$AA
00FFE053 0150B7FFFE60001 sta LEDS
00FFE058 086001 lda #FIRST_CORE
00FFE05A 0B7FFC010 sta IOFocusID ; core #2 has focus
00FFE05D 0B7FFC013 sta RunningID
00FFE046 08D16D bsr Delay3s ; give some time for devices to reset
00FFE048 07F000810 clr BreakpointFlag
00FFE04B 07F000811 clr NumSetBreakpoints
00FFE04E 0860AA lda #$AA
00FFE050 0150B7FFFE60001 sta LEDS
00FFE055 0150B6FFFFFFFE0 lda COREID
00FFE05A 081020 cmpa #$20
00FFE05C 027002 beq st11
00FFE05E 086001 lda #FIRST_CORE
st11:
00FFE060 0B7FFC010 sta IOFocusID ; core #2 has focus
00FFE063 0B7FFC013 sta RunningID
; Clear IO focus list
00FFE060 08E000000 ldx #0
00FFE066 08E000000 ldx #0
st9:
00FFE063 06F80A000FFC000 clr IOFocusList,x
00FFE068 030001 inx
00FFE06A 08C000010 cmpx #16
00FFE06D 025FF4 blo st9
00FFE06F 086018 lda #24
00FFE071 0B7FFC001 sta IOFocusList+FIRST_CORE
00FFE069 06F80A000FFC000 clr IOFocusList,x
00FFE06E 030001 inx
00FFE070 08C000010 cmpx #16
00FFE073 025FF4 blo st9
00FFE075 086018 lda #24
00FFE077 0B7FFC001 sta IOFocusList+FIRST_CORE
00FFE074 0860CE lda #$0CE
00FFE076 097113 sta ScreenColor
00FFE078 097112 sta CharColor
00FFE07A 08D1B2 bsr ClearScreen
00FFE07C 0CCFFE2FE ldd #DisplayChar
00FFE07F 0FD000800 std CharOutVec
00FFE082 0CCFFEBE4 ldd #SerialPeekCharDirect
00FFE085 0FD000804 std CharInVec
00FFE07A 0860CE lda #$0CE
00FFE07C 097113 sta ScreenColor
00FFE07E 097112 sta CharColor
00FFE080 08D1B7 bsr ClearScreen
00FFE082 0CCFFE319 ldd #DisplayChar
00FFE085 0FD000800 std CharOutVec
00FFE088 0CCFFEC64 ldd #SerialPeekCharDirect
00FFE08B 0FD000804 std CharInVec
; swi
; fcb MF_OSCALL
; fcb 24 ; request IO focus
00FFE088 0150F6FFFFFFFE0 ldb COREID
00FFE08D 0C1001 cmpb #FIRST_CORE
00FFE08F 02700D beq init
00FFE091 02004B bra skip_init
00FFE093 0200B3 bra multi_sieve
00FFE08E 0150F6FFFFFFFE0 ldb COREID
00FFE093 0C1001 cmpb #FIRST_CORE
00FFE095 027011 beq init
00FFE097 0C1020 cmpb #$20 ; CmodA709 core?
00FFE099 02705D beq init2
00FFE09B 02006D bra skip_init
00FFE09D 0200B4 bra multi_sieve
st3:
00FFE095 0860FF lda #$FF
00FFE097 0150B7FFFE60001 sta LEDS
00FFE09C 020FF7 bra st3
00FFE09F 0860FF lda #$FF
00FFE0A1 0150B7FFFE60001 sta LEDS
00FFE0A6 020FF7 bra st3
; initialize interrupt controller
; first, zero out all the vectors
init:
00FFE09E 01700042F lbsr rtc_read ; get clock values
00FFE0A1 08E000127 ldx #kbdHeadRcv
00FFE0A4 0C6020 ldb #32 ; number of bytes to zero out
00FFE0A8 017000449 lbsr rtc_read ; get clock values
00FFE0AB 08E000127 ldx #kbdHeadRcv
00FFE0AE 0C6020 ldb #32 ; number of bytes to zero out
init1:
00FFE0A6 06F800 clr ,x+
00FFE0A8 05A decb
00FFE0A9 026FFB bne init1
00FFE0AB 017000393 lbsr TimerInit
00FFE0AE 017000ABE lbsr InitSerial
00FFE0B1 08E000080 ldx #128
00FFE0B4 086001 lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
00FFE0B6 0C6001 ldb #FIRST_CORE ; serving core id
00FFE0B0 06F800 clr ,x+
00FFE0B2 05A decb
00FFE0B3 026FFB bne init1
st1:
00FFE0B8 06F809E3F000 clr PIC,x ; cause code
00FFE0BC 0A7809E3F001 sta PIC+1,x
00FFE0C0 0E7809E3F002 stb PIC+2,x
00FFE0C4 030004 leax 4,x
00FFE0C6 08C000100 cmpx #256
00FFE0C9 025FED blo st1
00FFE0B5 06F809E3F000 clr PIC,x ; cause code
00FFE0B9 0A7809E3F001 sta PIC+1,x
00FFE0BD 0E7809E3F002 stb PIC+2,x
00FFE0C1 030004 leax 4,x
00FFE0C3 08C000100 cmpx #256
00FFE0C6 025FED blo st1
00FFE0C8 086081 lda #$81 ; make irq edge sensitive
00FFE0CA 0150B7FFFE3F0FD sta PIC+$FD
00FFE0CF 08601F lda #31 ; enable timer interrupt
00FFE0D1 0150B7FFFE3F009 sta PIC+9
00FFE0D6 086040 lda #COLS
00FFE0D8 0150B7FFFE07F00 sta TEXTREG+TEXT_COLS
00FFE0DD 086020 lda #ROWS
00FFE0DF 0150B7FFFE07F01 sta TEXTREG+TEXT_ROWS
00FFE0E4 08D153 bsr ClearScreen
00FFE0E6 08D1C8 bsr HomeCursor
00FFE0E8 08E000000 ldx #0
00FFE0EB 0CC000000 ldd #0
00FFE0EE 017000DFA lbsr ShowSprites
00FFE0F1 0170008CC lbsr KeybdInit
00FFE0F4 0DC124 ldd KeybdID
00FFE0F6 08D336 bsr DispWordAsHex
init2:
00FFE0F8 01700036A lbsr TimerInit
00FFE0FB 017000AF1 lbsr InitSerial
00FFE0FE 08E000080 ldx #128
00FFE101 086001 lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
00FFE103 0C6001 ldb #FIRST_CORE ; serving core id
; lda #4 ; make the timer interrupt edge sensitive
; sta PIC+4 ; reg #4 is the edge sensitivity setting
; sta PIC ; reg #0 is interrupt enable
00FFE0CB 086081 lda #$81 ; make irq edge sensitive
00FFE0CD 0150B7FFFE3F0FD sta PIC+$FD
00FFE0D2 08601F lda #31 ; enable timer interrupt
00FFE0D4 0150B7FFFE3F009 sta PIC+9
00FFE0D9 0C6001 ldb #1
00FFE0DB 0F7EF1000 stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
00FFE105 0C6001 ldb #1
00FFE107 0F7EF1000 stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
skip_init:
00FFE0DE 01C0EF andcc #$EF ; unmask irq
00FFE0E0 086040 lda #COLS
00FFE0E2 0150B7FFFE07F00 sta TEXTREG+TEXT_COLS
00FFE0E7 086020 lda #ROWS
00FFE0E9 0150B7FFFE07F01 sta TEXTREG+TEXT_ROWS
00FFE0EE 08D13E bsr ClearScreen
00FFE0F0 08D1AF bsr HomeCursor
00FFE0F2 086005 lda #5
00FFE0F4 0150B7FFFE60001 sta LEDS
00FFE0F9 0CCFFE111 ldd #msgStartup
00FFE0FC 08D2C1 bsr DisplayString
00FFE0FE 08E000000 ldx #0
00FFE101 0CC000000 ldd #0
00FFE104 017000C15 lbsr ShowSprites
00FFE107 017000836 lbsr KeybdInit
00FFE10A 0DC124 ldd KeybdID
00FFE10C 08D2FC bsr DispWordAsHex
00FFE10E 07EFFEE60 jmp MonitorStart
00FFE10A 01C0EF andcc #$EF ; unmask irq
00FFE10C 086005 lda #5
00FFE10E 0150B7FFFE60001 sta LEDS
00FFE113 0CCFFE11C ldd #msgStartup
00FFE116 08D2C2 bsr DisplayString
st10:
00FFE118 03F swi
00FFE119 000 fcb MF_Monitor
00FFE11A 020FFC bra st10
msgStartup
00FFE111 072066036038030039020 fcb "rf6809 12-bit System Starting.",CR,LF,0
00FFE118 03103202D062069074020
00FFE11F 05307907307406506D020
00FFE126 05307406107207406906E
00FFE12D 06702E00D00A000
00FFE11C 072066036038030039020 fcb "rf6809 12-bit System Starting.",CR,LF,0
00FFE123 03103202D062069074020
00FFE12A 05307907307406506D020
00FFE131 05307406107207406906E
00FFE138 06702E00D00A000
;------------------------------------------------------------------------------
; The checkpoint register must be cleared within 1 second or a NMI interrupt
600,8 → 572,8
;------------------------------------------------------------------------------
checkpoint:
00FFE132 01507FFFFFFFFE1 clr $FFFFFFFE1 ; writing any value will do
00FFE137 039 rts
00FFE13D 01507FFFFFFFFE1 clr $FFFFFFFE1 ; writing any value will do
00FFE142 039 rts
;------------------------------------------------------------------------------
; Copy the system ROM to local RAM
614,14 → 586,14
;------------------------------------------------------------------------------
romToRam:
00FFE138 08EFFC000 ldx #$FFC000
00FFE13B 18E00C000 ldy #$00C000
00FFE143 08EFFC000 ldx #$FFC000
00FFE146 18E00C000 ldy #$00C000
romToRam1:
00FFE13E 0EC801 ldd ,x++
00FFE140 0EDA01 std ,y++
00FFE142 08C000000 cmpx #0
00FFE145 026FF7 bne romToRam1
00FFE147 039 rts
00FFE149 0EC801 ldd ,x++
00FFE14B 0EDA01 std ,y++
00FFE14D 08C000000 cmpx #0
00FFE150 026FF7 bne romToRam1
00FFE152 039 rts
;------------------------------------------------------------------------------
; Multi-core sieve program.
632,36 → 604,36
; core number minus two.
;
multi_sieve:
00FFE148 086050 lda #'P' ; indicate prime
00FFE14A 0150F6FFFFFFFE0 ldb COREID ; find out which core we are
00FFE14F 0C0001 subb #FIRST_CORE
00FFE151 08E000000 ldx #0 ; start at first char of screen
00FFE154 03A abx
00FFE153 086050 lda #'P' ; indicate prime
00FFE155 0150F6FFFFFFFE0 ldb COREID ; find out which core we are
00FFE15A 0C0001 subb #FIRST_CORE
00FFE15C 08E000000 ldx #0 ; start at first char of screen
00FFE15F 03A abx
multi_sieve3:
00FFE155 0A7809E00000 sta TEXTSCR,x ; store 'P'
00FFE159 030008 leax 8,x ; advance to next position
00FFE15B 08C000FFF cmpx #4095
00FFE15E 025FF5 blo multi_sieve3
00FFE160 0BDFFE132 jsr checkpoint
00FFE160 0A7809E00000 sta TEXTSCR,x ; store 'P'
00FFE164 030008 leax 8,x ; advance to next position
00FFE166 08C000FFF cmpx #4095
00FFE169 025FF5 blo multi_sieve3
00FFE16B 0BDFFE13D jsr checkpoint
*** warning 1: Long branch within short branch range could be optimized
00FFE163 0CB002 addb #2 ; start sieve at 2 (core id)
00FFE165 08604E lda #'N' ; flag position value of 'N' for non-prime
00FFE16E 0CB002 addb #2 ; start sieve at 2 (core id)
00FFE170 08604E lda #'N' ; flag position value of 'N' for non-prime
multi_sieve2:
00FFE167 08E000000 ldx #0
00FFE16A 03A abx ; skip the first position - might be prime
00FFE172 08E000000 ldx #0
00FFE175 03A abx ; skip the first position - might be prime
multi_sieve1:
00FFE16B 03A abx ; increment
00FFE16C 0A7809E00000 sta TEXTSCR,x
00FFE170 08C000FFF cmpx #4095
00FFE173 025FF6 blo multi_sieve1
00FFE175 0BDFFE132 jsr checkpoint
00FFE176 03A abx ; increment
00FFE177 0A7809E00000 sta TEXTSCR,x
00FFE17B 08C000FFF cmpx #4095
00FFE17E 025FF6 blo multi_sieve1
00FFE180 0BDFFE13D jsr checkpoint
*** warning 1: Long branch within short branch range could be optimized
00FFE178 0CB008 addb #8 ; number of cores working on it
00FFE17A 0C1FF0 cmpb #4080
00FFE17C 025FE9 blo multi_sieve2
00FFE183 0CB008 addb #8 ; number of cores working on it
00FFE185 0C1FF0 cmpb #4080
00FFE187 025FE9 blo multi_sieve2
multi_sieve4: ; hang machine
00FFE17E 013 sync
00FFE17F 016000D25 lbra Monitor
00FFE189 013 sync
00FFE18A 016000EAC lbra Monitor
;------------------------------------------------------------------------------
; Single core sieve.
668,28 → 640,28
;------------------------------------------------------------------------------
sieve:
00FFE182 086050 lda #'P' ; indicate prime
00FFE184 08E000000 ldx #0 ; start at first char of screen
00FFE18D 086050 lda #'P' ; indicate prime
00FFE18F 08E000000 ldx #0 ; start at first char of screen
sieve3:
00FFE187 0A7809E00000 sta TEXTSCR,x ; store 'P'
00FFE18B 030001 inx ; advance to next position
00FFE18D 08C000FFF cmpx #4095
00FFE190 025FF5 blo sieve3
00FFE192 0C6002 ldb #2 ; start sieve at 2
00FFE194 08604E lda #'N' ; flag position value of 'N' for non-prime
00FFE192 0A7809E00000 sta TEXTSCR,x ; store 'P'
00FFE196 030001 inx ; advance to next position
00FFE198 08C000FFF cmpx #4095
00FFE19B 025FF5 blo sieve3
00FFE19D 0C6002 ldb #2 ; start sieve at 2
00FFE19F 08604E lda #'N' ; flag position value of 'N' for non-prime
sieve2:
00FFE196 08E000000 ldx #0
00FFE199 03A abx ; skip the first position - might be prime
00FFE1A1 08E000000 ldx #0
00FFE1A4 03A abx ; skip the first position - might be prime
sieve1:
00FFE19A 03A abx ; increment
00FFE19B 0A7809E00000 sta TEXTSCR,x
00FFE19F 08C000FFF cmpx #4095
00FFE1A2 025FC7 blo multi_sieve1
00FFE1A4 05C incb ; number of cores working on it
00FFE1A5 0C1FF0 cmpb #4080
00FFE1A7 025FED blo sieve2
00FFE1A5 03A abx ; increment
00FFE1A6 0A7809E00000 sta TEXTSCR,x
00FFE1AA 08C000FFF cmpx #4095
00FFE1AD 025FC7 blo multi_sieve1
00FFE1AF 05C incb ; number of cores working on it
00FFE1B0 0C1FF0 cmpb #4080
00FFE1B2 025FED blo sieve2
sieve4: ; hang machine
00FFE1A9 039 rts
00FFE1B4 039 rts
;------------------------------------------------------------------------------
; Three second delay for user convenience and to allow some devices time to
697,30 → 669,30
;------------------------------------------------------------------------------
Delay3s:
00FFE1AA 0CC895440 ldd #9000000
00FFE1B5 0CC895440 ldd #9000000
dly3s1:
00FFE1AD 0C10FF cmpb #$FF
00FFE1AF 026000 bne dly3s2
00FFE1B8 0C10FF cmpb #$FF
00FFE1BA 026000 bne dly3s2
dly3s2:
00FFE1B1 0150B7FFFE60001 sta LEDS
00FFE1B6 083000001 subd #1
00FFE1B9 026FF2 bne dly3s1
00FFE1BB 039 rts
00FFE1BC 0150B7FFFE60001 sta LEDS
00FFE1C1 083000001 subd #1
00FFE1C4 026FF2 bne dly3s1
00FFE1C6 039 rts
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
ShiftLeft5:
00FFE1BC 058 aslb
00FFE1BD 049 rola
00FFE1BE 058 aslb
00FFE1BF 049 rola
00FFE1C0 058 aslb
00FFE1C1 049 rola
00FFE1C2 058 aslb
00FFE1C3 049 rola
00FFE1C4 058 aslb
00FFE1C5 049 rola
00FFE1C6 039 rts
00FFE1C7 058 aslb
00FFE1C8 049 rola
00FFE1C9 058 aslb
00FFE1CA 049 rola
00FFE1CB 058 aslb
00FFE1CC 049 rola
00FFE1CD 058 aslb
00FFE1CE 049 rola
00FFE1CF 058 aslb
00FFE1D0 049 rola
00FFE1D1 039 rts
;------------------------------------------------------------------------------
; Parameters:
728,74 → 700,74
;------------------------------------------------------------------------------
;
CopyVirtualScreenToScreen:
00FFE1C7 034076 pshs d,x,y,u
00FFE1D2 034076 pshs d,x,y,u
; Compute virtual screen location for core passed in accb.
00FFE1C9 01F098 tfr b,a
00FFE1CB 048 asla
00FFE1CC 048 asla
00FFE1CD 048 asla
00FFE1CE 048 asla
00FFE1CF 08AC00 ora #$C00
00FFE1D1 05F clrb
00FFE1D2 01F001 tfr d,x
00FFE1D4 034006 pshs d
00FFE1D6 18EE00000 ldy #TEXTSCR
00FFE1D9 0CE000400 ldu #COLS*ROWS/2
00FFE1D4 01F098 tfr b,a
00FFE1D6 048 asla
00FFE1D7 048 asla
00FFE1D8 048 asla
00FFE1D9 048 asla
00FFE1DA 08AC00 ora #$C00
00FFE1DC 05F clrb
00FFE1DD 01F001 tfr d,x
00FFE1DF 034006 pshs d
00FFE1E1 18EE00000 ldy #TEXTSCR
00FFE1E4 0CE000400 ldu #COLS*ROWS/2
cv2s1:
00FFE1DC 0EC801 ldd ,x++
00FFE1DE 0EDA01 std ,y++
00FFE1E0 0335FF leau -1,u
00FFE1E2 283000000 cmpu #0
00FFE1E5 026FF5 bne cv2s1
00FFE1E7 0EC801 ldd ,x++
00FFE1E9 0EDA01 std ,y++
00FFE1EB 0335FF leau -1,u
00FFE1ED 283000000 cmpu #0
00FFE1F0 026FF5 bne cv2s1
; reset the cursor position in the text controller
00FFE1E7 035010 puls x
00FFE1E9 0E6808110 ldb CursorRow,x
00FFE1EC 086040 lda #COLS
00FFE1EE 03D mul
00FFE1EF 01F002 tfr d,y
00FFE1F1 0E6808111 ldb CursorCol,x
00FFE1F4 01F021 tfr y,x
00FFE1F6 03A abx
00FFE1F7 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
00FFE1FC 0350F6 puls d,x,y,u,pc
00FFE1F2 035010 puls x
00FFE1F4 0E6808110 ldb CursorRow,x
00FFE1F7 086040 lda #COLS
00FFE1F9 03D mul
00FFE1FA 01F002 tfr d,y
00FFE1FC 0E6808111 ldb CursorCol,x
00FFE1FF 01F021 tfr y,x
00FFE201 03A abx
00FFE202 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
00FFE207 0350F6 puls d,x,y,u,pc
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;
CopyScreenToVirtualScreen:
00FFE1FE 034076 pshs d,x,y,u
00FFE200 08D08D bsr GetScreenLocation
00FFE202 01F002 tfr d,y
00FFE204 08EE00000 ldx #TEXTSCR
00FFE207 0CE000400 ldu #COLS*ROWS/2
00FFE209 034076 pshs d,x,y,u
00FFE20B 08D08D bsr GetScreenLocation
00FFE20D 01F002 tfr d,y
00FFE20F 08EE00000 ldx #TEXTSCR
00FFE212 0CE000400 ldu #COLS*ROWS/2
cs2v1:
00FFE20A 0EC801 ldd ,x++
00FFE20C 0EDA01 std ,y++
00FFE20E 0335FF leau -1,u
00FFE210 283000000 cmpu #0
00FFE213 026FF5 bne cs2v1
00FFE215 0350F6 puls d,x,y,u,pc
00FFE215 0EC801 ldd ,x++
00FFE217 0EDA01 std ,y++
00FFE219 0335FF leau -1,u
00FFE21B 283000000 cmpu #0
00FFE21E 026FF5 bne cs2v1
00FFE220 0350F6 puls d,x,y,u,pc
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
00FFE217 054045058054053043052 fcb "TEXTSCR "
00FFE21E 020
00FFE21F FFE229 fcw TextOpen
00FFE221 FFE22A fcw TextClose
00FFE223 FFE22B fcw TextRead
00FFE225 FFE22C fcw TextWrite
00FFE227 FFE22D fcw TextSeek
00FFE222 054045058054053043052 fcb "TEXTSCR "
00FFE229 020
00FFE22A FFE234 fcw TextOpen
00FFE22C FFE235 fcw TextClose
00FFE22E FFE236 fcw TextRead
00FFE230 FFE237 fcw TextWrite
00FFE232 FFE238 fcw TextSeek
TextOpen:
00FFE229 039 rts
00FFE234 039 rts
TextClose:
00FFE22A 039 rts
00FFE235 039 rts
TextRead:
00FFE22B 039 rts
00FFE236 039 rts
TextWrite:
00FFE22C 039 rts
00FFE237 039 rts
TextSeek:
00FFE22D 039 rts
00FFE238 039 rts
;------------------------------------------------------------------------------
; Clear the screen and the screen color memory
807,29 → 779,29
;------------------------------------------------------------------------------
ClearScreen:
00FFE22E 034076 pshs d,x,y,u
00FFE230 08E000800 ldx #COLS*ROWS
00FFE233 01F013 tfr x,u
00FFE235 08D058 bsr GetScreenLocation
00FFE237 01F002 tfr d,y
00FFE239 0C6020 ldb #' ' ; space char
00FFE239 034076 pshs d,x,y,u
00FFE23B 08E000800 ldx #COLS*ROWS
00FFE23E 01F013 tfr x,u
00FFE240 08D058 bsr GetScreenLocation
00FFE242 01F002 tfr d,y
00FFE244 0C6020 ldb #' ' ; space char
cs1:
00FFE23B 0E7A00 stb ,y+ ; set text to space
00FFE23D 0301FF leax -1,x ; decrement x
00FFE23F 026FFA bne cs1
00FFE241 0150F6FFFFFFFE0 ldb COREID ; update colors only if we have focus
00FFE246 0F1FFC010 cmpb IOFocusID
00FFE249 02000D bra cs3
00FFE24B 18EE02000 ldy #TEXTSCR+$2000
00FFE246 0E7A00 stb ,y+ ; set text to space
00FFE248 0301FF leax -1,x ; decrement x
00FFE24A 026FFA bne cs1
00FFE24C 0150F6FFFFFFFE0 ldb COREID ; update colors only if we have focus
00FFE251 0F1FFC010 cmpb IOFocusID
00FFE254 02000D bra cs3
00FFE256 18EE02000 ldy #TEXTSCR+$2000
; lda CharColor
00FFE24E 0860CE lda #$0CE
00FFE250 01F031 tfr u,x ; get back count
00FFE259 0860CE lda #$0CE
00FFE25B 01F031 tfr u,x ; get back count
cs2:
00FFE252 0A7A00 sta ,y+
00FFE254 0301FF dex ; decrement x
00FFE256 026FFA bne cs2
00FFE25D 0A7A00 sta ,y+
00FFE25F 0301FF dex ; decrement x
00FFE261 026FFA bne cs2
cs3:
00FFE258 0350F6 puls d,x,y,u,pc
00FFE263 0350F6 puls d,x,y,u,pc
;------------------------------------------------------------------------------
; Scroll text on the screen upwards
839,20 → 811,20
;------------------------------------------------------------------------------
ScrollUp:
00FFE25A 034076 pshs d,x,y,u
00FFE25C 18E0003FF ldy #(COLS*ROWS-1)/2 ; y = num chars/2 to move
00FFE25F 08D02E bsr GetScreenLocation
00FFE261 01F001 tfr d,x
00FFE263 01F003 tfr d,u
00FFE265 030040 leax COLS,x ; x = index to source row
00FFE265 034076 pshs d,x,y,u
00FFE267 18E0003FF ldy #(COLS*ROWS-1)/2 ; y = num chars/2 to move
00FFE26A 08D02E bsr GetScreenLocation
00FFE26C 01F001 tfr d,x
00FFE26E 01F003 tfr d,u
00FFE270 030040 leax COLS,x ; x = index to source row
scrup1:
00FFE267 0EC801 ldd ,x++ ; move 2 characters
00FFE269 0EDC01 std ,u++
00FFE26B 0313FF dey
00FFE26D 026FF8 bne scrup1
00FFE26F 08601F lda #ROWS-1
00FFE271 08D002 bsr BlankLine
00FFE273 0350F6 puls d,x,y,u,pc
00FFE272 0EC801 ldd ,x++ ; move 2 characters
00FFE274 0EDC01 std ,u++
00FFE276 0313FF dey
00FFE278 026FF8 bne scrup1
00FFE27A 08601F lda #ROWS-1
00FFE27C 08D002 bsr BlankLine
00FFE27E 0350F6 puls d,x,y,u,pc
;------------------------------------------------------------------------------
; Blank out a line on the display
864,21 → 836,21
;------------------------------------------------------------------------------
BlankLine:
00FFE275 034016 pshs d,x
00FFE277 034002 pshs a
00FFE279 08D014 bsr GetScreenLocation
00FFE27B 01F001 tfr d,x
00FFE27D 035002 puls a
00FFE27F 0C6040 ldb #COLS ; b = # chars to blank out from video controller
00FFE281 03D mul ; d = screen index (row# * #cols)
00FFE282 03080B leax d,x
00FFE284 086020 lda #' '
00FFE286 0C6040 ldb #COLS ; b = # chars to blank out from video controller
00FFE280 034016 pshs d,x
00FFE282 034002 pshs a
00FFE284 08D014 bsr GetScreenLocation
00FFE286 01F001 tfr d,x
00FFE288 035002 puls a
00FFE28A 0C6040 ldb #COLS ; b = # chars to blank out from video controller
00FFE28C 03D mul ; d = screen index (row# * #cols)
00FFE28D 03080B leax d,x
00FFE28F 086020 lda #' '
00FFE291 0C6040 ldb #COLS ; b = # chars to blank out from video controller
blnkln1:
00FFE288 0A7800 sta ,x+
00FFE28A 05A decb
00FFE28B 026FFB bne blnkln1
00FFE28D 035096 puls d,x,pc
00FFE293 0A7800 sta ,x+
00FFE295 05A decb
00FFE296 026FFB bne blnkln1
00FFE298 035096 puls d,x,pc
;------------------------------------------------------------------------------
; Get the location of the screen memory. The location
891,14 → 863,16
;------------------------------------------------------------------------------
GetScreenLocation:
00FFE28F 0150B6FFFFFFFE0 lda COREID ; which core are we?
00FFE294 0B1FFC010 cmpa IOFocusID ; do we have the IO focus
00FFE297 026004 bne gsl1 ; no, go pick virtual screen address
00FFE299 0CCE00000 ldd #TEXTSCR ; yes, we update the real screen
00FFE29C 039 rts
00FFE29A 0150B6FFFFFFFE0 lda COREID ; which core are we?
00FFE29F 0B1FFC010 cmpa IOFocusID ; do we have the IO focus
00FFE2A2 026008 bne gsl1 ; no, go pick virtual screen address
00FFE2A4 081020 cmpa #$20 ; CmodA709?
00FFE2A6 027004 beq gsl1
00FFE2A8 0CCE00000 ldd #TEXTSCR ; yes, we update the real screen
00FFE2AB 039 rts
gsl1:
00FFE29D 0CC007800 ldd #$7800
00FFE2A0 039 rts
00FFE2AC 0CC007800 ldd #$7800
00FFE2AF 039 rts
;------------------------------------------------------------------------------
; HomeCursor
909,16 → 883,18
;------------------------------------------------------------------------------
HomeCursor:
00FFE2A1 034016 pshs d,x
00FFE2A3 00F110 clr CursorRow
00FFE2A5 00F111 clr CursorCol
00FFE2A7 0150F6FFFFFFFE0 ldb COREID
00FFE2AC 0F1FFC010 cmpb IOFocusID
00FFE2AF 026006 bne hc1
00FFE2B1 04F clra
00FFE2B2 0150B7FFFE07F22 sta TEXTREG+TEXT_CURPOS
00FFE2B0 034016 pshs d,x
00FFE2B2 00F110 clr CursorRow
00FFE2B4 00F111 clr CursorCol
00FFE2B6 0150F6FFFFFFFE0 ldb COREID
00FFE2BB 0F1FFC010 cmpb IOFocusID
00FFE2BE 02600A bne hc1
00FFE2C0 0C1020 cmpb #$20
00FFE2C2 027006 beq hc1
00FFE2C4 04F clra
00FFE2C5 0150B7FFFE07F22 sta TEXTREG+TEXT_CURPOS
hc1:
00FFE2B7 035096 puls d,x,pc
00FFE2CA 035096 puls d,x,pc
;------------------------------------------------------------------------------
; Update the cursor position in the text controller based on the
929,20 → 905,22
;------------------------------------------------------------------------------
;
UpdateCursorPos:
00FFE2B9 034016 pshs d,x
00FFE2BB 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
00FFE2C0 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
00FFE2C3 026014 bne ucp1
00FFE2C5 096110 lda CursorRow
00FFE2C7 08403F anda #$3F ; limit of 63 rows
00FFE2C9 0150F6FFFE07F00 ldb TEXTREG+TEXT_COLS
00FFE2CE 03D mul
00FFE2CF 01F001 tfr d,x
00FFE2D1 0D6111 ldb CursorCol
00FFE2D3 03A abx
00FFE2D4 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
00FFE2CC 034016 pshs d,x
00FFE2CE 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
00FFE2D3 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
00FFE2D6 026018 bne ucp1
00FFE2D8 0C1020 cmpb #$20 ; and not for CmodA709
00FFE2DA 027014 beq ucp1
00FFE2DC 096110 lda CursorRow
00FFE2DE 08403F anda #$3F ; limit of 63 rows
00FFE2E0 0150F6FFFE07F00 ldb TEXTREG+TEXT_COLS
00FFE2E5 03D mul
00FFE2E6 01F001 tfr d,x
00FFE2E8 0D6111 ldb CursorCol
00FFE2EA 03A abx
00FFE2EB 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
ucp1:
00FFE2D9 035096 puls d,x,pc
00FFE2F0 035096 puls d,x,pc
;------------------------------------------------------------------------------
; Calculate screen memory location from CursorRow,CursorCol.
955,22 → 933,24
;------------------------------------------------------------------------------
;
CalcScreenLoc:
00FFE2DB 034010 pshs x
00FFE2DD 096110 lda CursorRow
00FFE2DF 0C6040 ldb #COLS
00FFE2E1 03D mul
00FFE2E2 01F001 tfr d,x
00FFE2E4 0D6111 ldb CursorCol
00FFE2E6 03A abx
00FFE2E7 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
00FFE2EC 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
00FFE2EF 026005 bne csl1
00FFE2F1 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
00FFE2F2 034010 pshs x
00FFE2F4 096110 lda CursorRow
00FFE2F6 0C6040 ldb #COLS
00FFE2F8 03D mul
00FFE2F9 01F001 tfr d,x
00FFE2FB 0D6111 ldb CursorCol
00FFE2FD 03A abx
00FFE2FE 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
00FFE303 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
00FFE306 026009 bne csl1
00FFE308 0C1020 cmpb #$20
00FFE30A 027005 beq csl1
00FFE30C 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
csl1:
00FFE2F6 08DF97 bsr GetScreenLocation
00FFE2F8 03080B leax d,x
00FFE2FA 01F010 tfr x,d
00FFE2FC 035090 puls x,pc
00FFE311 08DF87 bsr GetScreenLocation
00FFE313 03080B leax d,x
00FFE315 01F010 tfr x,d
00FFE317 035090 puls x,pc
;------------------------------------------------------------------------------
; Display a character on the screen.
984,104 → 964,104
;------------------------------------------------------------------------------
;
DisplayChar:
00FFE2FE 017000907 lbsr SerialPutChar
00FFE301 034016 pshs d,x
00FFE303 0C100D cmpb #CR ; carriage return ?
00FFE305 026007 bne dccr
00FFE307 00F111 clr CursorCol ; just set cursor column to zero on a CR
00FFE309 08DFAE bsr UpdateCursorPos
00FFE319 01700096C lbsr SerialPutChar
00FFE31C 034016 pshs d,x
00FFE31E 0C100D cmpb #CR ; carriage return ?
00FFE320 026007 bne dccr
00FFE322 00F111 clr CursorCol ; just set cursor column to zero on a CR
00FFE324 08DFA6 bsr UpdateCursorPos
dcx14:
00FFE30B 01600008C lbra dcx4
00FFE326 01600008C lbra dcx4
dccr:
00FFE30E 0C1091 cmpb #$91 ; cursor right ?
00FFE310 02600D bne dcx6
00FFE312 096111 lda CursorCol
00FFE314 081040 cmpa #COLS
00FFE316 024003 bhs dcx7
00FFE318 04C inca
00FFE319 097111 sta CursorCol
00FFE329 0C1091 cmpb #$91 ; cursor right ?
00FFE32B 02600D bne dcx6
00FFE32D 096111 lda CursorCol
00FFE32F 081040 cmpa #COLS
00FFE331 024003 bhs dcx7
00FFE333 04C inca
00FFE334 097111 sta CursorCol
dcx7:
00FFE31B 08DF9C bsr UpdateCursorPos
00FFE31D 035096 puls d,x,pc
00FFE336 08DF94 bsr UpdateCursorPos
00FFE338 035096 puls d,x,pc
dcx6:
00FFE31F 0C1090 cmpb #$90 ; cursor up ?
00FFE321 026009 bne dcx8
00FFE323 096110 lda CursorRow
00FFE325 027FF4 beq dcx7
00FFE327 04A deca
00FFE328 097110 sta CursorRow
00FFE32A 020FEF bra dcx7
00FFE33A 0C1090 cmpb #$90 ; cursor up ?
00FFE33C 026009 bne dcx8
00FFE33E 096110 lda CursorRow
00FFE340 027FF4 beq dcx7
00FFE342 04A deca
00FFE343 097110 sta CursorRow
00FFE345 020FEF bra dcx7
dcx8:
00FFE32C 0C1093 cmpb #$93 ; cursor left ?
00FFE32E 026009 bne dcx9
00FFE330 096111 lda CursorCol
00FFE332 027FE7 beq dcx7
00FFE334 04A deca
00FFE335 097111 sta CursorCol
00FFE337 020FE2 bra dcx7
00FFE347 0C1093 cmpb #$93 ; cursor left ?
00FFE349 026009 bne dcx9
00FFE34B 096111 lda CursorCol
00FFE34D 027FE7 beq dcx7
00FFE34F 04A deca
00FFE350 097111 sta CursorCol
00FFE352 020FE2 bra dcx7
dcx9:
00FFE339 0C1092 cmpb #$92 ; cursor down ?
00FFE33B 02600B bne dcx10
00FFE33D 096110 lda CursorRow
00FFE33F 081020 cmpa #ROWS
00FFE341 027FD8 beq dcx7
00FFE343 04C inca
00FFE344 097110 sta CursorRow
00FFE346 020FD3 bra dcx7
00FFE354 0C1092 cmpb #$92 ; cursor down ?
00FFE356 02600B bne dcx10
00FFE358 096110 lda CursorRow
00FFE35A 081020 cmpa #ROWS
00FFE35C 027FD8 beq dcx7
00FFE35E 04C inca
00FFE35F 097110 sta CursorRow
00FFE361 020FD3 bra dcx7
dcx10:
00FFE348 0C1094 cmpb #$94 ; cursor home ?
00FFE34A 02600C bne dcx11
00FFE34C 096111 lda CursorCol
00FFE34E 027004 beq dcx12
00FFE350 00F111 clr CursorCol
00FFE352 020FC7 bra dcx7
00FFE363 0C1094 cmpb #$94 ; cursor home ?
00FFE365 02600C bne dcx11
00FFE367 096111 lda CursorCol
00FFE369 027004 beq dcx12
00FFE36B 00F111 clr CursorCol
00FFE36D 020FC7 bra dcx7
dcx12:
00FFE354 00F110 clr CursorRow
00FFE356 020FC3 bra dcx7
00FFE36F 00F110 clr CursorRow
00FFE371 020FC3 bra dcx7
dcx11:
00FFE358 0C1099 cmpb #$99 ; delete ?
00FFE35A 026008 bne dcx13
00FFE35C 08DF7D bsr CalcScreenLoc
00FFE35E 01F001 tfr d,x
00FFE360 096111 lda CursorCol ; acc = cursor column
00FFE362 020011 bra dcx5
00FFE373 0C1099 cmpb #$99 ; delete ?
00FFE375 026008 bne dcx13
00FFE377 08DF79 bsr CalcScreenLoc
00FFE379 01F001 tfr d,x
00FFE37B 096111 lda CursorCol ; acc = cursor column
00FFE37D 020011 bra dcx5
dcx13
00FFE364 0C1008 cmpb #CTRLH ; backspace ?
00FFE366 02601E bne dcx3
00FFE368 096111 lda CursorCol
00FFE36A 02702E beq dcx4
00FFE36C 04A deca
00FFE36D 097111 sta CursorCol
00FFE36F 08DF6A bsr CalcScreenLoc
00FFE371 01F001 tfr d,x
00FFE373 096111 lda CursorCol
00FFE37F 0C1008 cmpb #CTRLH ; backspace ?
00FFE381 02601E bne dcx3
00FFE383 096111 lda CursorCol
00FFE385 02702E beq dcx4
00FFE387 04A deca
00FFE388 097111 sta CursorCol
00FFE38A 08DF66 bsr CalcScreenLoc
00FFE38C 01F001 tfr d,x
00FFE38E 096111 lda CursorCol
dcx5:
00FFE375 0E6001 ldb 1,x
00FFE377 0E7801 stb ,x++
00FFE379 04C inca
00FFE37A 081040 cmpa #COLS
00FFE37C 025FF7 blo dcx5
00FFE37E 0C6020 ldb #' '
00FFE380 0301FF dex
00FFE382 0E7804 stb ,x
00FFE384 020014 bra dcx4
00FFE390 0E6001 ldb 1,x
00FFE392 0E7801 stb ,x++
00FFE394 04C inca
00FFE395 081040 cmpa #COLS
00FFE397 025FF7 blo dcx5
00FFE399 0C6020 ldb #' '
00FFE39B 0301FF dex
00FFE39D 0E7804 stb ,x
00FFE39F 020014 bra dcx4
dcx3:
00FFE386 0C100A cmpb #LF ; linefeed ?
00FFE388 02700E beq dclf
00FFE38A 034004 pshs b
00FFE38C 08DF4D bsr CalcScreenLoc
00FFE38E 01F001 tfr d,x
00FFE390 035004 puls b
00FFE392 0E7804 stb ,x
00FFE3A1 0C100A cmpb #LF ; linefeed ?
00FFE3A3 02700E beq dclf
00FFE3A5 034004 pshs b
00FFE3A7 08DF49 bsr CalcScreenLoc
00FFE3A9 01F001 tfr d,x
00FFE3AB 035004 puls b
00FFE3AD 0E7804 stb ,x
; ToDo character color
; lda CharColor
; sta $2000,x
00FFE394 08D006 bsr IncCursorPos
00FFE396 020002 bra dcx4
00FFE3AF 08D006 bsr IncCursorPos
00FFE3B1 020002 bra dcx4
dclf:
00FFE398 08D011 bsr IncCursorRow
00FFE3B3 08D011 bsr IncCursorRow
dcx4:
00FFE39A 035096 puls d,x,pc
00FFE3B5 035096 puls d,x,pc
;------------------------------------------------------------------------------
; Increment the cursor position, scroll the screen if needed.
1091,29 → 1071,29
;------------------------------------------------------------------------------
IncCursorPos:
00FFE39C 034016 pshs d,x
00FFE39E 096111 lda CursorCol
00FFE3A0 04C inca
00FFE3A1 097111 sta CursorCol
00FFE3A3 081040 cmpa #COLS
00FFE3A5 025014 blo icc1
00FFE3A7 00F111 clr CursorCol ; column = 0
00FFE3A9 020002 bra icr1
00FFE3B7 034016 pshs d,x
00FFE3B9 096111 lda CursorCol
00FFE3BB 04C inca
00FFE3BC 097111 sta CursorCol
00FFE3BE 081040 cmpa #COLS
00FFE3C0 025014 blo icc1
00FFE3C2 00F111 clr CursorCol ; column = 0
00FFE3C4 020002 bra icr1
IncCursorRow:
00FFE3AB 034016 pshs d,x
00FFE3C6 034016 pshs d,x
icr1:
00FFE3AD 096110 lda CursorRow
00FFE3AF 04C inca
00FFE3B0 097110 sta CursorRow
00FFE3B2 081020 cmpa #ROWS
00FFE3B4 025005 blo icc1
00FFE3B6 04A deca ; backup the cursor row, we are scrolling up
00FFE3B7 097110 sta CursorRow
00FFE3B9 08DE9F bsr ScrollUp
00FFE3C8 096110 lda CursorRow
00FFE3CA 04C inca
00FFE3CB 097110 sta CursorRow
00FFE3CD 081020 cmpa #ROWS
00FFE3CF 025005 blo icc1
00FFE3D1 04A deca ; backup the cursor row, we are scrolling up
00FFE3D2 097110 sta CursorRow
00FFE3D4 08DE8F bsr ScrollUp
icc1:
00FFE3BB 08DEFC bsr UpdateCursorPos
00FFE3D6 08DEF4 bsr UpdateCursorPos
icc2:
00FFE3BD 035096 puls d,x,pc
00FFE3D8 035096 puls d,x,pc
;------------------------------------------------------------------------------
; Display a string on the screen.
1125,99 → 1105,102
;------------------------------------------------------------------------------
;
DisplayString:
00FFE3BF 034016 pshs d,x
00FFE3C1 01F001 tfr d,x
00FFE3DA 034016 pshs d,x
00FFE3DC 01F001 tfr d,x
00FFE3DE 0150B6FFFFFFFE0 lda COREID
00FFE3E3 081020 cmpa #$20
00FFE3E5 027005 beq dspj1B
dspj2: ; lock semaphore for access
00FFE3C3 0B6EF0001 lda OUTSEMA+1
00FFE3C6 027FFB beq dspj2
00FFE3E7 0B6EF0001 lda OUTSEMA+1
00FFE3EA 027FFB beq dspj2
dspj1B:
00FFE3C8 0E6800 ldb ,x+ ; move string char into acc
00FFE3CA 027005 beq dsretB ; is it end of string ?
00FFE3CC 017000943 lbsr OUTCH ; display character
00FFE3CF 020FF7 bra dspj1B
00FFE3EC 0E6800 ldb ,x+ ; move string char into acc
00FFE3EE 027005 beq dsretB ; is it end of string ?
00FFE3F0 017000AEE lbsr OUTCH ; display character
00FFE3F3 020FF7 bra dspj1B
dsretB:
00FFE3D1 07FEF0001 clr OUTSEMA+1 ; unlock semaphore
00FFE3D4 035096 puls d,x,pc
00FFE3F5 07FEF0001 clr OUTSEMA+1 ; unlock semaphore
00FFE3F8 035096 puls d,x,pc
DisplayStringCRLF:
00FFE3D6 034006 pshs d
00FFE3D8 08DFE5 bsr DisplayString
00FFE3DA 0C600D ldb #CR
00FFE3DC 017000933 lbsr OUTCH
00FFE3DF 0C600A ldb #LF
00FFE3E1 01700092E lbsr OUTCH
00FFE3E4 035086 puls d,pc
00FFE3FA 034006 pshs d
00FFE3FC 08DFDC bsr DisplayString
00FFE3FE 0C600D ldb #CR
00FFE400 017000ADE lbsr OUTCH
00FFE403 0C600A ldb #LF
00FFE405 017000AD9 lbsr OUTCH
00FFE408 035086 puls d,pc
;
; PRINT CR, LF, STRING
;
PSTRNG
00FFE3E6 08D002 BSR PCRLF
00FFE3E8 02000D BRA PDATA
00FFE40A 08D002 BSR PCRLF
00FFE40C 02000D BRA PDATA
PCRLF
00FFE3EA 034010 PSHS X
00FFE3EC 08EFFE3FE LDX #CRLFST
00FFE3EF 08D006 BSR PDATA
00FFE3F1 035010 PULS X
00FFE3F3 039 RTS
00FFE40E 034010 PSHS X
00FFE410 08EFFE422 LDX #CRLFST
00FFE413 08D006 BSR PDATA
00FFE415 035010 PULS X
00FFE417 039 RTS
PRINT
00FFE3F4 0BDFFED12 JSR OUTCH
00FFE418 0BDFFEEE1 JSR OUTCH
PDATA
00FFE3F7 0E6800 LDB ,X+
00FFE3F9 0C1004 CMPB #$04
00FFE3FB 026FF7 BNE PRINT
00FFE3FD 039 RTS
00FFE41B 0E6800 LDB ,X+
00FFE41D 0C1004 CMPB #$04
00FFE41F 026FF7 BNE PRINT
00FFE421 039 RTS
CRLFST
00FFE3FE 00D00A004 fcb CR,LF,4
00FFE422 00D00A004 fcb CR,LF,4
DispDWordAsHex:
00FFE401 08D007 bsr DispWordAsHex
00FFE403 01E001 exg d,x
00FFE405 08D003 bsr DispWordAsHex
00FFE407 01E001 exg d,x
00FFE409 039 rts
00FFE425 08D007 bsr DispWordAsHex
00FFE427 01E001 exg d,x
00FFE429 08D003 bsr DispWordAsHex
00FFE42B 01E001 exg d,x
00FFE42D 039 rts
DispWordAsHex:
00FFE40A 01E089 exg a,b
00FFE40C 08D005 bsr DispByteAsHex
00FFE40E 01E089 exg a,b
00FFE410 08D001 bsr DispByteAsHex
00FFE412 039 rts
00FFE42E 01E089 exg a,b
00FFE430 08D005 bsr DispByteAsHex
00FFE432 01E089 exg a,b
00FFE434 08D001 bsr DispByteAsHex
00FFE436 039 rts
DispByteAsHex:
00FFE413 034004 pshs b
00FFE415 054 lsrb
00FFE416 054 lsrb
00FFE417 054 lsrb
00FFE418 054 lsrb
00FFE419 054 lsrb
00FFE41A 054 lsrb
00FFE41B 054 lsrb
00FFE41C 054 lsrb
00FFE41D 08D00C bsr DispNyb
00FFE41F 035004 puls b
00FFE421 034004 pshs b
00FFE423 054 lsrb
00FFE424 054 lsrb
00FFE425 054 lsrb
00FFE426 054 lsrb
00FFE427 08D002 bsr DispNyb
00FFE429 035004 puls b
00FFE437 034004 pshs b
00FFE439 054 lsrb
00FFE43A 054 lsrb
00FFE43B 054 lsrb
00FFE43C 054 lsrb
00FFE43D 054 lsrb
00FFE43E 054 lsrb
00FFE43F 054 lsrb
00FFE440 054 lsrb
00FFE441 08D00C bsr DispNyb
00FFE443 035004 puls b
00FFE445 034004 pshs b
00FFE447 054 lsrb
00FFE448 054 lsrb
00FFE449 054 lsrb
00FFE44A 054 lsrb
00FFE44B 08D002 bsr DispNyb
00FFE44D 035004 puls b
DispNyb
00FFE42B 034004 pshs b
00FFE42D 0C400F andb #$0F
00FFE42F 0C100A cmpb #10
00FFE431 025007 blo DispNyb1
00FFE433 0CB037 addb #'A'-10
00FFE435 0170008DA lbsr OUTCH
00FFE438 035084 puls b,pc
00FFE44F 034004 pshs b
00FFE451 0C400F andb #$0F
00FFE453 0C100A cmpb #10
00FFE455 025007 blo DispNyb1
00FFE457 0CB037 addb #'A'-10
00FFE459 017000A85 lbsr OUTCH
00FFE45C 035084 puls b,pc
DispNyb1
00FFE43A 0CB030 addb #'0'
00FFE43C 0170008D3 lbsr OUTCH
00FFE43F 035084 puls b,pc
00FFE45E 0CB030 addb #'0'
00FFE460 017000A7E lbsr OUTCH
00FFE463 035084 puls b,pc
;==============================================================================
; Timer
1249,32 → 1232,32
; ============================================================================
;
TimerInit:
00FFE441 0CC061A80 ldd #$61A80 ; compare to 400000 (100 Hz assuming 40MHz clock)
00FFE444 0150F7FFFE60014 stb VIA+VIA_T3CMPL
00FFE449 0150B7FFFE60015 sta VIA+VIA_T3CMPH
00FFE44E 01507FFFFE60012 clr VIA+VIA_T3LL
00FFE453 01507FFFFE60013 clr VIA+VIA_T3LH
00FFE458 0150B6FFFE6000B lda VIA+VIA_ACR ; set continuous mode for timer
00FFE45D 08A100 ora #$100
00FFE45F 0150B7FFFE6000B sta VIA+VIA_ACR ; enable timer #3 interrupts
00FFE464 086810 lda #$810
00FFE466 0150B7FFFE6000E sta VIA+VIA_IER
00FFE46B 039 rts
00FFE465 0CC061A80 ldd #$61A80 ; compare to 400000 (100 Hz assuming 40MHz clock)
00FFE468 0150F7FFFE60014 stb VIA+VIA_T3CMPL
00FFE46D 0150B7FFFE60015 sta VIA+VIA_T3CMPH
00FFE472 01507FFFFE60012 clr VIA+VIA_T3LL
00FFE477 01507FFFFE60013 clr VIA+VIA_T3LH
00FFE47C 0150B6FFFE6000B lda VIA+VIA_ACR ; set continuous mode for timer
00FFE481 08A100 ora #$100
00FFE483 0150B7FFFE6000B sta VIA+VIA_ACR ; enable timer #3 interrupts
00FFE488 086810 lda #$810
00FFE48A 0150B7FFFE6000E sta VIA+VIA_IER
00FFE48F 039 rts
TimerIRQ:
; Reset the edge sense circuit in the PIC
00FFE46C 08601F lda #31 ; Timer is IRQ #31
00FFE46E 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
00FFE471 0150B7FFFE3F010 sta PIC+16 ; register 16 is edge sense reset reg
00FFE476 0150B6FFFE6000D lda VIA+VIA_IFR
00FFE47B 02A011 bpl notTimerIRQ
00FFE47D 085080 bita #$80 ; timer3 irq is bit 7
00FFE47F 02700D beq notTimerIRQ
00FFE481 01507FFFFE60012 clr VIA+VIA_T3LL
00FFE486 01507FFFFE60013 clr VIA+VIA_T3LH
00FFE48B 07CE00037 inc $E00037 ; update timer IRQ screen flag
00FFE490 08601F lda #31 ; Timer is IRQ #31
00FFE492 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
00FFE495 0150B7FFFE3F010 sta PIC+16 ; register 16 is edge sense reset reg
00FFE49A 0150B6FFFE6000D lda VIA+VIA_IFR
00FFE49F 02A011 bpl notTimerIRQ
00FFE4A1 085080 bita #$80 ; timer3 irq is bit 7
00FFE4A3 02700D beq notTimerIRQ
00FFE4A5 01507FFFFE60012 clr VIA+VIA_T3LL
00FFE4AA 01507FFFFE60013 clr VIA+VIA_T3LH
00FFE4AF 07CE00037 inc $E00037 ; update timer IRQ screen flag
notTimerIRQ:
00FFE48E 039 rts
00FFE4B2 039 rts
1338,11 → 1321,11
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
i2c_init:
00FFE48F 034004 pshs b
00FFE491 0C6004 ldb #4 ; setup prescale for 400kHz clock
00FFE493 0E7804 stb I2C_PREL,x
00FFE495 06F001 clr I2C_PREH,x
00FFE497 035084 puls b,pc
00FFE4B3 034004 pshs b
00FFE4B5 0C6004 ldb #4 ; setup prescale for 400kHz clock
00FFE4B7 0E7804 stb I2C_PREL,x
00FFE4B9 06F001 clr I2C_PREH,x
00FFE4BB 035084 puls b,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Wait for I2C transfer to complete
1352,12 → 1335,12
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
i2c_wait_tip:
00FFE499 034004 pshs b
00FFE4BD 034004 pshs b
i2cw1:
00FFE49B 0E6004 ldb I2C_STAT,x ; would use lvb, but lb is okay since its the I/O area
00FFE49D 0C5001 bitb #1 ; wait for tip to clear
00FFE49F 026FFA bne i2cw1
00FFE4A1 035084 puls b,pc
00FFE4BF 0E6004 ldb I2C_STAT,x ; would use lvb, but lb is okay since its the I/O area
00FFE4C1 0C5001 bitb #1 ; wait for tip to clear
00FFE4C3 026FFA bne i2cw1
00FFE4C5 035084 puls b,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Write command to i2c
1369,11 → 1352,11
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
i2c_wr_cmd:
00FFE4A3 0E7003 stb I2C_TXR,x
00FFE4A5 0A7004 sta I2C_CMD,x
00FFE4A7 08DFF0 bsr i2c_wait_tip
00FFE4A9 0E6004 ldb I2C_STAT,x
00FFE4AB 039 rts
00FFE4C7 0E7003 stb I2C_TXR,x
00FFE4C9 0A7004 sta I2C_CMD,x
00FFE4CB 08DFF0 bsr i2c_wait_tip
00FFE4CD 0E6004 ldb I2C_STAT,x
00FFE4CF 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Parameters
1384,30 → 1367,30
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
i2c_xmit1:
00FFE4AC 034006 pshs d ; save data value
00FFE4AE 034006 pshs d ; and save it again
00FFE4B0 0C6001 ldb #1
00FFE4B2 0E7002 stb I2C_CTRL,x ; enable the core
00FFE4B4 0C6076 ldb #$76 ; set slave address = %0111011
00FFE4B6 086090 lda #$90 ; set STA, WR
00FFE4B8 08DFE9 bsr i2c_wr_cmd
00FFE4BA 08D00A bsr i2c_wait_rx_nack
00FFE4BC 035006 puls d ; get back data value
00FFE4BE 086050 lda #$50 ; set STO, WR
00FFE4C0 08DFE1 bsr i2c_wr_cmd
00FFE4C2 08D002 bsr i2c_wait_rx_nack
00FFE4C4 035086 puls d,pc
00FFE4D0 034006 pshs d ; save data value
00FFE4D2 034006 pshs d ; and save it again
00FFE4D4 0C6001 ldb #1
00FFE4D6 0E7002 stb I2C_CTRL,x ; enable the core
00FFE4D8 0C6076 ldb #$76 ; set slave address = %0111011
00FFE4DA 086090 lda #$90 ; set STA, WR
00FFE4DC 08DFE9 bsr i2c_wr_cmd
00FFE4DE 08D00A bsr i2c_wait_rx_nack
00FFE4E0 035006 puls d ; get back data value
00FFE4E2 086050 lda #$50 ; set STO, WR
00FFE4E4 08DFE1 bsr i2c_wr_cmd
00FFE4E6 08D002 bsr i2c_wait_rx_nack
00FFE4E8 035086 puls d,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
i2c_wait_rx_nack:
00FFE4C6 034004 pshs b ; save off accb
00FFE4EA 034004 pshs b ; save off accb
i2cwr1:
00FFE4C8 0E6004 ldb I2C_STAT,x ; wait for RXack = 0
00FFE4CA 0C5080 bitb #$80 ; test for nack
00FFE4CC 026FFA bne i2cwr1
00FFE4CE 035084 puls b,pc
00FFE4EC 0E6004 ldb I2C_STAT,x ; wait for RXack = 0
00FFE4EE 0C5080 bitb #$80 ; test for nack
00FFE4F0 026FFA bne i2cwr1
00FFE4F2 035084 puls b,pc
; ============================================================================
; __
1462,50 → 1445,50
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
rtc_read:
00FFE4D0 08EE30500 ldx #RTC
00FFE4D3 18E007FC0 ldy #RTCBuf
00FFE4D6 0C6080 ldb #$80
00FFE4D8 0E7002 stb I2C_CTRL,x ; enable I2C
00FFE4DA 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
00FFE4DD 08DFC4 bsr i2c_wr_cmd
00FFE4DF 0C5080 bitb #$80
00FFE4E1 02603C bne rtc_rxerr
00FFE4E3 0CC010000 ldd #$10000 ; address zero, wr bit
00FFE4E6 08DFBB bsr i2c_wr_cmd
00FFE4E8 0C5080 bitb #$80
00FFE4EA 026033 bne rtc_rxerr
00FFE4EC 0CC0900DF ldd #$900DF ; read address, read op, STA + wr bit
00FFE4EF 08DFB2 bsr i2c_wr_cmd
00FFE4F1 0C5080 bitb #$80
00FFE4F3 02602A bne rtc_rxerr
00FFE4F4 08EE30500 ldx #RTC
00FFE4F7 18E007FC0 ldy #RTCBuf
00FFE4FA 0C6080 ldb #$80
00FFE4FC 0E7002 stb I2C_CTRL,x ; enable I2C
00FFE4FE 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
00FFE501 08DFC4 bsr i2c_wr_cmd
00FFE503 0C5080 bitb #$80
00FFE505 02603C bne rtc_rxerr
00FFE507 0CC010000 ldd #$10000 ; address zero, wr bit
00FFE50A 08DFBB bsr i2c_wr_cmd
00FFE50C 0C5080 bitb #$80
00FFE50E 026033 bne rtc_rxerr
00FFE510 0CC0900DF ldd #$900DF ; read address, read op, STA + wr bit
00FFE513 08DFB2 bsr i2c_wr_cmd
00FFE515 0C5080 bitb #$80
00FFE517 02602A bne rtc_rxerr
00FFE4F5 05F clrb
00FFE519 05F clrb
rtcr0001:
00FFE4F6 086020 lda #$20
00FFE4F8 0A7004 sta I2C_CMD,x ; rd bit
00FFE4FA 08DF9D bsr i2c_wait_tip
00FFE4FC 08DFC8 bsr i2c_wait_rx_nack
00FFE4FE 0A6004 lda I2C_STAT,x
00FFE500 085080 bita #$80
00FFE502 02601B bne rtc_rxerr
00FFE504 0A6003 lda I2C_RXR,x
00FFE506 0A7A07 sta b,y
00FFE508 05C incb
00FFE509 0C105F cmpb #$5F
00FFE50B 025FE9 blo rtcr0001
00FFE50D 086068 lda #$68
00FFE50F 0A7004 sta I2C_CMD,x ; STO, rd bit + nack
00FFE511 08DF86 bsr i2c_wait_tip
00FFE513 0A6004 lda I2C_STAT,x
00FFE515 085080 bita #$80
00FFE517 026006 bne rtc_rxerr
00FFE519 0A6003 lda I2C_RXR,x
00FFE51B 0A7A07 sta b,y
00FFE51D 04F05F clrd ; return 0
00FFE51A 086020 lda #$20
00FFE51C 0A7004 sta I2C_CMD,x ; rd bit
00FFE51E 08DF9D bsr i2c_wait_tip
00FFE520 08DFC8 bsr i2c_wait_rx_nack
00FFE522 0A6004 lda I2C_STAT,x
00FFE524 085080 bita #$80
00FFE526 02601B bne rtc_rxerr
00FFE528 0A6003 lda I2C_RXR,x
00FFE52A 0A7A07 sta b,y
00FFE52C 05C incb
00FFE52D 0C105F cmpb #$5F
00FFE52F 025FE9 blo rtcr0001
00FFE531 086068 lda #$68
00FFE533 0A7004 sta I2C_CMD,x ; STO, rd bit + nack
00FFE535 08DF86 bsr i2c_wait_tip
00FFE537 0A6004 lda I2C_STAT,x
00FFE539 085080 bita #$80
00FFE53B 026006 bne rtc_rxerr
00FFE53D 0A6003 lda I2C_RXR,x
00FFE53F 0A7A07 sta b,y
00FFE541 04F05F clrd ; return 0
rtc_rxerr:
00FFE51F 06F002 clr I2C_CTRL,x ; disable I2C and return status
00FFE521 04F clra
00FFE522 039 rts
00FFE543 06F002 clr I2C_CTRL,x ; disable I2C and return status
00FFE545 04F clra
00FFE546 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Write the real-time-clock chip.
1520,40 → 1503,40
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
rtc_write:
00FFE523 08EE30500 ldx #RTC
00FFE526 18E007FC0 ldy #RTCBuf
00FFE547 08EE30500 ldx #RTC
00FFE54A 18E007FC0 ldy #RTCBuf
00FFE529 0C6080 ldb #$80
00FFE52B 0E7002 stb I2C_CTRL,x ; enable I2C
00FFE52D 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
00FFE530 08DF71 bsr i2c_wr_cmd
00FFE532 0C5080 bitb #$80
00FFE534 026FE9 bne rtc_rxerr
00FFE536 0CC010000 ldd #$10000 ; address zero, wr bit
00FFE539 08DF68 bsr i2c_wr_cmd
00FFE53B 0C5080 bitb #$80
00FFE53D 026FE0 bne rtc_rxerr
00FFE54D 0C6080 ldb #$80
00FFE54F 0E7002 stb I2C_CTRL,x ; enable I2C
00FFE551 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
00FFE554 08DF71 bsr i2c_wr_cmd
00FFE556 0C5080 bitb #$80
00FFE558 026FE9 bne rtc_rxerr
00FFE55A 0CC010000 ldd #$10000 ; address zero, wr bit
00FFE55D 08DF68 bsr i2c_wr_cmd
00FFE55F 0C5080 bitb #$80
00FFE561 026FE0 bne rtc_rxerr
00FFE53F 0C6000 ldb #0
00FFE563 0C6000 ldb #0
rtcw0001:
00FFE541 034004 pshs b
00FFE543 0E6A05 ldb b,y
00FFE545 086010 lda #$10
00FFE547 08DF5A bsr i2c_wr_cmd
00FFE549 0C5080 bitb #$80
00FFE54B 035004 puls b
00FFE54D 026FD0 bne rtc_rxerr
00FFE54F 05C incb
00FFE550 0C105F cmpb #$5F
00FFE552 025FED blo rtcw0001
00FFE554 0E6A05 ldb b,y
00FFE556 086050 lda #$50 ; STO, wr bit
00FFE558 08DF49 bsr i2c_wr_cmd
00FFE55A 0C5080 bitb #$80
00FFE55C 026FC1 bne rtc_rxerr
00FFE55E 04F05F clrd ; return 0
00FFE560 06F002 clr I2C_CTRL,x ; disable I2C and return status
00FFE562 039 rts
00FFE565 034004 pshs b
00FFE567 0E6A05 ldb b,y
00FFE569 086010 lda #$10
00FFE56B 08DF5A bsr i2c_wr_cmd
00FFE56D 0C5080 bitb #$80
00FFE56F 035004 puls b
00FFE571 026FD0 bne rtc_rxerr
00FFE573 05C incb
00FFE574 0C105F cmpb #$5F
00FFE576 025FED blo rtcw0001
00FFE578 0E6A05 ldb b,y
00FFE57A 086050 lda #$50 ; STO, wr bit
00FFE57C 08DF49 bsr i2c_wr_cmd
00FFE57E 0C5080 bitb #$80
00FFE580 026FC1 bne rtc_rxerr
00FFE582 04F05F clrd ; return 0
00FFE584 06F002 clr I2C_CTRL,x ; disable I2C and return status
00FFE586 039 rts
;==============================================================================
; Keyboard I/O
1566,208 → 1549,208
org (* + 127) & $FFFFFF80
unshiftedScanCodes:
00FFE580 02E0A902E0A50A30A10A2 fcb $2e,$a9,$2e,$a5,$a3,$a1,$a2,$ac
00FFE587 0AC
00FFE588 02E0AA0A80A60A4009060 fcb $2e,$aa,$a8,$a6,$a4,$09,$60,$2e
00FFE58F 02E
00FFE590 02E02E02E02E02E071031 fcb $2e,$2e,$2e,$2e,$2e,$71,$31,$2e
00FFE597 02E
00FFE598 02E02E07A073061077032 fcb $2e,$2e,$7a,$73,$61,$77,$32,$2e
00FFE59F 02E
00FFE5A0 02E063078064065034033 fcb $2e,$63,$78,$64,$65,$34,$33,$2e
00FFE5A7 02E
00FFE5A8 02E020076066074072035 fcb $2e,$20,$76,$66,$74,$72,$35,$2e
00FFE5AF 02E
00FFE5B0 02E06E062068067079036 fcb $2e,$6e,$62,$68,$67,$79,$36,$2e
00FFE5B7 02E
00FFE5B8 02E02E06D06A075037038 fcb $2e,$2e,$6d,$6a,$75,$37,$38,$2e
00FFE5BF 02E
00FFE5C0 02E02C06B06906F030039 fcb $2e,$2c,$6b,$69,$6f,$30,$39,$2e
00FFE5C7 02E
00FFE5C8 02E02E02F06C03B07002D fcb $2e,$2e,$2f,$6c,$3b,$70,$2d,$2e
00FFE5CF 02E
00FFE5D0 02E02E02702E05B03D02E fcb $2e,$2e,$27,$2e,$5b,$3d,$2e,$2e
00FFE5D7 02E
00FFE5D8 0AD02E00D05D02E05C02E fcb $ad,$2e,$0d,$5d,$2e,$5c,$2e,$2e
00FFE5DF 02E
00FFE5E0 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE5E7 02E
00FFE5E8 02E09502E09309402E02E fcb $2e,$95,$2e,$93,$94,$2e,$2e,$2e
00FFE5EF 02E
00FFE5F0 09807F09202E09109001B fcb $98,$7f,$92,$2e,$91,$90,$1b,$af
00FFE5F7 0AF
00FFE5F8 0AB02E09702E02E0960AE fcb $ab,$2e,$97,$2e,$2e,$96,$ae,$2e
00FFE5FF 02E
00FFE600 02E02E02E0A702E02E02E fcb $2e,$2e,$2e,$a7,$2e,$2e,$2e,$2e
00FFE607 02E
00FFE608 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE600 02E0A902E0A50A30A10A2 fcb $2e,$a9,$2e,$a5,$a3,$a1,$a2,$ac
00FFE607 0AC
00FFE608 02E0AA0A80A60A4009060 fcb $2e,$aa,$a8,$a6,$a4,$09,$60,$2e
00FFE60F 02E
00FFE610 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE610 02E02E02E02E02E071031 fcb $2e,$2e,$2e,$2e,$2e,$71,$31,$2e
00FFE617 02E
00FFE618 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE618 02E02E07A073061077032 fcb $2e,$2e,$7a,$73,$61,$77,$32,$2e
00FFE61F 02E
00FFE620 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE620 02E063078064065034033 fcb $2e,$63,$78,$64,$65,$34,$33,$2e
00FFE627 02E
00FFE628 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE628 02E020076066074072035 fcb $2e,$20,$76,$66,$74,$72,$35,$2e
00FFE62F 02E
00FFE630 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE630 02E06E062068067079036 fcb $2e,$6e,$62,$68,$67,$79,$36,$2e
00FFE637 02E
00FFE638 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE638 02E02E06D06A075037038 fcb $2e,$2e,$6d,$6a,$75,$37,$38,$2e
00FFE63F 02E
00FFE640 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE640 02E02C06B06906F030039 fcb $2e,$2c,$6b,$69,$6f,$30,$39,$2e
00FFE647 02E
00FFE648 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE648 02E02E02F06C03B07002D fcb $2e,$2e,$2f,$6c,$3b,$70,$2d,$2e
00FFE64F 02E
00FFE650 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE650 02E02E02702E05B03D02E fcb $2e,$2e,$27,$2e,$5b,$3d,$2e,$2e
00FFE657 02E
00FFE658 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE658 0AD02E00D05D02E05C02E fcb $ad,$2e,$0d,$5d,$2e,$5c,$2e,$2e
00FFE65F 02E
00FFE660 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE660 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE667 02E
00FFE668 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE668 02E09502E09309402E02E fcb $2e,$95,$2e,$93,$94,$2e,$2e,$2e
00FFE66F 02E
00FFE670 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE677 02E
00FFE678 02E02E0FA02E02E02E02E fcb $2e,$2e,$fa,$2e,$2e,$2e,$2e,$2e
00FFE670 09807F09202E09109001B fcb $98,$7f,$92,$2e,$91,$90,$1b,$af
00FFE677 0AF
00FFE678 0AB02E09702E02E0960AE fcb $ab,$2e,$97,$2e,$2e,$96,$ae,$2e
00FFE67F 02E
shiftedScanCodes:
00FFE680 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE680 02E02E02E0A702E02E02E fcb $2e,$2e,$2e,$a7,$2e,$2e,$2e,$2e
00FFE687 02E
00FFE688 02E02E02E02E02E00907E fcb $2e,$2e,$2e,$2e,$2e,$09,$7e,$2e
00FFE688 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE68F 02E
00FFE690 02E02E02E02E02E051021 fcb $2e,$2e,$2e,$2e,$2e,$51,$21,$2e
00FFE690 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE697 02E
00FFE698 02E02E05A053041057040 fcb $2e,$2e,$5a,$53,$41,$57,$40,$2e
00FFE698 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE69F 02E
00FFE6A0 02E043058044045024023 fcb $2e,$43,$58,$44,$45,$24,$23,$2e
00FFE6A0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6A7 02E
00FFE6A8 02E020056046054052025 fcb $2e,$20,$56,$46,$54,$52,$25,$2e
00FFE6A8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6AF 02E
00FFE6B0 02E04E04204804705905E fcb $2e,$4e,$42,$48,$47,$59,$5e,$2e
00FFE6B0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6B7 02E
00FFE6B8 02E02E04D04A05502602A fcb $2e,$2e,$4d,$4a,$55,$26,$2a,$2e
00FFE6B8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6BF 02E
00FFE6C0 02E03C04B04904F029028 fcb $2e,$3c,$4b,$49,$4f,$29,$28,$2e
00FFE6C0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6C7 02E
00FFE6C8 02E03E03F04C03A05005F fcb $2e,$3e,$3f,$4c,$3a,$50,$5f,$2e
00FFE6C8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6CF 02E
00FFE6D0 02E02E02202E07B02B02E fcb $2e,$2e,$22,$2e,$7b,$2b,$2e,$2e
00FFE6D0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6D7 02E
00FFE6D8 02E02E00D07D02E07C02E fcb $2e,$2e,$0d,$7d,$2e,$7c,$2e,$2e
00FFE6D8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6DF 02E
00FFE6E0 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE6E0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6E7 02E
00FFE6E8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6EF 02E
00FFE6F0 02E07F02E02E02E02E01B fcb $2e,$7f,$2e,$2e,$2e,$2e,$1b,$2e
00FFE6F0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6F7 02E
00FFE6F8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE6F8 02E02E0FA02E02E02E02E fcb $2e,$2e,$fa,$2e,$2e,$2e,$2e,$2e
00FFE6FF 02E
shiftedScanCodes:
00FFE700 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE707 02E
00FFE708 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE708 02E02E02E02E02E00907E fcb $2e,$2e,$2e,$2e,$2e,$09,$7e,$2e
00FFE70F 02E
00FFE710 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE710 02E02E02E02E02E051021 fcb $2e,$2e,$2e,$2e,$2e,$51,$21,$2e
00FFE717 02E
00FFE718 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE718 02E02E05A053041057040 fcb $2e,$2e,$5a,$53,$41,$57,$40,$2e
00FFE71F 02E
00FFE720 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE720 02E043058044045024023 fcb $2e,$43,$58,$44,$45,$24,$23,$2e
00FFE727 02E
00FFE728 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE728 02E020056046054052025 fcb $2e,$20,$56,$46,$54,$52,$25,$2e
00FFE72F 02E
00FFE730 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE730 02E04E04204804705905E fcb $2e,$4e,$42,$48,$47,$59,$5e,$2e
00FFE737 02E
00FFE738 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE738 02E02E04D04A05502602A fcb $2e,$2e,$4d,$4a,$55,$26,$2a,$2e
00FFE73F 02E
00FFE740 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE740 02E03C04B04904F029028 fcb $2e,$3c,$4b,$49,$4f,$29,$28,$2e
00FFE747 02E
00FFE748 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE748 02E03E03F04C03A05005F fcb $2e,$3e,$3f,$4c,$3a,$50,$5f,$2e
00FFE74F 02E
00FFE750 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE750 02E02E02202E07B02B02E fcb $2e,$2e,$22,$2e,$7b,$2b,$2e,$2e
00FFE757 02E
00FFE758 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE758 02E02E00D07D02E07C02E fcb $2e,$2e,$0d,$7d,$2e,$7c,$2e,$2e
00FFE75F 02E
00FFE760 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE760 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE767 02E
00FFE768 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE76F 02E
00FFE770 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE770 02E07F02E02E02E02E01B fcb $2e,$7f,$2e,$2e,$2e,$2e,$1b,$2e
00FFE777 02E
00FFE778 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE77F 02E
; control
keybdControlCodes:
00FFE780 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE787 02E
00FFE788 02E02E02E02E02E00907E fcb $2e,$2e,$2e,$2e,$2e,$09,$7e,$2e
00FFE788 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE78F 02E
00FFE790 02E02E02E02E02E011021 fcb $2e,$2e,$2e,$2e,$2e,$11,$21,$2e
00FFE790 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE797 02E
00FFE798 02E02E01A013001017040 fcb $2e,$2e,$1a,$13,$01,$17,$40,$2e
00FFE798 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE79F 02E
00FFE7A0 02E003018004005024023 fcb $2e,$03,$18,$04,$05,$24,$23,$2e
00FFE7A0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7A7 02E
00FFE7A8 02E020016006014012025 fcb $2e,$20,$16,$06,$14,$12,$25,$2e
00FFE7A8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7AF 02E
00FFE7B0 02E00E00200800701905E fcb $2e,$0e,$02,$08,$07,$19,$5e,$2e
00FFE7B0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7B7 02E
00FFE7B8 02E02E00D00A01502602A fcb $2e,$2e,$0d,$0a,$15,$26,$2a,$2e
00FFE7B8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7BF 02E
00FFE7C0 02E03C00B00900F029028 fcb $2e,$3c,$0b,$09,$0f,$29,$28,$2e
00FFE7C0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7C7 02E
00FFE7C8 02E03E03F00C03A01005F fcb $2e,$3e,$3f,$0c,$3a,$10,$5f,$2e
00FFE7C8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7CF 02E
00FFE7D0 02E02E02202E07B02B02E fcb $2e,$2e,$22,$2e,$7b,$2b,$2e,$2e
00FFE7D0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7D7 02E
00FFE7D8 02E02E00D07D02E07C02E fcb $2e,$2e,$0d,$7d,$2e,$7c,$2e,$2e
00FFE7D8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7DF 02E
00FFE7E0 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE7E0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7E7 02E
00FFE7E8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7EF 02E
00FFE7F0 02E07F02E02E02E02E01B fcb $2e,$7f,$2e,$2e,$2e,$2e,$1b,$2e
00FFE7F0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7F7 02E
00FFE7F8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE7FF 02E
keybdExtendedCodes:
00FFE800 02E02E02E02E0A30A10A2 fcb $2e,$2e,$2e,$2e,$a3,$a1,$a2,$2e
; control
keybdControlCodes:
00FFE800 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE807 02E
00FFE808 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE808 02E02E02E02E02E00907E fcb $2e,$2e,$2e,$2e,$2e,$09,$7e,$2e
00FFE80F 02E
00FFE810 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE810 02E02E02E02E02E011021 fcb $2e,$2e,$2e,$2e,$2e,$11,$21,$2e
00FFE817 02E
00FFE818 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE818 02E02E01A013001017040 fcb $2e,$2e,$1a,$13,$01,$17,$40,$2e
00FFE81F 02E
00FFE820 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE820 02E003018004005024023 fcb $2e,$03,$18,$04,$05,$24,$23,$2e
00FFE827 02E
00FFE828 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE828 02E020016006014012025 fcb $2e,$20,$16,$06,$14,$12,$25,$2e
00FFE82F 02E
00FFE830 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE830 02E00E00200800701905E fcb $2e,$0e,$02,$08,$07,$19,$5e,$2e
00FFE837 02E
00FFE838 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE838 02E02E00D00A01502602A fcb $2e,$2e,$0d,$0a,$15,$26,$2a,$2e
00FFE83F 02E
00FFE840 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE840 02E03C00B00900F029028 fcb $2e,$3c,$0b,$09,$0f,$29,$28,$2e
00FFE847 02E
00FFE848 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE848 02E03E03F00C03A01005F fcb $2e,$3e,$3f,$0c,$3a,$10,$5f,$2e
00FFE84F 02E
00FFE850 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE850 02E02E02202E07B02B02E fcb $2e,$2e,$22,$2e,$7b,$2b,$2e,$2e
00FFE857 02E
00FFE858 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE858 02E02E00D07D02E07C02E fcb $2e,$2e,$0d,$7d,$2e,$7c,$2e,$2e
00FFE85F 02E
00FFE860 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE860 02E02E02E02E02E02E008 fcb $2e,$2e,$2e,$2e,$2e,$2e,$08,$2e
00FFE867 02E
00FFE868 02E09502E09309402E02E fcb $2e,$95,$2e,$93,$94,$2e,$2e,$2e
00FFE868 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE86F 02E
00FFE870 09809909202E09109002E fcb $98,$99,$92,$2e,$91,$90,$2e,$2e
00FFE870 02E07F02E02E02E02E01B fcb $2e,$7f,$2e,$2e,$2e,$2e,$1b,$2e
00FFE877 02E
00FFE878 02E02E09702E02E09602E fcb $2e,$2e,$97,$2e,$2e,$96,$2e,$2e
00FFE878 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE87F 02E
keybdExtendedCodes:
00FFE880 02E02E02E02E0A30A10A2 fcb $2e,$2e,$2e,$2e,$a3,$a1,$a2,$2e
00FFE887 02E
00FFE888 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE88F 02E
00FFE890 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE897 02E
00FFE898 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE89F 02E
00FFE8A0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8A7 02E
00FFE8A8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8AF 02E
00FFE8B0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8B7 02E
00FFE8B8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8BF 02E
00FFE8C0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8C7 02E
00FFE8C8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8CF 02E
00FFE8D0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8D7 02E
00FFE8D8 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8DF 02E
00FFE8E0 02E02E02E02E02E02E02E fcb $2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e
00FFE8E7 02E
00FFE8E8 02E09502E09309402E02E fcb $2e,$95,$2e,$93,$94,$2e,$2e,$2e
00FFE8EF 02E
00FFE8F0 09809909202E09109002E fcb $98,$99,$92,$2e,$91,$90,$2e,$2e
00FFE8F7 02E
00FFE8F8 02E02E09702E02E09602E fcb $2e,$2e,$97,$2e,$2e,$96,$2e,$2e
00FFE8FF 02E
; ============================================================================
; __
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
1825,20 → 1808,20
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdRecvByte:
00FFE880 034010 pshs x
00FFE882 08E000064 ldx #100 ; wait up to 1s
00FFE900 034010 pshs x
00FFE902 08E000064 ldx #100 ; wait up to 1s
krb3:
00FFE885 08D05A bsr KeybdGetStatus ; wait for response from keyboard
00FFE887 05D tstb
00FFE888 02B00B bmi krb4 ; is input buffer full ? yes, branch
00FFE88A 08D02D bsr Wait10ms ; wait a bit
00FFE88C 0301FF dex
00FFE88E 026FF5 bne krb3 ; go back and try again
00FFE890 0CCFFFFFF ldd #-1 ; return -1
00FFE893 035090 puls x,pc
00FFE905 08D05A bsr KeybdGetStatus ; wait for response from keyboard
00FFE907 05D tstb
00FFE908 02B00B bmi krb4 ; is input buffer full ? yes, branch
00FFE90A 08D02D bsr Wait10ms ; wait a bit
00FFE90C 0301FF dex
00FFE90E 026FF5 bne krb3 ; go back and try again
00FFE910 0CCFFFFFF ldd #-1 ; return -1
00FFE913 035090 puls x,pc
krb4:
00FFE895 08D066 bsr KeybdGetScancode
00FFE897 035090 puls x,pc
00FFE915 08D066 bsr KeybdGetScancode
00FFE917 035090 puls x,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Send a byte to the keyboard.
1850,8 → 1833,8
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdSendByte:
00FFE899 0150F7FFFE30400 stb KEYBD
00FFE89E 039 rts
00FFE919 0150F7FFFE30400 stb KEYBD
00FFE91E 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Wait until the keyboard transmit is complete
1863,21 → 1846,21
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdWaitTx:
00FFE89F 034010 pshs x
00FFE8A1 08E000064 ldx #100 ; wait a max of 1s
00FFE91F 034010 pshs x
00FFE921 08E000064 ldx #100 ; wait a max of 1s
kwt1:
00FFE8A4 08D03B bsr KeybdGetStatus
00FFE8A6 0C4040 andb #$40 ; check for transmit complete bit; branch if bit set
00FFE8A8 02600B bne kwt2
00FFE8AA 08D00D bsr Wait10ms ; delay a little bit
00FFE8AC 0301FF dex
00FFE8AE 026FF4 bne kwt1 ; go back and try again
00FFE8B0 0CCFFFFFF ldd #-1 ; timed out, return -1
00FFE8B3 035090 puls x,pc
00FFE924 08D03B bsr KeybdGetStatus
00FFE926 0C4040 andb #$40 ; check for transmit complete bit; branch if bit set
00FFE928 02600B bne kwt2
00FFE92A 08D00D bsr Wait10ms ; delay a little bit
00FFE92C 0301FF dex
00FFE92E 026FF4 bne kwt1 ; go back and try again
00FFE930 0CCFFFFFF ldd #-1 ; timed out, return -1
00FFE933 035090 puls x,pc
kwt2:
00FFE8B5 04F clra ; wait complete, return 0
00FFE8B6 05F clrb
00FFE8B7 035090 puls x,pc
00FFE935 04F clra ; wait complete, return 0
00FFE936 05F clrb
00FFE937 035090 puls x,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Wait for 10 ms
1889,14 → 1872,14
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wait10ms:
00FFE8B9 034006 pshs d
00FFE8BB 0150B6FFFFFFFE7 lda MSCOUNT+3
00FFE939 034006 pshs d
00FFE93B 0150B6FFFFFFFE7 lda MSCOUNT+3
W10_0001:
00FFE8C0 01F089 tfr a,b
00FFE8C2 0150F0FFFFFFFE7 subb MSCOUNT+3
00FFE8C7 0C1FFA cmpb #$FFA
00FFE8C9 022FF5 bhi W10_0001
00FFE8CB 035086 puls d,pc
00FFE940 01F089 tfr a,b
00FFE942 0150F0FFFFFFFE7 subb MSCOUNT+3
00FFE947 0C1FFA cmpb #$FFA
00FFE949 022FF5 bhi W10_0001
00FFE94B 035086 puls d,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Wait for 300 ms (256 ms)
1908,14 → 1891,14
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wait300ms:
00FFE8CD 034006 pshs d
00FFE8CF 0150B6FFFFFFFE7 lda MSCOUNT+3
00FFE94D 034006 pshs d
00FFE94F 0150B6FFFFFFFE7 lda MSCOUNT+3
W300_0001:
00FFE8D4 01F089 tfr a,b
00FFE8D6 0150F0FFFFFFFE7 subb MSCOUNT+3
00FFE8DB 0C1F00 cmpb #$F00
00FFE8DD 022FF5 bhi W300_0001
00FFE8DF 035086 puls d,pc
00FFE954 01F089 tfr a,b
00FFE956 0150F0FFFFFFFE7 subb MSCOUNT+3
00FFE95B 0C1F00 cmpb #$F00
00FFE95D 022FF5 bhi W300_0001
00FFE95F 035086 puls d,pc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Get the keyboard status
1926,22 → 1909,22
KeybdGetStatus:
kbgs3:
00FFE8E1 0150F6FFFE30401 ldb KEYBD+1
00FFE8E6 0C5080 bitb #$80
00FFE8E8 02600E bne kbgs1
00FFE8EA 0C5001 bitb #$01 ; check parity error flag
00FFE8EC 026002 bne kbgs2
00FFE8EE 04F clra
00FFE8EF 039 rts
00FFE961 0150F6FFFE30401 ldb KEYBD+1
00FFE966 0C5080 bitb #$80
00FFE968 02600E bne kbgs1
00FFE96A 0C5001 bitb #$01 ; check parity error flag
00FFE96C 026002 bne kbgs2
00FFE96E 04F clra
00FFE96F 039 rts
kbgs2:
00FFE8F0 0C60FE ldb #$FE ; request resend
00FFE8F2 08DFA5 bsr KeybdSendByte
00FFE8F4 08DFA9 bsr KeybdWaitTx
00FFE8F6 020FE9 bra kbgs3
00FFE970 0C60FE ldb #$FE ; request resend
00FFE972 08DFA5 bsr KeybdSendByte
00FFE974 08DFA9 bsr KeybdWaitTx
00FFE976 020FE9 bra kbgs3
kbgs1: ; return negative status
00FFE8F8 0CAF00 orb #$F00
00FFE8FA 086FFF lda #-1
00FFE8FC 039 rts
00FFE978 0CAF00 orb #$F00
00FFE97A 086FFF lda #-1
00FFE97C 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Get the scancode from the keyboard port
1951,10 → 1934,10
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdGetScancode:
00FFE8FD 04F clra
00FFE8FE 0150F6FFFE30400 ldb KEYBD ; get the scan code
00FFE903 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFE908 039 rts
00FFE97D 04F clra
00FFE97E 0150F6FFFE30400 ldb KEYBD ; get the scan code
00FFE983 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFE988 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Set the LEDs on the keyboard.
1966,16 → 1949,16
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdSetLED:
00FFE909 034004 pshs b
00FFE90B 0C60ED ldb #$ED ; set LEDs command
00FFE90D 08DF8A bsr KeybdSendByte
00FFE90F 08DF8E bsr KeybdWaitTx
00FFE911 08DF6D bsr KeybdRecvByte ; should be an ack
00FFE913 035004 puls b
00FFE915 08DF82 bsr KeybdSendByte
00FFE917 08DF86 bsr KeybdWaitTx
00FFE919 08DF65 bsr KeybdRecvByte ; should be an ack
00FFE91B 039 rts
00FFE989 034004 pshs b
00FFE98B 0C60ED ldb #$ED ; set LEDs command
00FFE98D 08DF8A bsr KeybdSendByte
00FFE98F 08DF8E bsr KeybdWaitTx
00FFE991 08DF6D bsr KeybdRecvByte ; should be an ack
00FFE993 035004 puls b
00FFE995 08DF82 bsr KeybdSendByte
00FFE997 08DF86 bsr KeybdWaitTx
00FFE999 08DF65 bsr KeybdRecvByte ; should be an ack
00FFE99B 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Get ID - get the keyboards identifier code.
1987,27 → 1970,27
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdGetID:
00FFE91C 0C60F2 ldb #$F2
00FFE91E 08DF79 bsr KeybdSendByte
00FFE920 08DF7D bsr KeybdWaitTx
00FFE922 08DF5C bsr KeybdRecvByte
00FFE924 0C5080 bitb #$80
00FFE926 026014 bne kgnotKbd
00FFE928 0C10AB cmpb #$AB
00FFE92A 026010 bne kgnotKbd
00FFE92C 08DF52 bsr KeybdRecvByte
00FFE92E 0C5080 bitb #$80
00FFE930 02600A bne kgnotKbd
00FFE932 0C1083 cmpb #$83
00FFE934 026006 bne kgnotKbd
00FFE936 0CC00AB83 ldd #$AB83
00FFE99C 0C60F2 ldb #$F2
00FFE99E 08DF79 bsr KeybdSendByte
00FFE9A0 08DF7D bsr KeybdWaitTx
00FFE9A2 08DF5C bsr KeybdRecvByte
00FFE9A4 0C5080 bitb #$80
00FFE9A6 026014 bne kgnotKbd
00FFE9A8 0C10AB cmpb #$AB
00FFE9AA 026010 bne kgnotKbd
00FFE9AC 08DF52 bsr KeybdRecvByte
00FFE9AE 0C5080 bitb #$80
00FFE9B0 02600A bne kgnotKbd
00FFE9B2 0C1083 cmpb #$83
00FFE9B4 026006 bne kgnotKbd
00FFE9B6 0CC00AB83 ldd #$AB83
kgid1:
00FFE939 0DD124 std KeybdID
00FFE93B 039 rts
00FFE9B9 0DD124 std KeybdID
00FFE9BB 039 rts
kgnotKbd:
00FFE93C 04F clra
00FFE93D 05F clrb
00FFE93E 020FF9 bra kgid1
00FFE9BC 04F clra
00FFE9BD 05F clrb
00FFE9BE 020FF9 bra kgid1
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Initialize the keyboard.
2021,71 → 2004,71
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdInit:
00FFE940 034026 pshs d,y
00FFE942 18E000005 ldy #5
00FFE945 00F120 clr KeyState1 ; records key up/down state
00FFE947 00F121 clr KeyState2 ; records shift,ctrl,alt state
00FFE9C0 034026 pshs d,y
00FFE9C2 18E000005 ldy #5
00FFE9C5 00F120 clr KeyState1 ; records key up/down state
00FFE9C7 00F121 clr KeyState2 ; records shift,ctrl,alt state
kbdi0002:
00FFE949 08DF6E bsr Wait10ms
00FFE94B 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFE950 0C6FFF ldb #-1 ; send reset code to keyboard
00FFE952 0150F7FFFE30401 stb KEYBD+1 ; write $FF to status reg to clear TX state
00FFE957 08DF40 bsr KeybdSendByte ; now write to transmit register
00FFE959 08DF44 bsr KeybdWaitTx ; wait until no longer busy
00FFE95B 08DF23 bsr KeybdRecvByte ; look for an ACK ($FA)
00FFE95D 0C10FA cmpb #$FA
00FFE95F 026021 bne kbdiTryAgain
00FFE961 08DF1D bsr KeybdRecvByte ; look for BAT completion code ($AA)
00FFE963 0C10FC cmpb #$FC ; reset error ?
00FFE965 02701B beq kbdiTryAgain
00FFE967 0C10AA cmpb #$AA ; reset complete okay ?
00FFE969 026017 bne kbdiTryAgain
00FFE9C9 08DF6E bsr Wait10ms
00FFE9CB 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFE9D0 0C6FFF ldb #-1 ; send reset code to keyboard
00FFE9D2 0150F7FFFE30401 stb KEYBD+1 ; write $FF to status reg to clear TX state
00FFE9D7 08DF40 bsr KeybdSendByte ; now write to transmit register
00FFE9D9 08DF44 bsr KeybdWaitTx ; wait until no longer busy
00FFE9DB 08DF23 bsr KeybdRecvByte ; look for an ACK ($FA)
00FFE9DD 0C10FA cmpb #$FA
00FFE9DF 026021 bne kbdiTryAgain
00FFE9E1 08DF1D bsr KeybdRecvByte ; look for BAT completion code ($AA)
00FFE9E3 0C10FC cmpb #$FC ; reset error ?
00FFE9E5 02701B beq kbdiTryAgain
00FFE9E7 0C10AA cmpb #$AA ; reset complete okay ?
00FFE9E9 026017 bne kbdiTryAgain
; After a reset, scan code set #2 should be active
.config:
00FFE96B 0C60F0 ldb #$F0 ; send scan code select
00FFE96D 0150F7FFFE60001 stb LEDS
00FFE972 08DF25 bsr KeybdSendByte
00FFE974 08DF29 bsr KeybdWaitTx
00FFE976 05D tstb
00FFE977 02B009 bmi kbdiTryAgain
00FFE979 08DF05 bsr KeybdRecvByte ; wait for response from keyboard
00FFE97B 04D tsta
00FFE97C 02B004 bmi kbdiTryAgain
00FFE97E 0C10FA cmpb #$FA ; ACK
00FFE980 02700C beq kbdi0004
00FFE9EB 0C60F0 ldb #$F0 ; send scan code select
00FFE9ED 0150F7FFFE60001 stb LEDS
00FFE9F2 08DF25 bsr KeybdSendByte
00FFE9F4 08DF29 bsr KeybdWaitTx
00FFE9F6 05D tstb
00FFE9F7 02B009 bmi kbdiTryAgain
00FFE9F9 08DF05 bsr KeybdRecvByte ; wait for response from keyboard
00FFE9FB 04D tsta
00FFE9FC 02B004 bmi kbdiTryAgain
00FFE9FE 0C10FA cmpb #$FA ; ACK
00FFEA00 02700C beq kbdi0004
kbdiTryAgain:
00FFE982 0313FF dey
00FFE984 026FC3 bne kbdi0002
00FFEA02 0313FF dey
00FFEA04 026FC3 bne kbdi0002
.keybdErr:
00FFE986 0CCFFE9AE ldd #msgBadKeybd
00FFE989 017FFFA4A lbsr DisplayStringCRLF
00FFEA06 0CCFFEA2E ldd #msgBadKeybd
00FFEA09 017FFF9EE lbsr DisplayStringCRLF
*** warning 1: Long branch within short branch range could be optimized
00FFE98C 020014 bra ledxit
00FFEA0C 020014 bra ledxit
kbdi0004:
00FFE98E 0C6002 ldb #2 ; select scan code set #2
00FFE990 08DF07 bsr KeybdSendByte
00FFE992 08DF0B bsr KeybdWaitTx
00FFE994 05D tstb
00FFE995 02BFEB bmi kbdiTryAgain
00FFE997 08DEE7 bsr KeybdRecvByte ; wait for response from keyboard
00FFE999 04D tsta
00FFE99A 02BFE6 bmi kbdiTryAgain
00FFE99C 0C10FA cmpb #$FA
00FFE99E 026FE2 bne kbdiTryAgain
00FFE9A0 08DF7A bsr KeybdGetID
00FFEA0E 0C6002 ldb #2 ; select scan code set #2
00FFEA10 08DF07 bsr KeybdSendByte
00FFEA12 08DF0B bsr KeybdWaitTx
00FFEA14 05D tstb
00FFEA15 02BFEB bmi kbdiTryAgain
00FFEA17 08DEE7 bsr KeybdRecvByte ; wait for response from keyboard
00FFEA19 04D tsta
00FFEA1A 02BFE6 bmi kbdiTryAgain
00FFEA1C 0C10FA cmpb #$FA
00FFEA1E 026FE2 bne kbdiTryAgain
00FFEA20 08DF7A bsr KeybdGetID
ledxit:
00FFE9A2 0C6007 ldb #$07
00FFE9A4 08DF63 bsr KeybdSetLED
00FFE9A6 08DF25 bsr Wait300ms
00FFE9A8 0C6000 ldb #$00
00FFE9AA 08DF5D bsr KeybdSetLED
00FFE9AC 0350A6 puls d,y,pc
00FFEA22 0C6007 ldb #$07
00FFEA24 08DF63 bsr KeybdSetLED
00FFEA26 08DF25 bsr Wait300ms
00FFEA28 0C6000 ldb #$00
00FFEA2A 08DF5D bsr KeybdSetLED
00FFEA2C 0350A6 puls d,y,pc
msgBadKeybd:
00FFE9AE 04B06507906206F061072 fcb "Keyboard error",0
00FFE9B5 06402006507207206F072
00FFE9BC 000
00FFEA2E 04B06507906206F061072 fcb "Keyboard error",0
00FFEA35 06402006507207206F072
00FFEA3C 000
;------------------------------------------------------------------------------
; Calculate number of character in input buffer
2097,15 → 2080,15
;------------------------------------------------------------------------------
kbdRcvCount:
00FFE9BD 04F clra
00FFE9BE 0E6A08128 ldb kbdTailRcv,y
00FFE9C1 0E0A08127 subb kbdHeadRcv,y
00FFE9C4 02C008 bge krcXit
00FFE9C6 0C6040 ldb #$40
00FFE9C8 0E0A08127 subb kbdHeadRcv,y
00FFE9CB 0EBA08128 addb kbdTailRcv,y
00FFEA3D 04F clra
00FFEA3E 0E6A08128 ldb kbdTailRcv,y
00FFEA41 0E0A08127 subb kbdHeadRcv,y
00FFEA44 02C008 bge krcXit
00FFEA46 0C6040 ldb #$40
00FFEA48 0E0A08127 subb kbdHeadRcv,y
00FFEA4B 0EBA08128 addb kbdTailRcv,y
krcXit:
00FFE9CE 039 rts
00FFEA4E 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2112,44 → 2095,44
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybdIRQ:
00FFE9CF 0150B6FFFE30401 lda KEYBD+1 ; check status
00FFE9D4 085080 bita #$80 ; was key pressed?
00FFE9D6 027034 beq notKbdIRQ ; if not, exit
00FFE9D8 0150F6FFFE30400 ldb KEYBD ; get the scan code
00FFE9DD 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFE9E2 034004 pshs b ; save it off
00FFE9E4 0B6FFC010 lda IOFocusID ; compute core memory address $Cn0000
00FFE9E7 05F clrb
00FFE9E8 048 asla
00FFE9E9 048 asla
00FFE9EA 048 asla
00FFE9EB 048 asla
00FFE9EC 08AC00 ora #$C00 ; address $Cn0000
00FFE9EE 01F002 tfr d,y ; y =
00FFE9F0 08DFCB bsr kbdRcvCount ; get count of scan codes in buffer
00FFE9F2 0C1040 cmpb #64 ; check if buffer full?
00FFE9F4 024017 bhs kbdBufFull ; if buffer full, ignore new keystroke
00FFE9F6 01F021 tfr y,x ; compute fifo address
00FFE9F8 0E6A08128 ldb kbdTailRcv,y ; b = buffer index
00FFE9FB 035002 puls a ; get back scancode
00FFE9FD 030040 leax kbdFifo,x ; x = base address for fifo
00FFE9FF 0A7845 sta b,x ; store in buffer
00FFEA01 05C incb ; increment buffer index
00FFEA02 0C403F andb #$3f ; wrap around at 64 chars
00FFEA04 0E7A08128 stb kbdTailRcv,y ; update it
00FFEA07 08601C lda #28 ; Keyboard is IRQ #28
00FFEA09 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
00FFEA4F 0150B6FFFE30401 lda KEYBD+1 ; check status
00FFEA54 085080 bita #$80 ; was key pressed?
00FFEA56 027034 beq notKbdIRQ ; if not, exit
00FFEA58 0150F6FFFE30400 ldb KEYBD ; get the scan code
00FFEA5D 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
00FFEA62 034004 pshs b ; save it off
00FFEA64 0B6FFC010 lda IOFocusID ; compute core memory address $Cn0000
00FFEA67 05F clrb
00FFEA68 048 asla
00FFEA69 048 asla
00FFEA6A 048 asla
00FFEA6B 048 asla
00FFEA6C 08AC00 ora #$C00 ; address $Cn0000
00FFEA6E 01F002 tfr d,y ; y =
00FFEA70 08DFCB bsr kbdRcvCount ; get count of scan codes in buffer
00FFEA72 0C1040 cmpb #64 ; check if buffer full?
00FFEA74 024017 bhs kbdBufFull ; if buffer full, ignore new keystroke
00FFEA76 01F021 tfr y,x ; compute fifo address
00FFEA78 0E6A08128 ldb kbdTailRcv,y ; b = buffer index
00FFEA7B 035002 puls a ; get back scancode
00FFEA7D 030040 leax kbdFifo,x ; x = base address for fifo
00FFEA7F 0A7845 sta b,x ; store in buffer
00FFEA81 05C incb ; increment buffer index
00FFEA82 0C403F andb #$3f ; wrap around at 64 chars
00FFEA84 0E7A08128 stb kbdTailRcv,y ; update it
00FFEA87 08601C lda #28 ; Keyboard is IRQ #28
00FFEA89 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
notKbdIRQ:
00FFEA0C 039 rts
00FFEA8C 039 rts
kbdBufFull:
00FFEA0D 032601 leas 1,s ; get rid of saved scancode
00FFEA0F 039 rts
00FFEA8D 032601 leas 1,s ; get rid of saved scancode
00FFEA8F 039 rts
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DBGCheckForKey:
00FFEA10 020ECF bra KeybdGetStatus
00FFEA90 020ECF bra KeybdGetStatus
; KeyState2 variable bit meanings
2179,228 → 2162,228
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GetKey:
00FFEA12 034030 pshs x,y
00FFEA14 0D7126 stb KeybdBlock ; save off blocking status
00FFEA92 034030 pshs x,y
00FFEA94 0D7126 stb KeybdBlock ; save off blocking status
dbgk2:
00FFEA16 0D6126 ldb KeybdBlock
00FFEA18 034004 pshs b
00FFEA1A 0C5001 bitb #1 ; what is the scancode source
00FFEA1C 02701A beq dbgk20 ; branch if direct read
00FFEA1E 0150B6FFFFFFFE0 lda COREID ; compute core memory address
00FFEA23 05F clrb
00FFEA24 048 asla
00FFEA25 048 asla
00FFEA26 048 asla
00FFEA27 048 asla
00FFEA28 08AC00 ora #$C00
00FFEA2A 01F002 tfr d,y ; y = $Cn0000
00FFEA2C 08DF8F bsr kbdRcvCount
00FFEA2E 05D tstb ; anything in buffer?
00FFEA2F 035004 puls b
00FFEA31 026018 bne dbgk1 ; branch if something in buffer
00FFEA33 05D tstb
00FFEA34 02BFE0 bmi dbgk2 ; if no key and blocking - loop
00FFEA36 02000E bra dbgk24
00FFEA96 0D6126 ldb KeybdBlock
00FFEA98 034004 pshs b
00FFEA9A 0C5001 bitb #1 ; what is the scancode source
00FFEA9C 02701A beq dbgk20 ; branch if direct read
00FFEA9E 0150B6FFFFFFFE0 lda COREID ; compute core memory address
00FFEAA3 05F clrb
00FFEAA4 048 asla
00FFEAA5 048 asla
00FFEAA6 048 asla
00FFEAA7 048 asla
00FFEAA8 08AC00 ora #$C00
00FFEAAA 01F002 tfr d,y ; y = $Cn0000
00FFEAAC 08DF8F bsr kbdRcvCount
00FFEAAE 05D tstb ; anything in buffer?
00FFEAAF 035004 puls b
00FFEAB1 026018 bne dbgk1 ; branch if something in buffer
00FFEAB3 05D tstb
00FFEAB4 02BFE0 bmi dbgk2 ; if no key and blocking - loop
00FFEAB6 02000E bra dbgk24
dbgk20:
00FFEA38 18E000000 ldy #0
00FFEA3B 08DEA4 bsr KeybdGetStatus
00FFEA3D 0C4080 andb #$80 ; is key available?
00FFEA3F 035004 puls b
00FFEA41 026008 bne dbgk1 ; branch if key
00FFEA43 05D tstb ; block?
00FFEA44 02BFD0 bmi dbgk2 ; If no key and blocking - loop
00FFEAB8 18E000000 ldy #0
00FFEABB 08DEA4 bsr KeybdGetStatus
00FFEABD 0C4080 andb #$80 ; is key available?
00FFEABF 035004 puls b
00FFEAC1 026008 bne dbgk1 ; branch if key
00FFEAC3 05D tstb ; block?
00FFEAC4 02BFD0 bmi dbgk2 ; If no key and blocking - loop
dbgk24:
00FFEA46 0CCFFFFFF ldd #-1 ; return -1 if no block and no key
00FFEA49 0350B0 puls x,y,pc
00FFEAC6 0CCFFFFFF ldd #-1 ; return -1 if no block and no key
00FFEAC9 0350B0 puls x,y,pc
dbgk1:
00FFEA4B 18C000000 cmpy #0
00FFEA4E 026004 bne dbgk22
00FFEA50 08DEAB bsr KeybdGetScancode ; get scancode directly
00FFEA52 020011 bra dbgk23
00FFEACB 18C000000 cmpy #0
00FFEACE 026004 bne dbgk22
00FFEAD0 08DEAB bsr KeybdGetScancode ; get scancode directly
00FFEAD2 020011 bra dbgk23
dbgk22:
; Retrieve value from scancode buffer
00FFEA54 01F021 tfr y,x
00FFEA56 030040 leax kbdFifo,x ; x = fifo address
00FFEA58 0E6A08127 ldb kbdHeadRcv,y ; b = buffer index
00FFEA5B 0A6A0D lda b,x ; get the scancode
00FFEA5D 05C incb ; increment fifo index
00FFEA5E 0C403F andb #$3f ; and wrap around
00FFEA60 0E7A08127 stb kbdHeadRcv,y ; save it back
00FFEA63 01F089 tfr a,b ; the scancode is needed in accb
00FFEAD4 01F021 tfr y,x
00FFEAD6 030040 leax kbdFifo,x ; x = fifo address
00FFEAD8 0E6A08127 ldb kbdHeadRcv,y ; b = buffer index
00FFEADB 0A6A0D lda b,x ; get the scancode
00FFEADD 05C incb ; increment fifo index
00FFEADE 0C403F andb #$3f ; and wrap around
00FFEAE0 0E7A08127 stb kbdHeadRcv,y ; save it back
00FFEAE3 01F089 tfr a,b ; the scancode is needed in accb
dbgk23:
; lbsr DispByteAsHex
; Make sure there is a small delay between scancode reads
00FFEA65 08E000014 ldx #20
00FFEAE5 08E000014 ldx #20
dbgk3:
00FFEA68 0301FF dex
00FFEA6A 026FFC bne dbgk3
00FFEAE8 0301FF dex
00FFEAEA 026FFC bne dbgk3
; switch on scan code
00FFEA6C 0C10F0 cmpb #SC_KEYUP
00FFEA6E 026004 bne dbgk4
00FFEA70 0D7120 stb KeyState1 ; make KeyState1 <> 0
00FFEA72 020FA2 bra dbgk2 ; loop back
00FFEAEC 0C10F0 cmpb #SC_KEYUP
00FFEAEE 026004 bne dbgk4
00FFEAF0 0D7120 stb KeyState1 ; make KeyState1 <> 0
00FFEAF2 020FA2 bra dbgk2 ; loop back
dbgk4:
00FFEA74 0C10E0 cmpb #SC_EXTEND
00FFEA76 026008 bne dbgk5
00FFEA78 096121 lda KeyState2
00FFEA7A 08A800 ora #$800
00FFEA7C 097121 sta KeyState2
00FFEA7E 020F96 bra dbgk2
00FFEAF4 0C10E0 cmpb #SC_EXTEND
00FFEAF6 026008 bne dbgk5
00FFEAF8 096121 lda KeyState2
00FFEAFA 08A800 ora #$800
00FFEAFC 097121 sta KeyState2
00FFEAFE 020F96 bra dbgk2
dbgk5:
00FFEA80 0C1014 cmpb #SC_CTRL
00FFEA82 026016 bne dbgkNotCtrl
00FFEA84 00D120 tst KeyState1
00FFEA86 026008 bne dbgk7
00FFEA88 096121 lda KeyState2
00FFEA8A 08A004 ora #4
00FFEA8C 097121 sta KeyState2
00FFEA8E 020006 bra dbgk8
00FFEB00 0C1014 cmpb #SC_CTRL
00FFEB02 026016 bne dbgkNotCtrl
00FFEB04 00D120 tst KeyState1
00FFEB06 026008 bne dbgk7
00FFEB08 096121 lda KeyState2
00FFEB0A 08A004 ora #4
00FFEB0C 097121 sta KeyState2
00FFEB0E 020006 bra dbgk8
dbgk7:
00FFEA90 096121 lda KeyState2
00FFEA92 084FFB anda #~4
00FFEA94 097121 sta KeyState2
00FFEB10 096121 lda KeyState2
00FFEB12 084FFB anda #~4
00FFEB14 097121 sta KeyState2
dbgk8:
00FFEA96 00F120 clr KeyState1
00FFEA98 020F7C bra dbgk2
00FFEB16 00F120 clr KeyState1
00FFEB18 020F7C bra dbgk2
dbgkNotCtrl:
00FFEA9A 0C1059 cmpb #SC_RSHIFT
00FFEA9C 026016 bne dbgkNotRshift
00FFEA9E 00D120 tst KeyState1
00FFEAA0 026008 bne dbgk9
00FFEAA2 096121 lda KeyState2
00FFEAA4 08A001 ora #1
00FFEAA6 097121 sta KeyState2
00FFEAA8 020006 bra dbgk10
00FFEB1A 0C1059 cmpb #SC_RSHIFT
00FFEB1C 026016 bne dbgkNotRshift
00FFEB1E 00D120 tst KeyState1
00FFEB20 026008 bne dbgk9
00FFEB22 096121 lda KeyState2
00FFEB24 08A001 ora #1
00FFEB26 097121 sta KeyState2
00FFEB28 020006 bra dbgk10
dbgk9:
00FFEAAA 096121 lda KeyState2
00FFEAAC 084FFE anda #~1
00FFEAAE 097121 sta KeyState2
00FFEB2A 096121 lda KeyState2
00FFEB2C 084FFE anda #~1
00FFEB2E 097121 sta KeyState2
dbgk10:
00FFEAB0 00F120 clr KeyState1
00FFEAB2 020F62 bra dbgk2
00FFEB30 00F120 clr KeyState1
00FFEB32 020F62 bra dbgk2
dbgkNotRshift:
00FFEAB4 0C1077 cmpb #SC_NUMLOCK
00FFEAB6 026013 bne dbgkNotNumlock
00FFEAB8 096121 lda KeyState2
00FFEABA 088010 eora #16
00FFEABC 097121 sta KeyState2
00FFEABE 096122 lda KeyLED
00FFEAC0 088002 eora #2
00FFEAC2 097122 sta KeyLED
00FFEAC4 01F089 tfr a,b
00FFEAC6 04F clra
00FFEAC7 08DE40 bsr KeybdSetLED
00FFEAC9 020F4B bra dbgk2
00FFEB34 0C1077 cmpb #SC_NUMLOCK
00FFEB36 026013 bne dbgkNotNumlock
00FFEB38 096121 lda KeyState2
00FFEB3A 088010 eora #16
00FFEB3C 097121 sta KeyState2
00FFEB3E 096122 lda KeyLED
00FFEB40 088002 eora #2
00FFEB42 097122 sta KeyLED
00FFEB44 01F089 tfr a,b
00FFEB46 04F clra
00FFEB47 08DE40 bsr KeybdSetLED
00FFEB49 020F4B bra dbgk2
dbgkNotNumlock:
00FFEACB 0C1058 cmpb #SC_CAPSLOCK
00FFEACD 026013 bne dbgkNotCapslock
00FFEACF 096121 lda KeyState2
00FFEAD1 088020 eora #32
00FFEAD3 097121 sta KeyState2
00FFEAD5 096122 lda KeyLED
00FFEAD7 088004 eora #4
00FFEAD9 097122 sta KeyLED
00FFEADB 01F089 tfr a,b
00FFEADD 04F clra
00FFEADE 08DE29 bsr KeybdSetLED
00FFEAE0 020F34 bra dbgk2
00FFEB4B 0C1058 cmpb #SC_CAPSLOCK
00FFEB4D 026013 bne dbgkNotCapslock
00FFEB4F 096121 lda KeyState2
00FFEB51 088020 eora #32
00FFEB53 097121 sta KeyState2
00FFEB55 096122 lda KeyLED
00FFEB57 088004 eora #4
00FFEB59 097122 sta KeyLED
00FFEB5B 01F089 tfr a,b
00FFEB5D 04F clra
00FFEB5E 08DE29 bsr KeybdSetLED
00FFEB60 020F34 bra dbgk2
dbgkNotCapslock:
00FFEAE2 0C107E cmpb #SC_SCROLLLOCK
00FFEAE4 026013 bne dbgkNotScrolllock
00FFEAE6 096121 lda KeyState2
00FFEAE8 088040 eora #64
00FFEAEA 097121 sta KeyState2
00FFEAEC 096122 lda KeyLED
00FFEAEE 088001 eora #1
00FFEAF0 097122 sta KeyLED
00FFEAF2 01F089 tfr a,b
00FFEAF4 04F clra
00FFEAF5 08DE12 bsr KeybdSetLED
00FFEAF7 020F1D bra dbgk2
00FFEB62 0C107E cmpb #SC_SCROLLLOCK
00FFEB64 026013 bne dbgkNotScrolllock
00FFEB66 096121 lda KeyState2
00FFEB68 088040 eora #64
00FFEB6A 097121 sta KeyState2
00FFEB6C 096122 lda KeyLED
00FFEB6E 088001 eora #1
00FFEB70 097122 sta KeyLED
00FFEB72 01F089 tfr a,b
00FFEB74 04F clra
00FFEB75 08DE12 bsr KeybdSetLED
00FFEB77 020F1D bra dbgk2
dbgkNotScrolllock:
00FFEAF9 0C1011 cmpb #SC_ALT
00FFEAFB 026016 bne dbgkNotAlt
00FFEAFD 00D120 tst KeyState1
00FFEAFF 026008 bne dbgk11
00FFEB01 096121 lda KeyState2
00FFEB03 08A002 ora #2
00FFEB05 097121 sta KeyState2
00FFEB07 020006 bra dbgk12
00FFEB79 0C1011 cmpb #SC_ALT
00FFEB7B 026016 bne dbgkNotAlt
00FFEB7D 00D120 tst KeyState1
00FFEB7F 026008 bne dbgk11
00FFEB81 096121 lda KeyState2
00FFEB83 08A002 ora #2
00FFEB85 097121 sta KeyState2
00FFEB87 020006 bra dbgk12
dbgk11:
00FFEB09 096121 lda KeyState2
00FFEB0B 084FFD anda #~2
00FFEB0D 097121 sta KeyState2
00FFEB89 096121 lda KeyState2
00FFEB8B 084FFD anda #~2
00FFEB8D 097121 sta KeyState2
dbgk12:
00FFEB0F 00F120 clr KeyState1
00FFEB11 020F03 bra dbgk2
00FFEB8F 00F120 clr KeyState1
00FFEB91 020F03 bra dbgk2
dbgkNotAlt:
00FFEB13 00D120 tst KeyState1
00FFEB15 027004 beq dbgk13
00FFEB17 00F120 clr KeyState1
00FFEB19 020EFB bra dbgk2
00FFEB93 00D120 tst KeyState1
00FFEB95 027004 beq dbgk13
00FFEB97 00F120 clr KeyState1
00FFEB99 020EFB bra dbgk2
dbgk13:
00FFEB1B 096121 lda KeyState2 ; Check for CTRL-ALT-DEL
00FFEB1D 084006 anda #6
00FFEB1F 081006 cmpa #6
00FFEB21 026008 bne dbgk14
00FFEB23 0C1071 cmpb #SC_DEL
00FFEB25 026004 bne dbgk14
00FFEB27 06E90FFFFFFC jmp [$FFFFFC] ; jump to NMI vector
00FFEB9B 096121 lda KeyState2 ; Check for CTRL-ALT-DEL
00FFEB9D 084006 anda #6
00FFEB9F 081006 cmpa #6
00FFEBA1 026008 bne dbgk14
00FFEBA3 0C1071 cmpb #SC_DEL
00FFEBA5 026004 bne dbgk14
00FFEBA7 06E90FFFFFFC jmp [$FFFFFC] ; jump to NMI vector
dbgk14:
00FFEB2B 00D121 tst KeyState2 ; extended code?
00FFEB2D 02A00B bpl dbgk15
00FFEB2F 096121 lda KeyState2
00FFEB31 0847FF anda #$7FF
00FFEB33 097121 sta KeyState2
00FFEB35 08EFFE800 ldx #keybdExtendedCodes
00FFEB38 020017 bra dbgk18
00FFEBAB 00D121 tst KeyState2 ; extended code?
00FFEBAD 02A00B bpl dbgk15
00FFEBAF 096121 lda KeyState2
00FFEBB1 0847FF anda #$7FF
00FFEBB3 097121 sta KeyState2
00FFEBB5 08EFFE880 ldx #keybdExtendedCodes
00FFEBB8 020017 bra dbgk18
dbgk15:
00FFEB3A 096121 lda KeyState2 ; Is CTRL down?
00FFEB3C 085004 bita #4
00FFEB3E 027005 beq dbgk16
00FFEB40 08EFFE780 ldx #keybdControlCodes
00FFEB43 02000C bra dbgk18
00FFEBBA 096121 lda KeyState2 ; Is CTRL down?
00FFEBBC 085004 bita #4
00FFEBBE 027005 beq dbgk16
00FFEBC0 08EFFE800 ldx #keybdControlCodes
00FFEBC3 02000C bra dbgk18
dbgk16:
00FFEB45 085001 bita #1 ; Is shift down?
00FFEB47 027005 beq dbgk17
00FFEB49 08EFFE680 ldx #shiftedScanCodes
00FFEB4C 020003 bra dbgk18
00FFEBC5 085001 bita #1 ; Is shift down?
00FFEBC7 027005 beq dbgk17
00FFEBC9 08EFFE700 ldx #shiftedScanCodes
00FFEBCC 020003 bra dbgk18
dbgk17:
00FFEB4E 08EFFE580 ldx #unshiftedScanCodes
00FFEBCE 08EFFE600 ldx #unshiftedScanCodes
dbgk18:
00FFEB51 0E690FFFE580 ldb b,x ; load accb with ascii from table
00FFEB55 04F clra
00FFEB56 0350B0 puls x,y,pc ; and return
00FFEBD1 0E690FFFE600 ldb b,x ; load accb with ascii from table
00FFEBD5 04F clra
00FFEBD6 0350B0 puls x,y,pc ; and return
00FFEB58 04B04505904204F041052 fcb "KEYBOARD"
00FFEB5F 044
00FFEB60 FFEB6A fcw KeybdOpen
00FFEB62 FFEB6B fcw KeybdClose
00FFEB64 FFEB6C fcw KeybdRead
00FFEB66 FFEB6D fcw KeybdWrite
00FFEB68 FFEB6E fcw KeybdSeek
00FFEBD8 04B04505904204F041052 fcb "KEYBOARD"
00FFEBDF 044
00FFEBE0 FFEBEA fcw KeybdOpen
00FFEBE2 FFEBEB fcw KeybdClose
00FFEBE4 FFEBEC fcw KeybdRead
00FFEBE6 FFEBED fcw KeybdWrite
00FFEBE8 FFEBEE fcw KeybdSeek
; Keyboard Open:
; Initialize the keyboard buffer head and tail indexes
;
KeybdOpen:
00FFEB6A 039 rts
00FFEBEA 039 rts
; Keyboard Close:
; Nothing to do except maybe clear the keyboard buffer
;
KeybdClose:
00FFEB6B 039 rts
00FFEBEB 039 rts
;
KeybdRead:
00FFEB6C 039 rts
00FFEBEC 039 rts
;
KeybdWrite:
00FFEB6D 039 rts
00FFEBED 039 rts
KeybdSeek:
00FFEB6E 039 rts
00FFEBEE 039 rts
;==============================================================================
; Serial I/O
2451,25 → 2434,25
InitSerial:
SerialInit:
00FFEB6F 04F clra
00FFEB70 05F clrb
00FFEB71 0DD130 std SerHeadRcv-1
00FFEB73 0DD132 std SerTailRcv-1
00FFEB75 0DD135 std SerHeadXmit-1
00FFEB77 0DD137 std SerTailXmit-1
00FFEB79 00F139 clr SerRcvXon
00FFEB7B 00F140 clr SerRcvXoff
00FFEB7D 0150B6FFFFFFFE0 lda COREID
00FFEBEF 04F clra
00FFEBF0 05F clrb
00FFEBF1 0DD130 std SerHeadRcv-1
00FFEBF3 0DD132 std SerTailRcv-1
00FFEBF5 0DD135 std SerHeadXmit-1
00FFEBF7 0DD137 std SerTailXmit-1
00FFEBF9 00F139 clr SerRcvXon
00FFEBFB 00F140 clr SerRcvXoff
00FFEBFD 0150B6FFFFFFFE0 lda COREID
sini1:
00FFEB82 0B1FFC010 cmpa IOFocusID
00FFEB85 026FFB bne sini1
00FFEB87 0C6009 ldb #$09 ; dtr,rts active, rxint enabled, no parity
00FFEB89 0150F7FFFE30102 stb ACIA+ACIA_CMD
00FFEB8E 0C601F ldb #$1F ; baud 9600, 1 stop bit, 8 bit, internal baud gen
00FFEB90 0150F7FFFE30103 stb ACIA+ACIA_CTRL
00FFEB95 0C60A6 ldb #$0A6 ; diable fifos, reset fifos
00FFEB97 0150F7FFFE3010B stb ACIA+ACIA_CTRL2
00FFEB9C 039 rts
00FFEC02 0B1FFC010 cmpa IOFocusID
00FFEC05 026FFB bne sini1
00FFEC07 0C6009 ldb #$09 ; dtr,rts active, rxint enabled, no parity
00FFEC09 0150F7FFFE30102 stb ACIA+ACIA_CMD
00FFEC0E 0C601E ldb #$1E ; baud 9600, 1 stop bit, 8 bit, internal baud gen
00FFEC10 0150F7FFFE30103 stb ACIA+ACIA_CTRL
00FFEC15 0C60A6 ldb #$0A6 ; diable fifos, reset fifos
00FFEC17 0150F7FFFE3010B stb ACIA+ACIA_CTRL2
00FFEC1C 039 rts
;------------------------------------------------------------------------------
; SerialGetChar
2489,32 → 2472,32
;------------------------------------------------------------------------------
SerialGetChar:
00FFEB9D 034030 pshs x,y
00FFEB9F 18E000000 ldy #0
00FFEBA2 01A010 sei ; disable interrupts
00FFEBA4 08D082 bsr SerialRcvCount ; check number of chars in receive buffer
00FFEBA6 0C1008 cmpb #8 ; less than 8?
00FFEBA8 02200C bhi sgc2
00FFEBAA 0D6139 ldb SerRcvXon ; skip sending XON if already sent
00FFEBAC 026008 bne sgc2 ; XON already sent?
00FFEBAE 0C6011 ldb #XON ; if <8 send an XON
00FFEBB0 00F140 clr SerRcvXoff ; clear XOFF status
00FFEBB2 0D7139 stb SerRcvXon ; flag so we don't send it multiple times
00FFEBB4 08D052 bsr SerialPutChar
00FFEC1D 034030 pshs x,y
00FFEC1F 18E000000 ldy #0
00FFEC22 01A010 sei ; disable interrupts
00FFEC24 08D082 bsr SerialRcvCount ; check number of chars in receive buffer
00FFEC26 0C1008 cmpb #8 ; less than 8?
00FFEC28 02200C bhi sgc2
00FFEC2A 0D6139 ldb SerRcvXon ; skip sending XON if already sent
00FFEC2C 026008 bne sgc2 ; XON already sent?
00FFEC2E 0C6011 ldb #XON ; if <8 send an XON
00FFEC30 00F140 clr SerRcvXoff ; clear XOFF status
00FFEC32 0D7139 stb SerRcvXon ; flag so we don't send it multiple times
00FFEC34 08D052 bsr SerialPutChar
sgc2:
00FFEBB6 0D6131 ldb SerHeadRcv ; check if anything is in buffer
00FFEBB8 0D1133 cmpb SerTailRcv
00FFEBBA 02700A beq sgcNoChars ; no?
00FFEBBC 08EBFF000 ldx #SerRcvBuf
00FFEBBF 04F clra
00FFEBC0 0E6835 ldb b,x ; get byte from buffer
00FFEBC2 00C131 inc SerHeadRcv ; 4k wrap around
00FFEBC4 020003 bra sgcXit
00FFEC36 0D6131 ldb SerHeadRcv ; check if anything is in buffer
00FFEC38 0D1133 cmpb SerTailRcv
00FFEC3A 02700A beq sgcNoChars ; no?
00FFEC3C 08EBFF000 ldx #SerRcvBuf
00FFEC3F 04F clra
00FFEC40 0E6835 ldb b,x ; get byte from buffer
00FFEC42 00C131 inc SerHeadRcv ; 4k wrap around
00FFEC44 020003 bra sgcXit
sgcNoChars:
00FFEBC6 0CCFFFFFF ldd #-1
00FFEC46 0CCFFFFFF ldd #-1
sgcXit:
00FFEBC9 01C0EF cli
00FFEBCB 0350B0 puls x,y,pc
00FFEC49 01C0EF cli
00FFEC4B 0350B0 puls x,y,pc
;------------------------------------------------------------------------------
; SerialPeekChar
2534,19 → 2517,19
;------------------------------------------------------------------------------
SerialPeekChar:
00FFEBCD 034011 pshs x,ccr
00FFEBCF 01A010 sei
00FFEBD1 0D6131 ldb SerHeadRcv ; check if anything is in buffer
00FFEBD3 0D1133 cmpb SerTailRcv
00FFEBD5 027008 beq spcNoChars ; no?
00FFEBD7 08EBFF000 ldx #SerRcvBuf
00FFEBDA 04F clra
00FFEBDB 0E6815 ldb b,x ; get byte from buffer
00FFEBDD 020003 bra spcXit
00FFEC4D 034011 pshs x,ccr
00FFEC4F 01A010 sei
00FFEC51 0D6131 ldb SerHeadRcv ; check if anything is in buffer
00FFEC53 0D1133 cmpb SerTailRcv
00FFEC55 027008 beq spcNoChars ; no?
00FFEC57 08EBFF000 ldx #SerRcvBuf
00FFEC5A 04F clra
00FFEC5B 0E6815 ldb b,x ; get byte from buffer
00FFEC5D 020003 bra spcXit
spcNoChars:
00FFEBDF 0CCFFFFFF ldd #-1
00FFEC5F 0CCFFFFFF ldd #-1
spcXit:
00FFEBE2 035091 puls x,ccr,pc
00FFEC62 035091 puls x,ccr,pc
;------------------------------------------------------------------------------
; SerialPeekChar
2564,22 → 2547,22
;------------------------------------------------------------------------------
SerialPeekCharDirect:
00FFEBE4 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
00FFEBE9 0B1FFC010 cmpa IOFocusID
00FFEBEC 026014 bne spcd0001
00FFEC64 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
00FFEC69 0B1FFC010 cmpa IOFocusID
00FFEC6C 026014 bne spcd0001
; Disallow interrupts between status read and rx read.
00FFEBEE 01A010 sei
00FFEBF0 0150F6FFFE30101 ldb ACIA+ACIA_STAT
00FFEBF5 0C5008 bitb #8 ; look for Rx not empty
00FFEBF7 027009 beq spcd0001
00FFEBF9 04F clra
00FFEBFA 0150F6FFFE30100 ldb ACIA+ACIA_RX
00FFEBFF 01C0EF cli
00FFEC01 039 rts
00FFEC6E 01A010 sei
00FFEC70 0150F6FFFE30101 ldb ACIA+ACIA_STAT
00FFEC75 0C5008 bitb #8 ; look for Rx not empty
00FFEC77 027009 beq spcd0001
00FFEC79 04F clra
00FFEC7A 0150F6FFFE30100 ldb ACIA+ACIA_RX
00FFEC7F 01C0EF cli
00FFEC81 039 rts
spcd0001:
00FFEC02 0CCFFFFFF ldd #-1
00FFEC05 01C0EF cli
00FFEC07 039 rts
00FFEC82 0CCFFFFFF ldd #-1
00FFEC85 01C0EF cli
00FFEC87 039 rts
;------------------------------------------------------------------------------
; SerialPutChar
2595,20 → 2578,20
;------------------------------------------------------------------------------
SerialPutChar:
00FFEC08 034003 pshs a,ccr
00FFEC88 034003 pshs a,ccr
spc0001:
00FFEC0A 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
00FFEC0F 0B1FFC010 cmpa IOFocusID
00FFEC12 026FF6 bne spc0001
00FFEC14 01C0EF cli ; provide a window for an interrupt to occur
00FFEC16 01A010 sei
00FFEC8A 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
00FFEC8F 0B1FFC010 cmpa IOFocusID
00FFEC92 026FF6 bne spc0001
00FFEC94 01C0EF cli ; provide a window for an interrupt to occur
00FFEC96 01A010 sei
; Between the status read and the transmit do not allow an
; intervening interrupt.
00FFEC18 0150B6FFFE30101 lda ACIA+ACIA_STAT ; wait until the uart indicates tx empty
00FFEC1D 085010 bita #16 ; bit #4 of the status reg
00FFEC1F 027FE9 beq spc0001 ; branch if transmitter is not empty
00FFEC21 0150F7FFFE30100 stb ACIA+ACIA_TX ; send the byte
00FFEC26 035083 puls a,ccr,pc
00FFEC98 0150B6FFFE30101 lda ACIA+ACIA_STAT ; wait until the uart indicates tx empty
00FFEC9D 085010 bita #16 ; bit #4 of the status reg
00FFEC9F 027FE9 beq spc0001 ; branch if transmitter is not empty
00FFECA1 0150F7FFFE30100 stb ACIA+ACIA_TX ; send the byte
00FFECA6 035083 puls a,ccr,pc
;------------------------------------------------------------------------------
; Calculate number of character in input buffer
2620,15 → 2603,15
;------------------------------------------------------------------------------
SerialRcvCount:
00FFEC28 04F clra
00FFEC29 0E6A08133 ldb SerTailRcv,y
00FFEC2C 0E0A08131 subb SerHeadRcv,y
00FFEC2F 02C009 bge srcXit
00FFEC31 0CC001000 ldd #$1000
00FFEC34 0A3A08131 subd SerHeadRcv,y
00FFEC37 0E3A08133 addd SerTailRcv,y
00FFECA8 04F clra
00FFECA9 0E6A08133 ldb SerTailRcv,y
00FFECAC 0E0A08131 subb SerHeadRcv,y
00FFECAF 02C009 bge srcXit
00FFECB1 0CC001000 ldd #$1000
00FFECB4 0A3A08131 subd SerHeadRcv,y
00FFECB7 0E3A08133 addd SerTailRcv,y
srcXit:
00FFEC3A 039 rts
00FFECBA 039 rts
;------------------------------------------------------------------------------
; Serial IRQ routine
2647,50 → 2630,50
SerialIRQ:
sirqNxtByte:
00FFEC3B 0150F6FFFE30101 ldb ACIA+ACIA_STAT ; check the status
00FFEC40 0C5008 bitb #$08 ; bit 3 = rx full
00FFEC42 027049 beq notRxInt
00FFEC44 0150F6FFFE30100 ldb ACIA+ACIA_RX ; get data from Rx buffer to clear interrupt
00FFEC49 0C1014 cmpb #CTRLT ; detect special keystroke
00FFEC4B 026000 bne sirq0001
00FFECBB 0150F6FFFE30101 ldb ACIA+ACIA_STAT ; check the status
00FFECC0 0C5008 bitb #$08 ; bit 3 = rx full
00FFECC2 027049 beq notRxInt
00FFECC4 0150F6FFFE30100 ldb ACIA+ACIA_RX ; get data from Rx buffer to clear interrupt
00FFECC9 0C1014 cmpb #CTRLT ; detect special keystroke
00FFECCB 026000 bne sirq0001
; bsr DumpTraceQueue
sirq0001:
00FFEC4D 034004 pshs b
00FFECCD 034004 pshs b
; Compute receive buffer address
00FFEC4F 0B6FFC010 lda IOFocusID
00FFEC52 048 asla
00FFEC53 048 asla
00FFEC54 048 asla
00FFEC55 048 asla
00FFEC56 08AC00 ora #$C00
00FFEC58 05F clrb
00FFEC59 01F002 tfr d,y
00FFEC5B 035004 puls b
00FFEC5D 0A6A08133 lda SerTailRcv,y ; check if recieve buffer full
00FFEC60 04C inca
00FFEC61 0A1A08131 cmpa SerHeadRcv,y
00FFEC64 027027 beq sirqRxFull
00FFEC66 0A7A08133 sta SerTailRcv,y ; update tail pointer
00FFEC69 04A deca ; backup
00FFEC6A 01E089 exg a,b
00FFEC6C 030A0A000BFF000 leax SerRcvBuf,y ; x = buffer address
00FFEC71 0A7A0F sta b,x ; store recieved byte in buffer
00FFEC73 06DA08140 tst SerRcvXoff,y ; check if xoff already sent
00FFEC76 026FC3 bne sirqNxtByte
00FFEC78 08DFAE bsr SerialRcvCount ; if more than 4080 chars in buffer
00FFEC7A 0C1FF0 cmpb #4080
00FFEC7C 025FBD blo sirqNxtByte
00FFEC7E 0C6013 ldb #XOFF ; send an XOFF
00FFEC80 06FA08139 clr SerRcvXon,y ; clear XON status
00FFEC83 0E7A08140 stb SerRcvXoff,y ; set XOFF status
00FFEC86 0150F7FFFE30100 stb ACIA+ACIA_TX
00FFEC8B 020FAE bra sirqNxtByte ; check the status for another byte
00FFECCF 0B6FFC010 lda IOFocusID
00FFECD2 048 asla
00FFECD3 048 asla
00FFECD4 048 asla
00FFECD5 048 asla
00FFECD6 08AC00 ora #$C00
00FFECD8 05F clrb
00FFECD9 01F002 tfr d,y
00FFECDB 035004 puls b
00FFECDD 0A6A08133 lda SerTailRcv,y ; check if recieve buffer full
00FFECE0 04C inca
00FFECE1 0A1A08131 cmpa SerHeadRcv,y
00FFECE4 027027 beq sirqRxFull
00FFECE6 0A7A08133 sta SerTailRcv,y ; update tail pointer
00FFECE9 04A deca ; backup
00FFECEA 01E089 exg a,b
00FFECEC 030A0A000BFF000 leax SerRcvBuf,y ; x = buffer address
00FFECF1 0A7A0F sta b,x ; store recieved byte in buffer
00FFECF3 06DA08140 tst SerRcvXoff,y ; check if xoff already sent
00FFECF6 026FC3 bne sirqNxtByte
00FFECF8 08DFAE bsr SerialRcvCount ; if more than 4080 chars in buffer
00FFECFA 0C1FF0 cmpb #4080
00FFECFC 025FBD blo sirqNxtByte
00FFECFE 0C6013 ldb #XOFF ; send an XOFF
00FFED00 06FA08139 clr SerRcvXon,y ; clear XON status
00FFED03 0E7A08140 stb SerRcvXoff,y ; set XOFF status
00FFED06 0150F7FFFE30100 stb ACIA+ACIA_TX
00FFED0B 020FAE bra sirqNxtByte ; check the status for another byte
sirqRxFull:
notRxInt:
00FFEC8D 039 rts
00FFED0D 039 rts
nmeSerial:
00FFEC8E 05306507206906106C000 fcb "Serial",0
00FFED0E 05306507206906106C000 fcb "Serial",0
;------------------------------------------------------------------------------
; Put a string to the serial port.
2704,16 → 2687,16
;------------------------------------------------------------------------------
SerialPutString:
00FFEC95 034016 pshs d,x
00FFEC97 01F001 tfr d,x
00FFED15 034016 pshs d,x
00FFED17 01F001 tfr d,x
sps2:
00FFEC99 0E6804 ldb ,x
00FFEC9B 027006 beq spsXit
00FFEC9D 030001 inx
00FFEC9F 08DF67 bsr SerialPutChar
00FFECA1 020FF6 bra sps2
00FFED19 0E6804 ldb ,x
00FFED1B 027006 beq spsXit
00FFED1D 030001 inx
00FFED1F 08DF67 bsr SerialPutChar
00FFED21 020FF6 bra sps2
spsXit:
00FFECA3 035096 puls d,x,pc
00FFED23 035096 puls d,x,pc
;------------------------------------------------------------------------------
; A little routine to test serial output.
2727,29 → 2710,328
;------------------------------------------------------------------------------
SerialOutputTest:
00FFECA5 034006 pshs d
00FFECA7 0CCFFECC5 ldd #msgSerialTest
00FFECAA 017FFF712 lbsr DisplayString
00FFED25 034006 pshs d
00FFED27 0CCFFED45 ldd #msgSerialTest
00FFED2A 017FFF6AD lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFECAD 08DEC0 bsr SerialInit
00FFED2D 08DEC0 bsr SerialInit
sotst1:
00FFECAF 0C6011 ldb #XON
00FFECB1 08DF55 bsr SerialPutChar
00FFECB3 08DF53 bsr SerialPutChar
00FFECB5 08DF51 bsr SerialPutChar
00FFECB7 0CCFFECC5 ldd #msgSerialTest
00FFECBA 08DFD9 bsr SerialPutString
00FFECBC 01700001B lbsr INCH
00FFECBF 0C1003 cmpb #CTRLC
00FFECC1 026FEC bne sotst1
00FFECC3 035086 puls d,pc
00FFED2F 0C6011 ldb #XON
00FFED31 08DF55 bsr SerialPutChar
00FFED33 08DF53 bsr SerialPutChar
00FFED35 08DF51 bsr SerialPutChar
00FFED37 0CCFFED45 ldd #msgSerialTest
00FFED3A 08DFD9 bsr SerialPutString
00FFED3C 01700016A lbsr INCH
00FFED3F 0C1003 cmpb #CTRLC
00FFED41 026FEC bne sotst1
00FFED43 035086 puls d,pc
msgSerialTest:
00FFECC5 05306507206906106C020 fcb "Serial port test",CR,LF,0
00FFECCC 07006F072074020074065
00FFECD3 07307400D00A000
00FFED45 05306507206906106C020 fcb "Serial port test",CR,LF,0
00FFED4C 07006F072074020074065
00FFED53 07307400D00A000
; ============================================================================
; __
; \\__/ o\ (C) 2022 Robert Finch, Waterloo
; \ __ / All rights reserved.
; \/_// robfinch<remove>@opencores.org
; ||
;
;
; BSD 3-Clause License
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
; 1. Redistributions of source code must retain the above copyright notice, this
; list of conditions and the following disclaimer.
;
; 2. Redistributions in binary form must reproduce the above copyright notice,
; this list of conditions and the following disclaimer in the documentation
; and/or other materials provided with the distribution.
;
; 3. Neither the name of the copyright holder nor the names of its
; contributors may be used to endorse or promote products derived from
; this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
; ============================================================================
;
s19Address EQU $940 ; to $943
s19StartAddress EQU $944 ; to $947
s19Rectype EQU $948
s19Reclen EQU $949
s19Abort EQU $94A
; ------------------------------------------------------------------------------
; Skip over input to the next record.
; ------------------------------------------------------------------------------
s19NextRecord:
00FFED58 0CCFFFFFF ldd #-1 ; block until input is available
00FFED5B 03F swi
00FFED5C 001 fcb MF_INCH ; monitor input rout
00FFED5D 0C100A cmpb #LF ; line feed marks end of record
00FFED5F 027013 beq s19nr1
00FFED61 0C1003 cmpb #CTRLC ; should not get this in a file transfer
00FFED63 026003 bne s19nr2
00FFED65 0F700094A stb s19Abort
s19nr2:
00FFED68 0C101A cmpb #CTRLZ ; end of file marker?
00FFED6A 026003 bne s19nr3
00FFED6C 0F700094A stb s19Abort
s19nr3:
00FFED6F 07D00094A tst s19Abort
00FFED72 027FE4 beq s19NextRecord
s19nr1:
00FFED74 039 rts
; ------------------------------------------------------------------------------
; Input a byte. There are three characters per byte since things are 12-bit.
;
; Parameters:
; none
; Returns:
; accb = byte value converted from text
; ------------------------------------------------------------------------------
s19GetByte:
00FFED75 03F swi
00FFED76 001 fcb MF_INCH ; get the first character
00FFED77 0170004F6 lbsr AsciiToHexNybble ; convert to nybble
00FFED7A 07D00094A tst s19Abort ; check for abort
00FFED7D 027002 beq s19gb1
00FFED7F 04F clra
00FFED80 039 rts
s19gb1: ; shift the value four bits
00FFED81 058 aslb
00FFED82 058 aslb
00FFED83 058 aslb
00FFED84 058 aslb
00FFED85 034004 pshs b ; save off value
00FFED87 03F swi
00FFED88 001 fcb MF_INCH ; get the second character
00FFED89 0170004E4 lbsr AsciiToHexNybble ; convert to nybble
00FFED8C 07D00094A tst s19Abort ; check for abort
00FFED8F 026011 bne s19gb2
00FFED91 0EAE00 orb ,s+ ; merge new nybble into value
00FFED93 058 aslb ; shift the value four more bits
00FFED94 058 aslb
00FFED95 058 aslb
00FFED96 058 aslb
00FFED97 034004 pshs b ; save off value
00FFED99 03F swi
00FFED9A 001 fcb MF_INCH ; get third character
00FFED9B 0170004D2 lbsr AsciiToHexNybble ; convert to nybble
00FFED9E 0EAE00 orb ,s+ ; merge in value
00FFEDA0 04F clra ; make byte 000 to FFF in D
00FFEDA1 039 rts
s19gb2:
00FFEDA2 032601 leas 1,s ; discard saved byte
00FFEDA4 04F clra
00FFEDA5 039 rts
; ------------------------------------------------------------------------------
; Zero out address
; ------------------------------------------------------------------------------
s19ClearAddress:
00FFEDA6 07F000940 clr s19Address
00FFEDA9 07F000941 clr s19Address+1
00FFEDAC 07F000942 clr s19Address+2
00FFEDAF 07F000943 clr s19Address+3
00FFEDB2 039 rts
; ------------------------------------------------------------------------------
; Get an address composed of two bytes (24 bit)
;
; Side Effects:
; updates s19Address variable
; Returns:
; none
; ------------------------------------------------------------------------------
s19GetAddress2:
00FFEDB3 08DFF1 bsr s19ClearAddress
00FFEDB5 08DFBE bsr s19GetByte
00FFEDB7 0F7000942 stb s19Address+2
00FFEDBA 07D00094A tst s19Abort
00FFEDBD 026005 bne s19ga1
00FFEDBF 08DFB4 bsr s19GetByte
00FFEDC1 0F7000943 stb s19Address+3
s19ga1:
00FFEDC4 039 rts
; ------------------------------------------------------------------------------
; Get an address composed of three bytes (36 bit)
;
; Side Effects:
; updates s19Address variable
; Returns:
; none
; ------------------------------------------------------------------------------
s19GetAddress3:
00FFEDC5 08DFDF bsr s19ClearAddress
00FFEDC7 08DFAC bsr s19GetByte
00FFEDC9 0F7000941 stb s19Address+1
00FFEDCC 07D00094A tst s19Abort
00FFEDCF 02600F bne s19ga2
00FFEDD1 08DFA2 bsr s19GetByte
00FFEDD3 0F7000942 stb s19Address+2
00FFEDD6 07D00094A tst s19Abort
00FFEDD9 026005 bne s19ga2
00FFEDDB 08DF98 bsr s19GetByte
00FFEDDD 0F7000943 stb s19Address+3
s19ga2:
00FFEDE0 039 rts
; ------------------------------------------------------------------------------
; Put a byte to memory.
; ------------------------------------------------------------------------------
s19PutMem:
00FFEDE1 05F clrb ; accb = current byte count
s19pm3:
00FFEDE2 034004 pshs b ; save byte count
00FFEDE4 08DF8F bsr s19GetByte
00FFEDE6 07D00094A tst s19Abort
00FFEDE9 02601C bne s19pm1
00FFEDEB 0150E790F000941 stb far [s19Address+1] ; store the byte using far addressing
00FFEDF0 07C000943 inc s19Address+3
00FFEDF3 026008 bne s19pm2
00FFEDF5 07C000942 inc s19Address+2
00FFEDF8 026003 bne s19pm2
00FFEDFA 07C000941 inc s19Address+1
s19pm2:
00FFEDFD 035004 puls b ; get back byte count
00FFEDFF 05C incb ; increment and
00FFEE00 0F1000949 cmpb s19Reclen ; compare to record length
00FFEE03 025FDD blo s19pm3
00FFEE05 020F6E bra s19GetByte ; get the checksum byte
s19pm1:
00FFEE07 032601 leas 1,s ; faster than actual pull
00FFEE09 020F6A bra s19GetByte ; get the checksum byte
; ------------------------------------------------------------------------------
; Processing for S1 record type.
; ------------------------------------------------------------------------------
s19ProcessS1:
00FFEE0B 08DFA6 bsr s19GetAddress2
00FFEE0D 08DFD2 bsr s19PutMem
00FFEE0F 020072 bra s19lnr
; ------------------------------------------------------------------------------
; Processing for S2 record type.
; ------------------------------------------------------------------------------
s19ProcessS2:
00FFEE11 08DFB2 bsr s19GetAddress3
00FFEE13 08DFCC bsr s19PutMem
00FFEE15 02006C bra s19lnr
; S3,4,5,6 not processed
; ------------------------------------------------------------------------------
; Processing for S7 record type. Gets a two byte (24 bit) start address.
; ------------------------------------------------------------------------------
s19ProcessS9:
00FFEE17 08DF9A bsr s19GetAddress2
00FFEE19 0FC000942 ldd s19Address+2
00FFEE1C 0FD000946 std s19StartAddress+2
00FFEE1F 0FC000940 ldd s19Address+0
00FFEE22 0FD000944 std s19StartAddress+0
00FFEE25 020069 bra s19l2
; ------------------------------------------------------------------------------
; Processing for S8 record type. Gets a three byte (36 bit) start address.
; ------------------------------------------------------------------------------
s19ProcessS8:
00FFEE27 08DF9C bsr s19GetAddress3
00FFEE29 0FC000942 ldd s19Address+2
00FFEE2C 0FD000946 std s19StartAddress+2
00FFEE2F 0FC000940 ldd s19Address+0
00FFEE32 0FD000944 std s19StartAddress+0
00FFEE35 020059 bra s19l2
; ------------------------------------------------------------------------------
; S19 Loader
;
; Not all record types are processed. Some are skipped over.
; ------------------------------------------------------------------------------
S19Loader:
00FFEE37 07F00094A clr s19Abort ; clear the abort flag
00FFEE3A 0CCFFEE93 ldd #msgS19Loader ; signon banner
00FFEE3D 03F swi
00FFEE3E 004 fcb MF_DisplayString
s19l3:
00FFEE3F 03F swi ; get a character from input
00FFEE40 001 fcb MF_INCH
00FFEE41 0C101A cmpb #CTRLZ ; is it CTRL-Z?
00FFEE43 02704B beq s19l2
00FFEE45 0C1053 cmpb #'S' ; records must start with the letter S
00FFEE47 02603A bne s19lnr
00FFEE49 03F swi ; get the next character
00FFEE4A 001 fcb MF_INCH
00FFEE4B 0C1030 cmpb #'0' ; must be a numeric digit
00FFEE4D 025034 blo s19lnr
00FFEE4F 0C1039 cmpb #'9'
00FFEE51 022030 bhi s19lnr
00FFEE53 0F7000948 stb s19Rectype ; save off in record type
00FFEE56 08DF1D bsr s19GetByte ; get a byte indicating record length
00FFEE58 0F7000949 stb s19Reclen
00FFEE5B 07D00094A tst s19Abort ; check for abort
00FFEE5E 026030 bne s19l2
00FFEE60 0F6000948 ldb s19Rectype ; process according to record type
00FFEE63 0C1030 cmpb #'0'
00FFEE65 02701C beq s19lnr
00FFEE67 0C1031 cmpb #'1'
00FFEE69 027FA0 beq s19ProcessS1 ; data record with a two byte address
00FFEE6B 0C1032 cmpb #'2'
00FFEE6D 027FA2 beq s19ProcessS2 ; data record with a three byte address
00FFEE6F 0C1033 cmpb #'3'
00FFEE71 027010 beq s19lnr
00FFEE73 0C1035 cmpb #'5' ; record count? ignore
00FFEE75 02700C beq s19lnr
00FFEE77 0C1037 cmpb #'7' ; ignore record with 48 bit address
00FFEE79 027015 beq s19l2
00FFEE7B 0C1038 cmpb #'8'
00FFEE7D 027FA8 beq s19ProcessS8 ; two byte start address
00FFEE7F 0C1039 cmpb #'9'
00FFEE81 027F94 beq s19ProcessS9 ; three byte start address
s19lnr:
00FFEE83 0C602E ldb #'.' ; output a progress indicator
00FFEE85 03F swi
00FFEE86 002 fcb MF_OUTCH
00FFEE87 08DECF bsr s19NextRecord ; skip to the next record
00FFEE89 07D00094A tst S19Abort ; check for abort
00FFEE8C 026002 bne s19l2
00FFEE8E 020FAF bra s19l3 ; loop back to process more records
s19l2:
00FFEE90 0160001A6 lbra Monitor
msgS19Loader:
00FFEE93 05303103902004C06F061 fcb "S19 Loader Active",CR,LF,0
00FFEE9A 064065072020041063074
00FFEEA1 06907606500D00A000
;------------------------------------------------------------------------------
; Check if there is a keyboard character available. If so return true (<0)
; otherwise return false (0) in accb.
2756,54 → 3038,54
;------------------------------------------------------------------------------
;
KeybdCheckForKeyDirect:
00FFECD8 020D36 bra DBGCheckForKey
00FFEEA7 020BE7 bra DBGCheckForKey
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
INCH:
00FFECDA 034004 pshs b
00FFEEA9 034004 pshs b
INCH2:
00FFECDC 0150F6FFFFFFFE0 ldb COREID
00FFECE1 0F1FFC010 cmpb IOFocusID ; if we do not have focus, block
00FFECE4 026FF6 bne INCH2
00FFEEAB 0150F6FFFFFFFE0 ldb COREID
00FFEEB0 0F1FFC010 cmpb IOFocusID ; if we do not have focus, block
00FFEEB3 026FF6 bne INCH2
; ldb #$800 ; block if no key available, get scancode directly
; bra GetKey
; jsr [CharInVec] ; vector is being overwritten somehow
00FFECE6 017FFFEFB lbsr SerialPeekCharDirect
00FFEEB5 017FFFDAC lbsr SerialPeekCharDirect
*** warning 1: Long branch within short branch range could be optimized
00FFECE9 04D tsta
00FFECEA 02B003 bmi INCH1 ; block if no key available
00FFECEC 032601 leas 1,s ; get rid of blocking status
00FFECEE 039 rts
00FFEEB8 04D tsta
00FFEEB9 02B003 bmi INCH1 ; block if no key available
00FFEEBB 032601 leas 1,s ; get rid of blocking status
00FFEEBD 039 rts
INCH1:
00FFECEF 035004 puls b ; check blocking status
00FFECF1 05D tstb
00FFECF2 02BFE6 bmi INCH ; if blocking, loop
00FFECF4 0CCFFFFFF ldd #-1 ; return -1 if no char available
00FFECF7 039 rts
00FFEEBE 035004 puls b ; check blocking status
00FFEEC0 05D tstb
00FFEEC1 02BFE6 bmi INCH ; if blocking, loop
00FFEEC3 0CCFFFFFF ldd #-1 ; return -1 if no char available
00FFEEC6 039 rts
INCHE:
00FFECF8 08DFE0 bsr INCH
00FFECFA 020009 bra INCHEK3
00FFEEC7 08DFE0 bsr INCH
00FFEEC9 020009 bra INCHEK3
INCHEK:
00FFECFC 08DFDC bsr INCH
00FFECFE 01507DFFFFFCA00 tst KeybdEcho
00FFED03 02700C beq INCHEK1
00FFEECB 08DFDC bsr INCH
00FFEECD 01507DFFFFFCA00 tst KeybdEcho
00FFEED2 02700C beq INCHEK1
INCHEK3:
00FFED05 08100D cmpa #CR
00FFED07 026005 bne INCHEK2
00FFED09 017FFE3C6 lbsr CRLF
00FFEED4 08100D cmpa #CR
00FFEED6 026005 bne INCHEK2
00FFEED8 017FFE1F7 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
00FFED0C 020003 bra INCHEK1
00FFEEDB 020003 bra INCHEK1
INCHEK2:
00FFED0E 017FFF5ED lbsr DisplayChar
00FFEEDD 017FFF439 lbsr DisplayChar
*** warning 1: Long branch within short branch range could be optimized
INCHEK1:
00FFED11 039 rts
00FFEEE0 039 rts
OUTCH:
00FFED12 06E90F000800 jmp [CharOutVec]
00FFEEE1 06E90F000800 jmp [CharOutVec]
;------------------------------------------------------------------------------
; r1 0=echo off, non-zero = echo on
2810,8 → 3092,8
;------------------------------------------------------------------------------
;
SetKeyboardEcho:
00FFED16 0150F7FFFFFCA00 stb KeybdEcho
00FFED1B 039 rts
00FFEEE5 0150F7FFFFFCA00 stb KeybdEcho
00FFEEEA 039 rts
;------------------------------------------------------------------------------
2820,9 → 3102,9
;------------------------------------------------------------------------------
ShowSprites:
00FFED1C 0150BFFFFE103C0 stx SPRITE_CTRL+SPRITE_EN
00FFED21 0150FDFFFE103C2 std SPRITE_CTRL+SPRITE_EN+2
00FFED26 039 rts
00FFEEEB 0150BFFFFE103C0 stx SPRITE_CTRL+SPRITE_EN
00FFEEF0 0150FDFFFE103C2 std SPRITE_CTRL+SPRITE_EN+2
00FFEEF5 039 rts
;==============================================================================
; Femtiki Operating System.
2829,74 → 3111,74
;==============================================================================
OSCallTbl:
00FFED27 000000 fcw 0
00FFED29 000000 fcw 0
00FFED2B 000000 fcw 0
00FFED2D 000000 fcw 0
00FFED2F 000000 fcw 0
00FFED31 000000 fcw 0
00FFED33 000000 fcw 0
00FFED35 000000 fcw 0
00FFED37 000000 fcw 0
00FFED39 000000 fcw 0
00FFED3B 000000 fcw 0
00FFED3D 000000 fcw 0
00FFED3F 000000 fcw 0
00FFED41 000000 fcw 0
00FFED43 000000 fcw 0
00FFED45 000000 fcw 0
00FFED47 000000 fcw 0
00FFED49 000000 fcw 0
00FFED4B 000000 fcw 0
00FFED4D 000000 fcw 0
00FFED4F 000000 fcw 0
00FFED51 000000 fcw 0
00FFED53 FFED70 fcw ReleaseIOFocus
00FFED55 000000 fcw 0
00FFED57 FFED59 fcw RequestIOFocus
00FFEEF6 000000 fcw 0
00FFEEF8 000000 fcw 0
00FFEEFA 000000 fcw 0
00FFEEFC 000000 fcw 0
00FFEEFE 000000 fcw 0
00FFEF00 000000 fcw 0
00FFEF02 000000 fcw 0
00FFEF04 000000 fcw 0
00FFEF06 000000 fcw 0
00FFEF08 000000 fcw 0
00FFEF0A 000000 fcw 0
00FFEF0C 000000 fcw 0
00FFEF0E 000000 fcw 0
00FFEF10 000000 fcw 0
00FFEF12 000000 fcw 0
00FFEF14 000000 fcw 0
00FFEF16 000000 fcw 0
00FFEF18 000000 fcw 0
00FFEF1A 000000 fcw 0
00FFEF1C 000000 fcw 0
00FFEF1E 000000 fcw 0
00FFEF20 000000 fcw 0
00FFEF22 FFEF3F fcw ReleaseIOFocus
00FFEF24 000000 fcw 0
00FFEF26 FFEF28 fcw RequestIOFocus
NumOSFuncs EQU (*-OSCallTbl)/2
RequestIOFocus:
00FFED59 0150F6FFFFFFFE0 ldb COREID
00FFED5E 08EFFC000 ldx #IOFocusList
00FFED61 03A abx
00FFED62 0A7804 sta ,x
00FFED64 07DFFC010 tst IOFocusID
00FFED67 1260006FF lbne oscx
00FFED6A 0F7FFC010 stb IOFocusID
00FFED6D 0160006F9 lbra oscx
00FFEF28 0150F6FFFFFFFE0 ldb COREID
00FFEF2D 08EFFC000 ldx #IOFocusList
00FFEF30 03A abx
00FFEF31 0A7804 sta ,x
00FFEF33 07DFFC010 tst IOFocusID
00FFEF36 1260007D1 lbne oscx
00FFEF39 0F7FFC010 stb IOFocusID
00FFEF3C 0160007CB lbra oscx
ReleaseIOFocus:
00FFED70 0150F6FFFFFFFE0 ldb COREID
00FFED75 08EFFC000 ldx #IOFocusList
00FFED78 03A abx
00FFED79 06F804 clr ,x ; clear the request indicator
00FFED7B 017FFF480 lbsr CopyScreenToVirtualScreen
00FFEF3F 0150F6FFFFFFFE0 ldb COREID
00FFEF44 08EFFC000 ldx #IOFocusList
00FFEF47 03A abx
00FFEF48 06F804 clr ,x ; clear the request indicator
00FFEF4A 017FFF2BC lbsr CopyScreenToVirtualScreen
*** warning 1: Long branch within short branch range could be optimized
00FFED7E 0F1FFC010 cmpb IOFocusID ; are we the one with the focus?
00FFED81 1260006E5 lbne oscx
00FFEF4D 0F1FFC010 cmpb IOFocusID ; are we the one with the focus?
00FFEF50 1260007B7 lbne oscx
; We had the focus, so now a new core needs the focus.
; Search the focus list for a requestor. If no requester
; is found, give focus to core #1.
00FFED84 08600F lda #15
00FFEF53 08600F lda #15
riof2:
00FFED86 05C incb
00FFED87 0C400F andb #15
00FFED89 03A abx
00FFED8A 06D804 tst ,x
00FFED8C 026009 bne riof1
00FFED8E 04A deca
00FFED8F 026FF5 bne riof2
00FFEF55 05C incb
00FFEF56 0C400F andb #15
00FFEF58 03A abx
00FFEF59 06D804 tst ,x
00FFEF5B 026009 bne riof1
00FFEF5D 04A deca
00FFEF5E 026FF5 bne riof2
; If no focus is requested by anyone, give to core #1
00FFED91 0C6001 ldb #1
00FFED93 086018 lda #24
00FFED95 0A7804 sta ,x
00FFEF60 0C6001 ldb #1
00FFEF62 086018 lda #24
00FFEF64 0A7804 sta ,x
riof1:
00FFED97 0F7FFC010 stb IOFocusID
00FFED9A 017FFF42A lbsr CopyVirtualScreenToScreen
00FFEF66 0F7FFC010 stb IOFocusID
00FFEF69 017FFF266 lbsr CopyVirtualScreenToScreen
*** warning 1: Long branch within short branch range could be optimized
00FFED9D 0160006C9 lbra oscx
00FFEF6C 01600079B lbra oscx
;==============================================================================
2914,19 → 3196,19
;------------------------------------------------------------------------------
mon_srand:
00FFEDA0 18E000000 ldy #0
00FFEF6F 18E000000 ldy #0
mon_srand1:
00FFEDA3 0151BFFFFE30604 sty PRNG+4 ; select channel
00FFEDA8 01507FFFFE30608 clr PRNG+8
00FFEDAD 01507FFFFE30609 clr PRNG+9
00FFEDB2 0150FDFFFE3060A std PRNG+10 ; update low half of value
00FFEDB7 01507FFFFE3060C clr PRNG+12
00FFEDBC 01507FFFFE3060D clr PRNG+13
00FFEDC1 0150BFFFFE3060E stx PRNG+14 ; update low half of value
00FFEDC6 031201 iny
00FFEDC8 18C000400 cmpy #$400 ; 1k channels
00FFEDCB 025FD6 blo mon_srand1
00FFEDCD 039 rts
00FFEF72 0151BFFFFE30604 sty PRNG+4 ; select channel
00FFEF77 01507FFFFE30608 clr PRNG+8
00FFEF7C 01507FFFFE30609 clr PRNG+9
00FFEF81 0150FDFFFE3060A std PRNG+10 ; update low half of value
00FFEF86 01507FFFFE3060C clr PRNG+12
00FFEF8B 01507FFFFE3060D clr PRNG+13
00FFEF90 0150BFFFFE3060E stx PRNG+14 ; update low half of value
00FFEF95 031201 iny
00FFEF97 18C000400 cmpy #$400 ; 1k channels
00FFEF9A 025FD6 blo mon_srand1
00FFEF9C 039 rts
;------------------------------------------------------------------------------
; Get a random number and generate the next one.
2938,217 → 3220,237
;------------------------------------------------------------------------------
mon_rand:
00FFEDCE 0150FDFFFE30604 std PRNG+4 ; select channel
00FFEDD3 0150BEFFFE30600 ldx PRNG+0
00FFEDD8 0150FCFFFE30602 ldd PRNG+2
00FFEDDD 0150F7FFFE30603 stb PRNG+3 ; trigger calc of next number
00FFEDE2 039 rts
00FFEF9D 0150FDFFFE30604 std PRNG+4 ; select channel
00FFEFA2 0150BEFFFE30600 ldx PRNG+0
00FFEFA7 0150FCFFFE30602 ldd PRNG+2
00FFEFAC 0150F7FFFE30603 stb PRNG+3 ; trigger calc of next number
00FFEFB1 039 rts
;==============================================================================
; System Monitor
;==============================================================================
; Command Table
; Command Tables
cmdTable1:
00FFEDE3 03C83E fcb '<','>'+$800
00FFEDE5 062873 fcb 'b','s'+$800
00FFEDE7 062863 fcb 'b','c'+$800
00FFEDE9 044852 fcb 'D','R'+$800
00FFEDEB 844 fcb 'D'+$800
00FFEDEC 83A fcb ':'+$800
00FFEDED 046049847 fcb "FI",'G'+$800
00FFEDF0 04604984C fcb "FI",'L'+$800
00FFEDF3 04684C fcb 'F','L'+$800
00FFEDF5 84A fcb 'J'+$800
00FFEDF6 05204104D054045053854 fcb "RAMTES",'T'+$800
00FFEDFD 053050844 fcb "SP",'D'+$800
00FFEE00 054049852 fcb "TI",'R'+$800
00FFEE03 855 fcb 'U'+$800
00FFEE04 065078069874 fcb "exi",'t'+$800
00FFEE08 83F fcb '?'+$800
00FFEE09 04304C853 fcb "CL",'S'+$800
00FFEE0C 000000 fcw 0
00FFEFB2 03C83E fcb '<','>'+$800
00FFEFB4 062873 fcb 'b','s'+$800
00FFEFB6 062863 fcb 'b','c'+$800
00FFEFB8 044852 fcb 'D','R'+$800
00FFEFBA 844 fcb 'D'+$800
00FFEFBB 83A fcb ':'+$800
00FFEFBC 046049847 fcb "FI",'G'+$800
00FFEFBF 04604984C fcb "FI",'L'+$800
00FFEFC2 04684C fcb 'F','L'+$800
00FFEFC4 84A fcb 'J'+$800
00FFEFC5 05204104D054045053854 fcb "RAMTES",'T'+$800
00FFEFCC 053050844 fcb "SP",'D'+$800
00FFEFCF 054049852 fcb "TI",'R'+$800
00FFEFD2 855 fcb 'U'+$800
00FFEFD3 065078069874 fcb "exi",'t'+$800
00FFEFD7 83F fcb '?'+$800
00FFEFD8 04304C853 fcb "CL",'S'+$800
00FFEFDB 053031839 fcb "S1",'9'+$800
00FFEFDE 04A044834 fcb "JD",'4'+$800
00FFEFE1 000000 fcw 0
cmdTable2:
00FFEE0E FFEF11 fcw Redirect
00FFEE10 FFF4AC fcw ArmBreakpoint
00FFEE12 FFF4D3 fcw DisarmBreakpoint
00FFEE14 FFF2CF fcw DumpRegs
00FFEE16 FFF209 fcw DumpMemory
00FFEE18 FFF265 fcw EditMemory
00FFEE1A FE0000 fcw $FE0000 ; FIG forth
00FFEE1C FFF2A5 fcw FillMemory
00FFEE1E FFF390 fcw DumpIOFocusList
00FFEE20 FFF31A fcw jump_to_code
00FFEE22 FFD443 fcw dramtest
00FFEE24 FF8000 fcw $FF8000 ; sprite demo
00FFEE26 FFE4D0 fcw rtc_read
00FFEE28 FF8003 fcw $FF8003 ; unassembler
00FFEE2A FFF451 fcw xitMonitor
00FFEE2C FFEF37 fcw PromptHelp
00FFEE2E FFEF3F fcw PromptClearscreen
00FFEFE3 FFF0F8 fcw Redirect
00FFEFE5 FFF13A fcw MonArmBreakpoint
00FFEFE7 FFF145 fcw MonDisarmBreakpoint
00FFEFE9 FFF54A fcw DumpRegs
00FFEFEB FFF484 fcw DumpMemory
00FFEFED FFF4E0 fcw EditMemory
00FFEFEF FE0000 fcw $FE0000 ; FIG forth
00FFEFF1 FFF520 fcw FillMemory
00FFEFF3 FFF60B fcw DumpIOFocusList
00FFEFF5 FFF595 fcw jump_to_code
00FFEFF7 FFD400 fcw $FFD400
00FFEFF9 FF8000 fcw $FF8000 ; sprite demo
00FFEFFB FFE4F4 fcw rtc_read
00FFEFFD FF8003 fcw $FF8003 ; unassembler
00FFEFFF FFF6F3 fcw xitMonitor
00FFF001 FFF11E fcw PromptHelp
00FFF003 FFF126 fcw PromptClearscreen
00FFF005 FFEE37 fcw S19Loader
00FFF007 FFD400 fcw $FFD400
CmdPrompt:
00FFEE30 017FFE29F lbsr CRLF
00FFF009 017FFE0C6 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
00FFEE33 0C6024 ldb #'$'
00FFEE35 017FFFEDA lbsr OUTCH
00FFF00C 0C6024 ldb #'$'
00FFF00E 017FFFED0 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFEE38 016FFFED7 lbra OUTCH
00FFF011 016FFFECD lbra OUTCH
*** warning 1: Long branch within short branch range could be optimized
msgF09Starting:
00FFEE3B 04606506D07406906B069 fcb "Femtiki F09 Multi-core OS Starting",CR,LF,0
00FFEE42 02004603003902004D075
00FFEE49 06C07406902D06306F072
00FFEE50 06502004F053020053074
00FFEE57 06107207406906E06700D
00FFEE5E 00A000
00FFF014 04606506D07406906B069 fcb "Femtiki F09 Multi-core OS Starting",CR,LF,0
00FFF01B 02004603003902004D075
00FFF022 06C07406902D06306F072
00FFF029 06502004F053020053074
00FFF030 06107207406906E06700D
00FFF037 00A000
MonitorStart:
00FFEE60 07F000810 clr BreakpointFlag
00FFEE63 07F000811 clr NumSetBreakpoints
00FFEE66 0CC00007B ldd #123
00FFEE69 08E00028E ldx #654
00FFEE6C 017FFFF31 lbsr mon_srand
Monitor:
00FFF039 0FC00092C ldd mon_init ; check special code to see if monitor has been initialized
00FFF03C 18312D687 cmpd #1234567
00FFF03F 02704D beq mon1
00FFF041 07F000810 clr BreakpointFlag
00FFF044 07F000811 clr NumSetBreakpoints
00FFF047 0CC00007B ldd #123
00FFF04A 08E00028E ldx #654
00FFF04D 017FFFF1F lbsr mon_srand
*** warning 1: Long branch within short branch range could be optimized
00FFEE6F 0CCFFEE3B ldd #msgF09Starting
00FFEE72 017FFF54A lbsr DisplayString
00FFF050 0CCFFF014 ldd #msgF09Starting
00FFF053 017FFF384 lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFEE75 0CCFFF06E ldd #HelpMsg
00FFEE78 017FFF544 lbsr DisplayString
00FFF056 0CCFFF2CF ldd #HelpMsg
00FFF059 017FFF37E lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFEE7B 0CCFFEE30 ldd #CmdPrompt
00FFEE7E 0FD000808 std CmdPromptJI
00FFEE81 0CCFFF055 ldd #DisplayErr
00FFEE84 0FD00080C std MonErrVec
00FFEE87 0CC0063FF ldd #$63FF ; default app stack
00FFEE8A 0FD000908 std mon_SSAVE
00FFEE8D 07F00090E clr mon_DPRSAVE ;
00FFEE90 01F0A8 tfr ccr,a
00FFEE92 0B700090F sta mon_CCRSAVE
00FFEE95 07F00090A clr mon_PCSAVE
00FFEE98 0CCFFEEA7 ldd #Monitor
00FFEE9B 0FD00090B std mon_PCSAVE+1
00FFEE9E 07F000902 clr mon_XSAVE
00FFEEA1 07F000904 clr mon_YSAVE
00FFEEA4 07F000906 clr mon_USAVE
Monitor:
00FFEEA7 03280F006FFF leas $6FFF ; reset stack pointer
00FFEEAB 05F clrb ; turn off keyboard echo
00FFEEAC 017FFFE67 lbsr SetKeyboardEcho
00FFF05C 0CCFFF009 ldd #CmdPrompt
00FFF05F 0FD000808 std CmdPromptJI
00FFF062 0CCFFF2B6 ldd #DisplayErr
00FFF065 0FD00080C std MonErrVec
00FFF068 0CC0063FF ldd #$63FF ; default app stack
00FFF06B 0FD000908 std mon_SSAVE
00FFF06E 07F00090E clr mon_DPRSAVE ;
00FFF071 01F0A8 tfr ccr,a
00FFF073 0B700090F sta mon_CCRSAVE
00FFF076 07F00090A clr mon_PCSAVE
00FFF079 0CCFFF039 ldd #Monitor
00FFF07C 0FD00090B std mon_PCSAVE+1
00FFF07F 07F000902 clr mon_XSAVE
00FFF082 07F000904 clr mon_YSAVE
00FFF085 07F000906 clr mon_USAVE
00FFF088 0CC12D687 ldd #1234567
00FFF08B 0FD00092C std mon_init
mon1:
00FFF08E 03280F006FFF leas $6FFF ; reset stack pointer
00FFF092 05F clrb ; turn off keyboard echo
00FFF093 017FFFE4F lbsr SetKeyboardEcho
*** warning 1: Long branch within short branch range could be optimized
; Reset IO vectors
00FFEEAF 0CCFFEBE4 ldd #SerialPeekCharDirect
00FFEEB2 0FD000804 std CharInVec
00FFEEB5 0CCFFE2FE ldd #DisplayChar
00FFEEB8 0FD000800 std CharOutVec
00FFEEBB 0CCFFEE30 ldd #CmdPrompt
00FFEEBE 0FD000808 std CmdPromptJI
00FFF096 0CCFFEC64 ldd #SerialPeekCharDirect
00FFF099 0FD000804 std CharInVec
00FFF09C 0CCFFE319 ldd #DisplayChar
00FFF09F 0FD000800 std CharOutVec
00FFF0A2 0CCFFF009 ldd #CmdPrompt
00FFF0A5 0FD000808 std CmdPromptJI
; jsr RequestIOFocus
PromptLn:
00FFEEC1 0AD90F000808 jsr [CmdPromptJI]
00FFF0A8 0AD90F000808 jsr [CmdPromptJI]
; Get characters until a CR is keyed
Prompt3:
00FFEEC5 0CCFFFFFF ldd #-1 ; block until key present
00FFEEC8 017FFFE0F lbsr INCH
00FFF0AC 0CCFFFFFF ldd #-1 ; block until key present
00FFF0AF 017FFFDF7 lbsr INCH
*** warning 1: Long branch within short branch range could be optimized
00FFEECB 0C100D cmpb #CR ; carriage return?
00FFEECD 027005 beq Prompt1
00FFEECF 017FFFE40 lbsr OUTCH ; spit out the character
00FFF0B2 0C100D cmpb #CR ; carriage return?
00FFF0B4 027005 beq Prompt1
00FFF0B6 017FFFE28 lbsr OUTCH ; spit out the character
*** warning 1: Long branch within short branch range could be optimized
00FFEED2 020FF1 bra Prompt3 ; and keep going
00FFF0B9 020FF1 bra Prompt3 ; and keep going
; Process the screen line that the CR was keyed on
;
Prompt1:
00FFEED4 0CC005050 ldd #$5050
00FFEED7 0150FDFFFE60001 std LEDS
00FFF0BB 0CC005050 ldd #$5050
00FFF0BE 0150FDFFFE60001 std LEDS
; ldb RunningID
; cmpb #61
; bhi Prompt3
00FFEEDC 00F111 clr CursorCol ; go back to the start of the line
00FFEEDE 017FFF3FA lbsr CalcScreenLoc ; calc screen memory location
00FFF0C3 00F111 clr CursorCol ; go back to the start of the line
00FFF0C5 017FFF22A lbsr CalcScreenLoc ; calc screen memory location
*** warning 1: Long branch within short branch range could be optimized
00FFEEE1 01F002 tfr d,y
00FFF0C8 01F002 tfr d,y
skipDollar:
00FFEEE3 08D067 bsr MonGetNonSpace
00FFEEE5 0C1024 cmpb #'$'
00FFEEE7 027FFA beq skipDollar ; skip over '$' prompt character
00FFF0CA 08D067 bsr MonGetNonSpace
00FFF0CC 0C1024 cmpb #'$'
00FFF0CE 027FFA beq skipDollar ; skip over '$' prompt character
; Dispatch based on command
;
00FFEEE9 0313FF dey
00FFEEEB 01F023 tfr y,u ; save off input position
00FFEEED 05F clrb
00FFEEEE 08EFFEDE3 ldx #cmdTable1
00FFF0D0 0313FF dey
00FFF0D2 01F023 tfr y,u ; save off input position
00FFF0D4 05F clrb
00FFF0D5 08EFFEFB2 ldx #cmdTable1
parseCmd1:
00FFEEF1 0A6A00 lda ,y+ ; get input character
00FFEEF3 06D804 tst ,x ; test for end of command
00FFEEF5 02B00F bmi endOfWord ;
00FFEEF7 0A1800 cmpa ,x+ ; does input match command?
00FFEEF9 027FF6 beq parseCmd1
00FFF0D8 0A6A00 lda ,y+ ; get input character
00FFF0DA 06D804 tst ,x ; test for end of command
00FFF0DC 02B00F bmi endOfWord ;
00FFF0DE 0A1800 cmpa ,x+ ; does input match command?
00FFF0E0 027FF6 beq parseCmd1
scanNextWord:
00FFEEFB 06D800 tst ,x+
00FFEEFD 027FA8 beq Monitor ; if end of table reached, not a command
00FFEEFF 02AFFA bpl scanNextWord
00FFEF01 05C incb
00FFEF02 01F032 tfr u,y ; reset input pointer
00FFEF04 020FEB bra parseCmd1 ; try again
00FFF0E2 06D800 tst ,x+
00FFF0E4 027F53 beq Monitor ; if end of table reached, not a command
00FFF0E6 02AFFA bpl scanNextWord
00FFF0E8 05C incb
00FFF0E9 01F032 tfr u,y ; reset input pointer
00FFF0EB 020FEB bra parseCmd1 ; try again
endOfWord:
00FFEF06 0A8804 eora ,x
00FFEF08 048 asla
00FFEF09 026FF0 bne scanNextWord
00FFF0ED 0A8804 eora ,x
00FFF0EF 048 asla
00FFF0F0 026FF0 bne scanNextWord
; we found the command in the table
00FFEF0B 058 aslb ; b = word index
00FFEF0C 08EFFEE0E ldx #cmdTable2
00FFEF0F 06E905 jmp [b,x] ; execute command
00FFF0F2 058 aslb ; b = word index
00FFF0F3 08EFFEFE3 ldx #cmdTable2
00FFF0F6 06E905 jmp [b,x] ; execute command
Redirect:
00FFEF11 08D034 bsr MonGetch
00FFEF13 0C1073 cmpb #'s'
00FFEF15 02600E bne Prompt2a
00FFEF17 0CCFFEBE4 ldd #SerialPeekCharDirect
00FFEF1A 0FD000804 std CharInVec
00FFEF1D 0CCFFEC08 ldd #SerialPutChar
00FFEF20 0FD000800 std CharOutVec
00FFEF23 020F82 bra Monitor
00FFF0F8 08D034 bsr MonGetch
00FFF0FA 0C1073 cmpb #'s'
00FFF0FC 02600E bne Prompt2a
00FFF0FE 0CCFFEC64 ldd #SerialPeekCharDirect
00FFF101 0FD000804 std CharInVec
00FFF104 0CCFFEC88 ldd #SerialPutChar
00FFF107 0FD000800 std CharOutVec
00FFF10A 020F2D bra Monitor
Prompt2a:
00FFEF25 0C1063 cmpb #'c'
00FFEF27 026F7E bne Monitor
00FFEF29 0CCFFEA12 ldd #GetKey
00FFEF2C 0FD000804 std CharInVec
00FFEF2F 0CCFFE2FE ldd #DisplayChar
00FFEF32 0FD000800 std CharOutVec
00FFEF35 020F70 bra Monitor
00FFF10C 0C1063 cmpb #'c'
00FFF10E 026F29 bne Monitor
00FFF110 0CCFFEA92 ldd #GetKey
00FFF113 0FD000804 std CharInVec
00FFF116 0CCFFE319 ldd #DisplayChar
00FFF119 0FD000800 std CharOutVec
00FFF11C 020F1B bra Monitor
PromptHelp:
00FFEF37 0CCFFF06E ldd #HelpMsg
00FFEF3A 017FFF482 lbsr DisplayString
00FFF11E 0CCFFF2CF ldd #HelpMsg
00FFF121 017FFF2B6 lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFEF3D 020F68 bra Monitor
00FFF124 020F13 bra Monitor
PromptClearscreen:
00FFEF3F 017FFF2EC lbsr ClearScreen
00FFF126 017FFF110 lbsr ClearScreen
*** warning 1: Long branch within short branch range could be optimized
00FFEF42 017FFF35C lbsr HomeCursor
00FFF129 017FFF184 lbsr HomeCursor
*** warning 1: Long branch within short branch range could be optimized
00FFEF45 020F60 bra Monitor
00FFF12C 020F0B bra Monitor
MonGetch:
00FFEF47 0E6A04 ldb ,y
00FFEF49 031201 iny
00FFEF4B 039 rts
00FFF12E 0E6A04 ldb ,y
00FFF130 031201 iny
00FFF132 039 rts
MonGetNonSpace:
00FFEF4C 08DFF9 bsr MonGetCh
00FFEF4E 0C1020 cmpb #' '
00FFEF50 027FFA beq MonGetNonSpace
00FFEF52 039 rts
00FFF133 08DFF9 bsr MonGetCh
00FFF135 0C1020 cmpb #' '
00FFF137 027FFA beq MonGetNonSpace
00FFF139 039 rts
MonArmBreakpoint:
00FFF13A 017000611 lbsr ArmBreakpoint
00FFF13D 0C6FFF ldb #$FFF
00FFF13F 0F7000810 stb BreakpointFlag
00FFF142 016FFFEF4 lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
MonDisarmBreakpoint:
00FFF145 017000632 lbsr DisarmBreakpoint
00FFF148 016FFFEEE lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
; Ignore blanks in the input
; Y = text pointer
3157,82 → 3459,74
;
ignBlanks:
ignBlanks1:
00FFEF53 08DFF2 bsr MonGetch
00FFEF55 0C1020 cmpb #' '
00FFEF57 027FFA beq ignBlanks1
00FFEF59 0313FF dey
00FFEF5B 039 rts
00FFF14B 08DFE1 bsr MonGetch
00FFF14D 0C1020 cmpb #' '
00FFF14F 027FFA beq ignBlanks1
00FFF151 0313FF dey
00FFF153 039 rts
;------------------------------------------------------------------------------
; Multiply number in work area by 10.
;------------------------------------------------------------------------------
Times10:
00FFEF5C 0FC000910 ldd mon_numwka ; make a copy of the number
00FFEF5F 0FD000918 std mon_numwka+8
00FFEF62 0FC000912 ldd mon_numwka+2
00FFEF65 0FD00091A std mon_numwka+10
00FFEF68 078000913 asl mon_numwka+3 ; shift left = *2
00FFEF6B 079000912 rol mon_numwka+2
00FFEF6E 079000911 rol mon_numwka+1
00FFEF71 079000910 rol mon_numwka+0
00FFEF74 078000913 asl mon_numwka+3 ; shift left = *4
00FFEF77 079000912 rol mon_numwka+2
00FFEF7A 079000911 rol mon_numwka+1
00FFEF7D 079000910 rol mon_numwka+0
00FFEF80 0FC000912 ldd mon_numwka+2 ; add in original value
00FFEF83 0F300091A addd mon_numwka+10 ; = *5
00FFEF86 0F6000911 ldb mon_numwka+1
00FFEF89 0F9000919 adcb mon_numwka+9
00FFEF8C 0F7000911 stb mon_numwka+1
00FFEF8F 0B6000910 lda mon_numwka+0
00FFEF92 0B9000918 adca mon_numwka+8
00FFEF95 0B7000910 sta mon_numwka+0
00FFEF98 078000913 asl mon_numwka+3 ; shift left = * 10
00FFEF9B 079000912 rol mon_numwka+2
00FFEF9E 079000911 rol mon_numwka+1
00FFEFA1 079000910 rol mon_numwka+0
00FFEFA4 039 rts
00FFF154 034006 pshs d
00FFF156 0FC000910 ldd mon_numwka ; make a copy of the number
00FFF159 0FD000918 std mon_numwka+8
00FFF15C 0FC000912 ldd mon_numwka+2
00FFF15F 0FD00091A std mon_numwka+10
00FFF162 08D05B bsr shl_numwka ; shift left = *2
00FFF164 08D059 bsr shl_numwka ; shift left = *4
00FFF166 0FC000912 ldd mon_numwka+2 ; add in original value
00FFF169 0F300091A addd mon_numwka+10 ; = *5
00FFF16C 0F6000911 ldb mon_numwka+1
00FFF16F 0F9000919 adcb mon_numwka+9
00FFF172 0F7000911 stb mon_numwka+1
00FFF175 0B6000910 lda mon_numwka+0
00FFF178 0B9000918 adca mon_numwka+8
00FFF17B 0B7000910 sta mon_numwka+0
00FFF17E 08D03F bsr shl_numwka ; shift left = * 10
00FFF180 035086 puls d,pc
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
GetTwoParams:
00FFEFA5 08DFAC bsr ignBlanks
00FFEFA7 08D046 bsr GetHexNumber ; get start address of dump
00FFEFA9 0FC000910 ldd mon_numwka
00FFEFAC 0FD000920 std mon_r1
00FFEFAF 0FC000912 ldd mon_numwka+2
00FFEFB2 0FD000922 std mon_r1+2
00FFEFB5 08DF9C bsr ignBlanks
00FFEFB7 08D036 bsr GetHexNumber ; get end address of dump
00FFEFB9 0FC000910 ldd mon_numwka
00FFEFBC 0FD000924 std mon_r2
00FFEFBF 0FC000912 ldd mon_numwka+2
00FFEFC2 0FD000926 std mon_r2+2
00FFEFC5 039 rts
00FFF182 08DFC7 bsr ignBlanks
00FFF184 08D0DC bsr GetNumber ; get start address of dump
00FFF186 0FC000910 ldd mon_numwka
00FFF189 0FD000920 std mon_r1
00FFF18C 0FC000912 ldd mon_numwka+2
00FFF18F 0FD000922 std mon_r1+2
00FFF192 08DFB7 bsr ignBlanks
00FFF194 08D0CC bsr GetNumber ; get end address of dump
00FFF196 0FC000910 ldd mon_numwka
00FFF199 0FD000924 std mon_r2
00FFF19C 0FC000912 ldd mon_numwka+2
00FFF19F 0FD000926 std mon_r2+2
00FFF1A2 039 rts
;------------------------------------------------------------------------------
; Get a range, the end must be greater or equal to the start.
;------------------------------------------------------------------------------
GetRange:
00FFEFC6 08DFDD bsr GetTwoParams
00FFEFC8 0FC000926 ldd mon_r2+2
00FFEFCB 0B3000922 subd mon_r1+2
00FFEFCE 0FC000924 ldd mon_r2
00FFEFD1 0F2000921 sbcb mon_r1+1
00FFEFD4 0B2000920 sbca mon_r1
00FFEFD7 124000007 lbcc grng1
00FFEFDA 0AD90F00080C jsr [MonErrVec]
00FFEFDE 016FFFEC6 lbra Monitor
00FFF1A3 08DFDD bsr GetTwoParams
00FFF1A5 0FC000926 ldd mon_r2+2
00FFF1A8 0B3000922 subd mon_r1+2
00FFF1AB 0FC000924 ldd mon_r2
00FFF1AE 0F2000921 sbcb mon_r1+1
00FFF1B1 0B2000920 sbca mon_r1
00FFF1B4 124000007 lbcc grng1
00FFF1B7 0AD90F00080C jsr [MonErrVec]
00FFF1BB 016FFFE7B lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
grng1:
00FFEFE1 039 rts
00FFF1BE 039 rts
shl_numwka:
00FFEFE2 078000913 asl mon_numwka+3
00FFEFE5 079000912 rol mon_numwka+2
00FFEFE8 079000911 rol mon_numwka+1
00FFEFEB 079000910 rol mon_numwka
00FFEFEE 039 rts
00FFF1BF 078000913 asl mon_numwka+3
00FFF1C2 079000912 rol mon_numwka+2
00FFF1C5 079000911 rol mon_numwka+1
00FFF1C8 079000910 rol mon_numwka
00FFF1CB 039 rts
;------------------------------------------------------------------------------
; Get a hexidecimal number. Maximum of twelve digits.
3244,31 → 3538,90
;------------------------------------------------------------------------------
;
GetHexNumber:
00FFEFEF 04F05F clrd
00FFEFF1 0FD000910 std mon_numwka ; zero out work area
00FFEFF4 0FD000912 std mon_numwka+2
00FFEFF7 034010 pshs x
00FFEFF9 08E000000 ldx #0 ; max 12 eight digits
00FFF1CC 04F05F clrd
00FFF1CE 0FD000910 std mon_numwka ; zero out work area
00FFF1D1 0FD000912 std mon_numwka+2
00FFF1D4 034010 pshs x
00FFF1D6 08E000000 ldx #0 ; max 12 eight digits
gthxn2:
00FFEFFC 08DF49 bsr MonGetch
00FFEFFE 08D01F bsr AsciiToHexNybble
00FFF000 0C1FFF cmpb #-1
00FFF002 027017 beq gthxn1
00FFF004 08DFDC bsr shl_numwka
00FFF006 08DFDA bsr shl_numwka
00FFF008 08DFD8 bsr shl_numwka
00FFF00A 08DFD6 bsr shl_numwka
00FFF00C 0C400F andb #$0f
00FFF00E 0FA000913 orb mon_numwka+3
00FFF011 0F7000913 stb mon_numwka+3
00FFF014 030001 inx
00FFF016 08C00000C cmpx #12
00FFF019 025FE1 blo gthxn2
00FFF1D9 08DF53 bsr MonGetch
00FFF1DB 08D093 bsr AsciiToHexNybble
00FFF1DD 0C1FFF cmpb #-1
00FFF1DF 027017 beq gthxn1
00FFF1E1 08DFDC bsr shl_numwka
00FFF1E3 08DFDA bsr shl_numwka
00FFF1E5 08DFD8 bsr shl_numwka
00FFF1E7 08DFD6 bsr shl_numwka
00FFF1E9 0C400F andb #$0f
00FFF1EB 0FA000913 orb mon_numwka+3
00FFF1EE 0F7000913 stb mon_numwka+3
00FFF1F1 030001 inx
00FFF1F3 08C00000C cmpx #12
00FFF1F6 025FE1 blo gthxn2
gthxn1:
00FFF01B 01F010 tfr x,d
00FFF01D 035090 puls x,pc
00FFF1F8 01F010 tfr x,d
00FFF1FA 035090 puls x,pc
;GetDecNumber:
GetBinNumber:
00FFF1FC 04F05F clrd
00FFF1FE 0FD000910 std mon_numwka
00FFF201 0FD000912 std mon_numwka+2
00FFF204 034010 pshs x
00FFF206 08E000000 ldx #0
gtbin2:
00FFF209 08DF23 bsr MonGetch
00FFF20B 08D099 bsr AsciiToBinDigit
00FFF20D 05D tstb
00FFF20E 02B00F bmi gtbin1
00FFF210 08DFAD bsr shl_numwka
00FFF212 0FA000913 orb mon_numwka+3
00FFF215 0F7000913 stb mon_numwka+3
00FFF218 030001 inx
00FFF21A 08C000030 cpx #48
00FFF21D 025FEA blo gtbin2
gtbin1:
00FFF21F 01F010 tfr x,d
00FFF221 035090 puls x,pc
GetDecNumber:
00FFF223 04F05F clrd
00FFF225 0FD000910 std mon_numwka
00FFF228 0FD000912 std mon_numwka+2
00FFF22B 034010 pshs x
00FFF22D 08E000000 ldx #0
gtdec2:
00FFF230 08DEFC bsr MonGetch
00FFF232 08D064 bsr AsciiToDecDigit
00FFF234 05D tstb
00FFF235 02B027 bmi gtdec1
00FFF237 08DF1B bsr Times10
00FFF239 0FB000913 addb mon_numwka+3
00FFF23C 0F7000913 stb mon_numwka+3
00FFF23F 0F6000912 ldb mon_numwka+2
00FFF242 0C9000 adcb #0
00FFF244 0F7000912 stb mon_numwka+2
00FFF247 0F6000911 ldb mon_numwka+1
00FFF24A 0C9000 adcb #0
00FFF24C 0F7000911 stb mon_numwka+1
00FFF24F 0F6000910 ldb mon_numwka+0
00FFF252 0C9000 adcb #0
00FFF254 0F7000910 stb mon_numwka+0
00FFF257 030001 inx
00FFF259 08C00000F cpx #15
00FFF25C 025FD2 blo gtdec2
gtdec1:
00FFF25E 01F010 tfr x,d
00FFF260 035090 puls x,pc
GetNumber:
00FFF262 08DECA bsr MonGetch
00FFF264 0C102B cmpb #'+'
00FFF266 027FBB beq GetDecNumber
00FFF268 0C1025 cmpb #'%'
00FFF26A 027F90 beq GetBinNumber
00FFF26C 0313FF dey
00FFF26E 020F5C bra GetHexNumber
; phx
; push r4
; push r5
3297,150 → 3650,169
;------------------------------------------------------------------------------
;
AsciiToHexNybble:
00FFF01F 0C1030 cmpb #'0'
00FFF021 025021 blo gthx3
00FFF023 0C1039 cmpb #'9'
00FFF025 022003 bhi gthx5
00FFF027 0C0030 subb #'0'
00FFF029 039 rts
00FFF270 0C1030 cmpb #'0'
00FFF272 025021 blo gthx3
00FFF274 0C1039 cmpb #'9'
00FFF276 022003 bhi gthx5
00FFF278 0C0030 subb #'0'
00FFF27A 039 rts
gthx5:
00FFF02A 0C1041 cmpb #'A'
00FFF02C 025016 blo gthx3
00FFF02E 0C1046 cmpb #'F'
00FFF030 022005 bhi gthx6
00FFF032 0C0041 subb #'A'
00FFF034 0CB00A addb #10
00FFF036 039 rts
00FFF27B 0C1041 cmpb #'A'
00FFF27D 025016 blo gthx3
00FFF27F 0C1046 cmpb #'F'
00FFF281 022005 bhi gthx6
00FFF283 0C0041 subb #'A'
00FFF285 0CB00A addb #10
00FFF287 039 rts
gthx6:
00FFF037 0C1061 cmpb #'a'
00FFF039 025009 blo gthx3
00FFF03B 0C107A cmpb #'z'
00FFF03D 022005 bhi gthx3
00FFF03F 0C0061 subb #'a'
00FFF041 0CB00A addb #10
00FFF043 039 rts
00FFF288 0C1061 cmpb #'a'
00FFF28A 025009 blo gthx3
00FFF28C 0C107A cmpb #'z'
00FFF28E 022005 bhi gthx3
00FFF290 0C0061 subb #'a'
00FFF292 0CB00A addb #10
00FFF294 039 rts
gthx3:
00FFF044 0C6FFF ldb #-1 ; not a hex number
00FFF046 039 rts
00FFF295 0C6FFF ldb #-1 ; not a hex number
00FFF297 039 rts
AsciiToDecNybble:
00FFF047 0C1030 cmpb #'0'
00FFF049 024007 bcc gtdc3
00FFF04B 0C103A cmpb #'9'+1
00FFF04D 025003 bcs gtdc3
00FFF04F 0C0030 subb #'0'
00FFF051 039 rts
AsciiToDecDigit:
00FFF298 0C1030 cmpb #'0'
00FFF29A 025007 blo gtdc3
00FFF29C 0C1039 cmpb #'9'
00FFF29E 022003 bhi gtdc3
00FFF2A0 0C0030 subb #'0'
00FFF2A2 039 rts
gtdc3:
00FFF052 0C6FFF ldb #-1
00FFF054 039 rts
00FFF2A3 0C6FFF ldb #-1
00FFF2A5 039 rts
AsciiToBinDigit:
00FFF2A6 0C1030 cmpb #'0'
00FFF2A8 026002 bne abd1
00FFF2AA 05F clrb
00FFF2AB 039 rts
abd1:
00FFF2AC 0C1031 cmpb #'1'
00FFF2AE 026003 bne abd2
00FFF2B0 0C6001 ldb #1
00FFF2B2 039 rts
abd2:
00FFF2B3 0C6FFF ldb #-1
00FFF2B5 039 rts
DisplayErr:
00FFF055 0CCFFF066 ldd #msgErr
00FFF058 017FFF364 lbsr DisplayString
00FFF2B6 0CCFFF2C7 ldd #msgErr
00FFF2B9 017FFF11E lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFF05B 07EFFEEA7 jmp Monitor
00FFF2BC 07EFFF039 jmp Monitor
DisplayStringDX
00FFF05E 0DD024 std Strptr
00FFF060 09F026 stx Strptr+2
00FFF062 0BDFFE3BF jsr DisplayString
00FFF065 039 rts
00FFF2BF 0DD024 std Strptr
00FFF2C1 09F026 stx Strptr+2
00FFF2C3 0BDFFE3DA jsr DisplayString
00FFF2C6 039 rts
msgErr:
00FFF066 02A02A04507207200D00A fcb "**Err",CR,LF,0
00FFF06D 000
00FFF2C7 02A02A04507207200D00A fcb "**Err",CR,LF,0
00FFF2CE 000
HelpMsg:
00FFF06E 03F02003D020044069073 fcb "? = Display help",CR,LF
00FFF075 07006C061079020068065
00FFF07C 06C07000D00A
00FFF080 04304C05302003D020063 fcb "CLS = clear screen",CR,LF
00FFF087 06C065061072020073063
00FFF08E 07206506506E00D00A
00FFF094 06207302003D020073065 fcb "bs = set breakpoint",CR,LF
00FFF09B 07402006207206506106B
00FFF0A2 07006F06906E07400D00A
00FFF0A9 06206302003D02006306C fcb "bc = clear breakpoint",CR,LF
00FFF0B0 065061072020062072065
00FFF0B7 06106B07006F06906E074
00FFF0BE 00D00A
00FFF2CF 03F02003D020044069073 fcb "? = Display help",CR,LF
00FFF2D6 07006C061079020068065
00FFF2DD 06C07000D00A
00FFF2E1 04304C05302003D020063 fcb "CLS = clear screen",CR,LF
00FFF2E8 06C065061072020073063
00FFF2EF 07206506506E00D00A
00FFF2F5 06207302003D020073065 fcb "bs = set breakpoint",CR,LF
00FFF2FC 07402006207206506106B
00FFF303 07006F06906E07400D00A
00FFF30A 06206302003D02006306C fcb "bc = clear breakpoint",CR,LF
00FFF311 065061072020062072065
00FFF318 06106B07006F06906E074
00FFF31F 00D00A
; db "S = Boot from SD Card",CR,LF
00FFF0C0 03A02003D020045064069 fcb ": = Edit memory bytes",CR,LF
00FFF0C7 07402006D06506D06F072
00FFF0CE 079020062079074065073
00FFF0D5 00D00A
00FFF321 03A02003D020045064069 fcb ": = Edit memory bytes",CR,LF
00FFF328 07402006D06506D06F072
00FFF32F 079020062079074065073
00FFF336 00D00A
; db "L = Load sector",CR,LF
; db "W = Write sector",CR,LF
00FFF0D7 04405202003D020044075 fcb "DR = Dump registers",CR,LF
00FFF0DE 06D070020072065067069
00FFF0E5 07307406507207300D00A
00FFF0EC 04402003D02004407506D fcb "D = Dump memory",CR,LF
00FFF0F3 07002006D06506D06F072
00FFF0FA 07900D00A
00FFF0FD 04602003D02004606906C fcb "F = Fill memory",CR,LF
00FFF104 06C02006D06506D06F072
00FFF10B 07900D00A
00FFF10E 04604C02003D020044075 fcb "FL = Dump I/O Focus List",CR,LF
00FFF115 06D07002004902F04F020
00FFF11C 04606F06307507302004C
00FFF123 06907307400D00A
00FFF128 04604904702003D020073 fcb "FIG = start FIG Forth",CR,LF
00FFF12F 074061072074020046049
00FFF136 04702004606F072074068
00FFF13D 00D00A
00FFF338 04405202003D020044075 fcb "DR = Dump registers",CR,LF
00FFF33F 06D070020072065067069
00FFF346 07307406507207300D00A
00FFF34D 04402003D02004407506D fcb "D = Dump memory",CR,LF
00FFF354 07002006D06506D06F072
00FFF35B 07900D00A
00FFF35E 04602003D02004606906C fcb "F = Fill memory",CR,LF
00FFF365 06C02006D06506D06F072
00FFF36C 07900D00A
00FFF36F 04604C02003D020044075 fcb "FL = Dump I/O Focus List",CR,LF
00FFF376 06D07002004902F04F020
00FFF37D 04606F06307507302004C
00FFF384 06907307400D00A
; fcb "FIG = start FIG Forth",CR,LF
; db "KILL n = kill task #n",CR,LF
; db "B = start tiny basic",CR,LF
; db "b = start EhBasic 6502",CR,LF
00FFF13F 04A02003D02004A07506D fcb "J = Jump to code",CR,LF
00FFF146 07002007406F02006306F
00FFF14D 06406500D00A
00FFF151 05204104D02003D020074 fcb "RAM = test RAM",CR,LF
00FFF158 06507307402005204104D
00FFF15F 00D00A
00FFF389 04A02003D02004A07506D fcb "J = Jump to code",CR,LF
00FFF390 07002007406F02006306F
00FFF397 06406500D00A
00FFF39B 04A04403402003D02004A fcb "JD4 = Jump to $FFD400",CR,LF
00FFF3A2 07506D07002007406F020
00FFF3A9 024046046044034030030
00FFF3B0 00D00A
00FFF3B2 05204104D054045053054 fcb "RAMTEST = test RAM",CR,LF
00FFF3B9 02003D020074065073074
00FFF3C0 02005204104D00D00A
; db "R[n] = Set register value",CR,LF
; db "r = random lines - test bitmap",CR,LF
; db "e = ethernet test",CR,LF
00FFF161 07302003D020073065072 fcb "s = serial output test",CR,LF
00FFF168 06906106C02006F075074
00FFF16F 070075074020074065073
00FFF176 07400D00A
00FFF179 05305002003D020073070 fcb "SP = sprite demo",CR,LF
00FFF180 072069074065020064065
00FFF187 06D06F00D00A
00FFF3C6 07302003D020073065072 fcb "s = serial output test",CR,LF
00FFF3CD 06906106C02006F075074
00FFF3D4 070075074020074065073
00FFF3DB 07400D00A
00FFF3DE 05303103902003D020072 fcb "S19 = run S19 loader",CR,LF
00FFF3E5 07506E020053031039020
00FFF3EC 06C06F06106406507200D
00FFF3F3 00A
00FFF3F4 05305002003D020073070 fcb "SP = sprite demo",CR,LF
00FFF3FB 072069074065020064065
00FFF402 06D06F00D00A
; db "T = Dump task list",CR,LF
; db "TO = Dump timeout list",CR,LF
00FFF18B 05404902003D020064069 fcb "TI = display date/time",CR,LF
00FFF192 07307006C061079020064
00FFF199 06107406502F07406906D
00FFF1A0 06500D00A
00FFF406 05404902003D020064069 fcb "TI = display date/time",CR,LF
00FFF40D 07307006C061079020064
00FFF414 06107406502F07406906D
00FFF41B 06500D00A
; db "TEMP = display temperature",CR,LF
00FFF1A3 05502003D02007506E061 fcb "U = unassemble",CR,LF
00FFF1AA 07307306506D06206C065
00FFF1B1 00D00A
00FFF41E 05502003D02007506E061 fcb "U = unassemble",CR,LF
00FFF425 07307306506D06206C065
00FFF42C 00D00A
; db "P = Piano",CR,LF
00FFF1B3 07802003D020065078069 fcb "x = exit monitor",CR,LF
00FFF1BA 07402006D06F06E069074
00FFF1C1 06F07200D00A
00FFF1C5 000 fcb 0
00FFF42E 07802003D020065078069 fcb "x = exit monitor",CR,LF
00FFF435 07402006D06F06E069074
00FFF43C 06F07200D00A
00FFF440 000 fcb 0
msgRegHeadings
00FFF1C6 00D00A02002004402F041 fcb CR,LF," D/AB X Y U S PC DP CCR",CR,LF,0
00FFF1CD 042020020020020020058
00FFF1D4 020020020020020020059
00FFF1DB 020020020020020020055
00FFF1E2 020020020020020020053
00FFF1E9 020020020020020020020
00FFF1F0 050043020020020020044
00FFF1F7 05002002004304305200D
00FFF1FE 00A000
00FFF441 00D00A02002004402F041 fcb CR,LF," D/AB X Y U S PC DP CCR",CR,LF,0
00FFF448 042020020020020020058
00FFF44F 020020020020020020059
00FFF456 020020020020020020055
00FFF45D 020020020020020020053
00FFF464 020020020020020020020
00FFF46B 050043020020020020044
00FFF472 05002002004304305200D
00FFF479 00A000
nHEX4:
00FFF200 0BDFFD2D2 jsr HEX4
00FFF203 039 rts
00FFF47B 0BDFFD2D2 jsr HEX4
00FFF47E 039 rts
nXBLANK:
00FFF204 0C6020 ldb #' '
00FFF206 016FFFB09 lbra OUTCH
00FFF47F 0C6020 ldb #' '
00FFF481 016FFFA5D lbra OUTCH
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
3455,66 → 3827,66
;------------------------------------------------------------------------------
DumpMemory:
00FFF209 08DDBB bsr GetRange
00FFF20B 18E000000 ldy #0
00FFF20E 1BE000922 ldy mon_r1+2
00FFF484 08DD1D bsr GetRange
00FFF486 18E000000 ldy #0
00FFF489 1BE000922 ldy mon_r1+2
dmpm2:
00FFF211 017FFDEBE lbsr CRLF
00FFF48C 017FFDC43 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
00FFF214 0C603A ldb #':'
00FFF216 017FFFAF9 lbsr OUTCH
00FFF48F 0C603A ldb #':'
00FFF491 017FFFA4D lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFF219 01F020 tfr y,d
00FFF494 01F020 tfr y,d
;addd mon_r1+2 ; output the address
00FFF21B 017FFF1EC lbsr DispWordAsHex
00FFF496 017FFEF95 lbsr DispWordAsHex
*** warning 1: Long branch within short branch range could be optimized
00FFF21E 0C6020 ldb #' '
00FFF220 017FFFAEF lbsr OUTCH
00FFF499 0C6020 ldb #' '
00FFF49B 017FFFA43 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFF223 08E000008 ldx #8 ; number of bytes to display
00FFF49E 08E000008 ldx #8 ; number of bytes to display
dmpm1:
; ldb far [mon_r1+1],y
;ldb [mon_r1+2],y
00FFF226 0E6A04 ldb ,y
00FFF228 031201 iny
00FFF22A 017FFF1E6 lbsr DispByteAsHex ; display byte
00FFF4A1 0E6A04 ldb ,y
00FFF4A3 031201 iny
00FFF4A5 017FFEF8F lbsr DispByteAsHex ; display byte
*** warning 1: Long branch within short branch range could be optimized
00FFF22D 0C6020 ldb #' ' ; followed by a space
00FFF22F 017FFFAE0 lbsr OUTCH
00FFF4A8 0C6020 ldb #' ' ; followed by a space
00FFF4AA 017FFFA34 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFF232 05F clrb
00FFF233 04F clra
00FFF234 017FFFAA3 lbsr INCH
00FFF4AD 05F clrb
00FFF4AE 04F clra
00FFF4AF 017FFF9F7 lbsr INCH
*** warning 1: Long branch within short branch range could be optimized
00FFF237 0C1003 cmpb #CTRLC
00FFF239 027024 beq dmpm3
00FFF23B 0301FF dex
00FFF23D 026FE7 bne dmpm1
00FFF4B2 0C1003 cmpb #CTRLC
00FFF4B4 027024 beq dmpm3
00FFF4B6 0301FF dex
00FFF4B8 026FE7 bne dmpm1
; Now output ascii
00FFF23F 0C6020 ldb #' '
00FFF241 017FFFACE lbsr OUTCH
00FFF4BA 0C6020 ldb #' '
00FFF4BC 017FFFA22 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFF244 08E000008 ldx #8 ; 8 chars to output
00FFF247 0313F8 leay -8,y ; backup pointer
00FFF4BF 08E000008 ldx #8 ; 8 chars to output
00FFF4C2 0313F8 leay -8,y ; backup pointer
dmpm5:
; ldb far [mon_r1+1],y ; get the char
; ldb [mon_r1+2],y ; get the char
00FFF249 0E6A04 ldb ,y
00FFF24B 0C1020 cmpb #$20 ; is it a control char?
00FFF24D 024002 bhs dmpm4
00FFF24F 0C602E ldb #'.'
00FFF4C4 0E6A04 ldb ,y
00FFF4C6 0C1020 cmpb #$20 ; is it a control char?
00FFF4C8 024002 bhs dmpm4
00FFF4CA 0C602E ldb #'.'
dmpm4:
00FFF251 017FFFABE lbsr OUTCH
00FFF4CC 017FFFA12 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
00FFF254 031201 iny
00FFF256 0301FF dex
00FFF258 026FEF bne dmpm5
00FFF25A 1BC000926 cmpy mon_r2+2
00FFF25D 025FB2 blo dmpm2
00FFF4CF 031201 iny
00FFF4D1 0301FF dex
00FFF4D3 026FEF bne dmpm5
00FFF4D5 1BC000926 cmpy mon_r2+2
00FFF4D8 025FB2 blo dmpm2
dmpm3:
00FFF25F 017FFDE70 lbsr CRLF
00FFF4DA 017FFDBF5 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
00FFF262 016FFFC42 lbra Monitor
00FFF4DD 016FFFB59 lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
3529,42 → 3901,42
;------------------------------------------------------------------------------
EditMemory:
00FFF265 0CE000008 ldu #8 ; set max byte count
00FFF268 017FFFD84 lbsr GetHexNumber ; get the start address
00FFF4E0 0CE000008 ldu #8 ; set max byte count
00FFF4E3 017FFFCE6 lbsr GetHexNumber ; get the start address
*** warning 1: Long branch within short branch range could be optimized
00FFF26B 0BE000912 ldx mon_numwka+2
00FFF4E6 0BE000912 ldx mon_numwka+2
EditMem2:
00FFF26E 017FFFCE2 lbsr ignBlanks ; skip over blanks
00FFF4E9 017FFFC5F lbsr ignBlanks ; skip over blanks
*** warning 1: Long branch within short branch range could be optimized
00FFF271 017FFFD7B lbsr GetHexNumber ; get the byte value
00FFF4EC 017FFFCDD lbsr GetHexNumber ; get the byte value
*** warning 1: Long branch within short branch range could be optimized
00FFF274 05D tstb ; check for valid value
00FFF275 02700C beq EditMem1 ; if invalid, quit
00FFF277 0F6000913 ldb mon_numwka+3 ; get value
00FFF27A 0E7800 stb ,x+ ; update memory at address
00FFF27C 0335FF leau -1,u ; decremeent byte count
00FFF27E 283000000 cmpu #0
00FFF281 026FEB bne EditMem2 ; go back for annother byte
00FFF4EF 05D tstb ; check for valid value
00FFF4F0 02700C beq EditMem1 ; if invalid, quit
00FFF4F2 0F6000913 ldb mon_numwka+3 ; get value
00FFF4F5 0E7800 stb ,x+ ; update memory at address
00FFF4F7 0335FF leau -1,u ; decremeent byte count
00FFF4F9 283000000 cmpu #0
00FFF4FC 026FEB bne EditMem2 ; go back for annother byte
EditMem1:
00FFF283 017FFFCC1 lbsr MonGetch ; see if a string is being entered
00FFF4FE 017FFFC2D lbsr MonGetch ; see if a string is being entered
*** warning 1: Long branch within short branch range could be optimized
00FFF286 0C1022 cmpb #'"'
00FFF288 026018 bne EditMem3 ; no string, we're done
00FFF28A 0CE000028 ldu #40 ; string must be less than 40 chars
00FFF501 0C1022 cmpb #'"'
00FFF503 026018 bne EditMem3 ; no string, we're done
00FFF505 0CE000028 ldu #40 ; string must be less than 40 chars
EditMem4:
00FFF28D 017FFFCB7 lbsr MonGetch ; look for close quote
00FFF508 017FFFC23 lbsr MonGetch ; look for close quote
*** warning 1: Long branch within short branch range could be optimized
00FFF290 0C1022 cmpb #'"'
00FFF292 026005 bne EditMem6 ; end of string?
00FFF294 0CE000008 ldu #8 ; reset the byte count
00FFF297 020FD5 bra EditMem2
00FFF50B 0C1022 cmpb #'"'
00FFF50D 026005 bne EditMem6 ; end of string?
00FFF50F 0CE000008 ldu #8 ; reset the byte count
00FFF512 020FD5 bra EditMem2
EditMem6:
00FFF299 0E7800 stb ,x+ ; store the character in memory
00FFF29B 0335FF leau -1,u ; decrement byte count
00FFF29D 283000000 cmpu #0
00FFF2A0 022FEB bhi EditMem4 ; max 40 chars
00FFF514 0E7800 stb ,x+ ; store the character in memory
00FFF516 0335FF leau -1,u ; decrement byte count
00FFF518 283000000 cmpu #0
00FFF51B 022FEB bhi EditMem4 ; max 40 chars
EditMem3:
00FFF2A2 016FFFC02 lbra Monitor
00FFF51D 016FFFB19 lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
3577,32 → 3949,32
;------------------------------------------------------------------------------
FillMemory:
00FFF2A5 017FFFD1E lbsr GetRange ; get address range to fill
00FFF520 017FFFC80 lbsr GetRange ; get address range to fill
*** warning 1: Long branch within short branch range could be optimized
00FFF2A8 017FFFCA8 lbsr ignBlanks
00FFF523 017FFFC25 lbsr ignBlanks
*** warning 1: Long branch within short branch range could be optimized
00FFF2AB 017FFFD41 lbsr GetHexNumber ; get target byte to write
00FFF526 017FFFCA3 lbsr GetHexNumber ; get target byte to write
*** warning 1: Long branch within short branch range could be optimized
00FFF2AE 0F6000913 ldb mon_numwka+3
00FFF2B1 0BE000922 ldx mon_r1+2
00FFF2B4 04F clra
00FFF529 0F6000913 ldb mon_numwka+3
00FFF52C 0BE000922 ldx mon_r1+2
00FFF52F 04F clra
fillm1: ; Check for a CTRL-C every page of memory
00FFF2B5 04D tsta
00FFF2B6 02600D bne fillm2
00FFF2B8 05F clrb ; we want a non-blocking check
00FFF2B9 04F clra
00FFF2BA 017FFFA1D lbsr INCH
00FFF530 04D tsta
00FFF531 02600D bne fillm2
00FFF533 05F clrb ; we want a non-blocking check
00FFF534 04F clra
00FFF535 017FFF971 lbsr INCH
*** warning 1: Long branch within short branch range could be optimized
00FFF2BD 0C1003 cmpb #CTRLC
00FFF2BF 127FFFBE5 lbeq Monitor
00FFF538 0C1003 cmpb #CTRLC
00FFF53A 127FFFAFC lbeq Monitor
*** warning 1: Long branch within short branch range could be optimized
00FFF2C2 0F6000913 ldb mon_numwka+3 ; reset target byte
00FFF53D 0F6000913 ldb mon_numwka+3 ; reset target byte
fillm2:
00FFF2C5 0E7800 stb ,x+
00FFF2C7 0BC000926 cmpx mon_r2+2
00FFF2CA 023FE9 bls fillm1
00FFF540 0E7800 stb ,x+
00FFF542 0BC000926 cmpx mon_r2+2
00FFF545 023FE9 bls fillm1
fillm3:
00FFF2CC 016FFFBD8 lbra Monitor
00FFF547 016FFFAEF lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
3613,39 → 3985,39
;------------------------------------------------------------------------------
DumpRegs:
00FFF2CF 0CCFFF1C6 ldd #msgRegHeadings
00FFF2D2 017FFF0EA lbsr DisplayString
00FFF54A 0CCFFF441 ldd #msgRegHeadings
00FFF54D 017FFEE8A lbsr DisplayString
*** warning 1: Long branch within short branch range could be optimized
00FFF2D5 08DF2D bsr nXBLANK
00FFF2D7 0FC000900 ldd mon_DSAVE
00FFF2DA 08DF24 bsr nHEX4
00FFF2DC 08DF26 bsr nXBLANK
00FFF2DE 0FC000902 ldd mon_XSAVE
00FFF2E1 08DF1D bsr nHEX4
00FFF2E3 08DF1F bsr nXBLANK
00FFF2E5 0FC000904 ldd mon_YSAVE
00FFF2E8 08DF16 bsr nHEX4
00FFF2EA 08DF18 bsr nXBLANK
00FFF2EC 0FC000906 ldd mon_USAVE
00FFF2EF 08DF0F bsr nHEX4
00FFF2F1 08DF11 bsr nXBLANK
00FFF2F3 0FC000908 ldd mon_SSAVE
00FFF2F6 08DF08 bsr nHEX4
00FFF2F8 08DF0A bsr nXBLANK
00FFF2FA 0F600090B ldb mon_PCSAVE+1
00FFF2FD 017FFF113 lbsr DispByteAsHex
00FFF550 08DF2D bsr nXBLANK
00FFF552 0FC000900 ldd mon_DSAVE
00FFF555 08DF24 bsr nHEX4
00FFF557 08DF26 bsr nXBLANK
00FFF559 0FC000902 ldd mon_XSAVE
00FFF55C 08DF1D bsr nHEX4
00FFF55E 08DF1F bsr nXBLANK
00FFF560 0FC000904 ldd mon_YSAVE
00FFF563 08DF16 bsr nHEX4
00FFF565 08DF18 bsr nXBLANK
00FFF567 0FC000906 ldd mon_USAVE
00FFF56A 08DF0F bsr nHEX4
00FFF56C 08DF11 bsr nXBLANK
00FFF56E 0FC000908 ldd mon_SSAVE
00FFF571 08DF08 bsr nHEX4
00FFF573 08DF0A bsr nXBLANK
00FFF575 0F600090B ldb mon_PCSAVE+1
00FFF578 017FFEEBC lbsr DispByteAsHex
*** warning 1: Long branch within short branch range could be optimized
00FFF300 0FC00090C ldd mon_PCSAVE+2
00FFF303 08DEFB bsr nHEX4
00FFF305 08DEFD bsr nXBLANK
00FFF307 0FC00090E ldd mon_DPRSAVE
00FFF30A 0BDFFD2CE jsr HEX2
00FFF30D 08DEF5 bsr nXBLANK
00FFF30F 0B600090F lda mon_CCRSAVE
00FFF312 017FFDFB9 lbsr HEX2
00FFF57B 0FC00090C ldd mon_PCSAVE+2
00FFF57E 08DEFB bsr nHEX4
00FFF580 08DEFD bsr nXBLANK
00FFF582 0FC00090E ldd mon_DPRSAVE
00FFF585 0BDFFD2CE jsr HEX2
00FFF588 08DEF5 bsr nXBLANK
00FFF58A 0B600090F lda mon_CCRSAVE
00FFF58D 017FFDD3E lbsr HEX2
*** warning 1: Long branch within short branch range could be optimized
00FFF315 08DEED bsr nXBLANK
00FFF317 016FFFB8D lbra Monitor
00FFF590 08DEED bsr nXBLANK
00FFF592 016FFFAA4 lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
3658,55 → 4030,55
;------------------------------------------------------------------------------
jump_to_code:
00FFF31A 08DCD3 bsr GetHexNumber
00FFF31C 01A010 sei
00FFF31E 1FE000908 lds mon_SSAVE
00FFF321 0CCFFF355 ldd #<jtc_exit ; setup stack for RTS back to monitor
00FFF324 034006 pshs d
00FFF326 0C6000 ldb #>jtc_exit
00FFF328 034004 pshs b
00FFF32A 0FC000912 ldd mon_numwka+2 ; get the address parameter
00FFF32D 034006 pshs d
00FFF32F 0F6000911 ldb mon_numwka+1
00FFF332 034004 pshs b
00FFF334 0FC000906 ldd mon_USAVE
00FFF337 034006 pshs d
00FFF339 0FC000904 ldd mon_YSAVE
00FFF33C 034006 pshs d
00FFF33E 0FC000902 ldd mon_XSAVE
00FFF341 034006 pshs d
00FFF343 0B600090E lda mon_DPRSAVE
00FFF346 034002 pshs a
00FFF348 0FC000900 ldd mon_DSAVE
00FFF34B 034006 pshs d
00FFF34D 0B600090F lda mon_CCRSAVE
00FFF350 034002 pshs a
00FFF352 0150350FF puls far ccr,d,dpr,x,y,u,pc
00FFF595 08DCCB bsr GetNumber
00FFF597 01A010 sei
00FFF599 1FE000908 lds mon_SSAVE
00FFF59C 0CCFFF5D0 ldd #jtc_exit ; setup stack for RTS back to monitor
00FFF59F 034006 pshs d
00FFF5A1 0C6000 ldb #0
00FFF5A3 034004 pshs b
00FFF5A5 0FC000912 ldd mon_numwka+2 ; get the address parameter
00FFF5A8 034006 pshs d
00FFF5AA 0F6000911 ldb mon_numwka+1
00FFF5AD 034004 pshs b
00FFF5AF 0FC000906 ldd mon_USAVE
00FFF5B2 034006 pshs d
00FFF5B4 0FC000904 ldd mon_YSAVE
00FFF5B7 034006 pshs d
00FFF5B9 0FC000902 ldd mon_XSAVE
00FFF5BC 034006 pshs d
00FFF5BE 0B600090E lda mon_DPRSAVE
00FFF5C1 034002 pshs a
00FFF5C3 0FC000900 ldd mon_DSAVE
00FFF5C6 034006 pshs d
00FFF5C8 0B600090F lda mon_CCRSAVE
00FFF5CB 034002 pshs a
00FFF5CD 0150350FF puls far ccr,d,dpr,x,y,u,pc
jtc_exit:
00FFF355 1FF000908 sts >mon_SSAVE ; need to use extended addressing, no direct page setting
00FFF358 03280F006FFF leas $6FFF ; reset stack to system area, dont modify flags register!
00FFF35C 034001 pshs ccr ; now the stack can be used
00FFF35E 034002 pshs a ; save acca register so we can use it
00FFF360 01F0B8 tfr dpr,a ; a = outgoing dpr value
00FFF362 0B700090E sta >mon_DPRSAVE ; force extended addressing mode usage here dpr is not set
00FFF365 04F clra ; dpg register must be set to zero before values are
00FFF366 01F08B tfr a,dpr ; saved in the monitor register save area.
00FFF368 035002 puls a ; get back acca
00FFF36A 0FD000900 std mon_DSAVE ; save regsters, can use direct addressing now
00FFF36D 0BF000902 stx mon_XSAVE
00FFF370 1BF000904 sty mon_YSAVE
00FFF373 0FF000906 stu mon_USAVE
00FFF376 035002 puls a ; get back ccr
00FFF378 0B700090F sta mon_CCRSAVE ; and save it too
00FFF5D0 1FF000908 sts >mon_SSAVE ; need to use extended addressing, no direct page setting
00FFF5D3 03280F006FFF leas $6FFF ; reset stack to system area, dont modify flags register!
00FFF5D7 034001 pshs ccr ; now the stack can be used
00FFF5D9 034002 pshs a ; save acca register so we can use it
00FFF5DB 01F0B8 tfr dpr,a ; a = outgoing dpr value
00FFF5DD 0B700090E sta >mon_DPRSAVE ; force extended addressing mode usage here dpr is not set
00FFF5E0 04F clra ; dpg register must be set to zero before values are
00FFF5E1 01F08B tfr a,dpr ; saved in the monitor register save area.
00FFF5E3 035002 puls a ; get back acca
00FFF5E5 0FD000900 std mon_DSAVE ; save regsters, can use direct addressing now
00FFF5E8 0BF000902 stx mon_XSAVE
00FFF5EB 1BF000904 sty mon_YSAVE
00FFF5EE 0FF000906 stu mon_USAVE
00FFF5F1 035002 puls a ; get back ccr
00FFF5F3 0B700090F sta mon_CCRSAVE ; and save it too
; Reset vectors in case they got toasted.
00FFF37B 0CCFFEBE4 ldd #SerialPeekCharDirect
00FFF37E 0FD000804 std CharInVec
00FFF381 0CCFFE2FE ldd #DisplayChar
00FFF384 0FD000800 std CharOutVec
00FFF387 0FCFFF055 ldd DisplayErr
00FFF38A 0FD00080C std MonErrVec
00FFF5F6 0CCFFEC64 ldd #SerialPeekCharDirect
00FFF5F9 0FD000804 std CharInVec
00FFF5FC 0CCFFE319 ldd #DisplayChar
00FFF5FF 0FD000800 std CharOutVec
00FFF602 0FCFFF2B6 ldd DisplayErr
00FFF605 0FD00080C std MonErrVec
; todo set according to coreid
00FFF38D 016FFFF3F lbra DumpRegs ; now go do a register dump
00FFF608 016FFFF3F lbra DumpRegs ; now go do a register dump
*** warning 1: Long branch within short branch range could be optimized
;------------------------------------------------------------------------------
3713,50 → 4085,69
;------------------------------------------------------------------------------
DumpIOFocusList:
00FFF390 08E000000 ldx #0
00FFF60B 08E000000 ldx #0
dfl2:
00FFF393 0E680A000FFC000 ldb IOFocusList,x
00FFF398 0C1018 cmpb #24
00FFF39A 02600A bne dfl1
00FFF39C 01F010 tfr x,d
00FFF39E 017FFF072 lbsr DispByteAsHex
00FFF60E 0E680A000FFC000 ldb IOFocusList,x
00FFF613 0C1018 cmpb #24
00FFF615 02600A bne dfl1
00FFF617 01F010 tfr x,d
00FFF619 017FFEE1B lbsr DispByteAsHex
*** warning 1: Long branch within short branch range could be optimized
00FFF3A1 0C6020 ldb #' '
00FFF3A3 017FFF96C lbsr OUTCH
00FFF61C 0C6020 ldb #' '
00FFF61E 017FFF8C0 lbsr OUTCH
*** warning 1: Long branch within short branch range could be optimized
dfl1:
00FFF3A6 030001 inx
00FFF3A8 08C000010 cmpx #16
00FFF3AB 025FE6 blo dfl2
00FFF3AD 017FFDD22 lbsr CRLF
00FFF621 030001 inx
00FFF623 08C000010 cmpx #16
00FFF626 025FE6 blo dfl2
00FFF628 017FFDAA7 lbsr CRLF
*** warning 1: Long branch within short branch range could be optimized
00FFF3B0 016FFFAF4 lbra Monitor
00FFF62B 016FFFA0B lbra Monitor
*** warning 1: Long branch within short branch range could be optimized
bootpg:
00FFF3B3 000 fcb $000
00FFF62E 000 fcb $000
boot_stack:
00FFF3B4 006FFF fcw $006FFF
00FFF62F FFC0FF fcw $FFC0FF
numBreakpoints:
00FFF3B6 008 fcb 8
00FFF631 008 fcb 8
mon_rom_vectab:
00FFF3B7 FFF3B9 fcw mon_rom_vecs
00FFF632 FFF634 fcw mon_rom_vecs
mon_rom_vecs:
00FFF3B9 FFEEA7 fcw Monitor ; enter monitor program
00FFF3BB FFECDA fcw INCH ; input a character
00FFF3BD FFED12 fcw OUTCH ; output a character
00FFF3BF FFD0D2 fcw CRLF ; output carriage-return, line feed
00FFF3C1 FFE3BF fcw DisplayString
00FFF3C3 FFE413 fcw DispByteAsHex
00FFF3C5 FFE40A fcw DispWordAsHex
00FFF3C7 FFED1C fcw ShowSprites
00FFF3C9 FFEDA0 fcw mon_srand
00FFF3CB FFEDCE fcw mon_rand
00FFF3CD 000000 fcw 0 ; operating system call
00FFF3CF FFEFC6 fcw GetRange
00FFF634 FFF039 fcw Monitor ; enter monitor program
00FFF636 FFEEA9 fcw INCH ; input a character
00FFF638 FFEEE1 fcw OUTCH ; output a character
00FFF63A FFD0D2 fcw CRLF ; output carriage-return, line feed
00FFF63C FFE3DA fcw DisplayString
00FFF63E FFE437 fcw DispByteAsHex
00FFF640 FFE42E fcw DispWordAsHex
00FFF642 FFEEEB fcw ShowSprites
00FFF644 FFEF6F fcw mon_srand
00FFF646 FFEF9D fcw mon_rand
00FFF648 000000 fcw 0 ; operating system call
00FFF64A FFF1A3 fcw GetRange
00FFF64C FFF262 fcw GetNumber
NumFuncs EQU (*-mon_rom_vectab)/2
; The following table indicates which routines need to return values in the
; D and possibly X registers.
mon_rettab:
00FFF64E 000 fcb 0 ; monitor
00FFF64F 800 fcb $800 ; INCH
00FFF650 000 fcb 0 ; OUTCH
00FFF651 000 fcb 0 ; CRLF
00FFF652 000 fcb 0 ; DisplayString
00FFF653 000 fcb 0 ; DisplayByte
00FFF654 000 fcb 0 ; DisplayWord
00FFF655 000 fcb 0 ; show sprites
00FFF656 000 fcb 0 ; srand
00FFF657 C00 fcb $C00 ; rand
00FFF658 C00 fcb $C00 ; OS call
00FFF659 000 fcb 0 ; GetRange
00FFF65A 800 fcb $800 ; GetNumber
;------------------------------------------------------------------------------
; SWI routine.
;
3767,235 → 4158,248
;------------------------------------------------------------------------------
swi_rout:
00FFF3D1 0E680CFDF ldb bootpg,pcr ; reset direct page
00FFF3D4 01F09B tfr b,dp
00FFF65B 0E680CFD0 ldb bootpg,pcr ; reset direct page
00FFF65E 01F09B tfr b,dp
swi_rout1:
00FFF3D6 0EE60B ldu 11,s ; get program counter (low order 2 bytes)
00FFF3D8 0335FF leau -1,u ; backup a byte
00FFF3DA 07D000810 tst BreakpointFlag ; are we in breakpoint mode?
00FFF3DD 02700F beq swiNotBkpt
00FFF3DF 0CE000820 ldu #Breakpoints
00FFF3E2 0F6000811 ldb NumSetBreakpoints
00FFF3E5 027007 beq swiNotBkpt
00FFF660 0EE60B ldu 11,s ; get program counter (low order 2 bytes)
00FFF662 0335FF leau -1,u ; backup a byte
00FFF664 07D000810 tst BreakpointFlag ; are we in breakpoint mode?
00FFF667 02700F beq swiNotBkpt
00FFF669 0CE000820 ldu #Breakpoints
00FFF66C 0F6000811 ldb NumSetBreakpoints
00FFF66F 027007 beq swiNotBkpt
swi_rout2:
00FFF3E7 2A3A01 cmpu ,y++
00FFF3E9 027033 beq processBreakpoint
00FFF3EB 05A decb
00FFF3EC 026FF9 bne swi_rout2
00FFF671 2A3A01 cmpu ,y++
00FFF673 02704B beq processBreakpoint
00FFF675 05A decb
00FFF676 026FF9 bne swi_rout2
swiNotBkpt:
00FFF3EE 07F000810 clr BreakpointFlag
00FFF3F1 037006 pulu d ; get function #, increment PC
00FFF3F3 0C100D cmpb #NumFuncs
00FFF3F5 122FFFC5D lbhi DisplayErr
00FFF678 07F000810 clr BreakpointFlag
00FFF67B 037006 pulu d ; get function #, increment PC
00FFF67D 0C100E cmpb #NumFuncs
00FFF67F 122FFFC34 lbhi DisplayErr
*** warning 1: Long branch within short branch range could be optimized
00FFF3F8 0EF60B stu 11,s ; save updated PC on stack
00FFF3FA 0C100A cmpb #MF_OSCALL
00FFF3FC 027056 beq swiCallOS
00FFF3FE 058 aslb ; 2 bytes per vector
00FFF3FF 0AE80CFB5 ldx mon_rom_vectab,pcr
00FFF402 03A abx
00FFF403 0AE804 ldx ,x
00FFF405 0BF000928 stx jmpvec
00FFF408 1FF000908 sts mon_SSAVE ; save the stack pointer
00FFF40B 0EC601 ldd 1,s ; get back D
00FFF40D 0AE604 ldx 4,s ; get back X
00FFF40F 1AE606 ldy 6,s ; get back Y
00FFF411 0EE608 ldu 8,s ; get back U
00FFF413 1EE80CF9E lds boot_stack,pcr ; and use our own stack
00FFF416 0AD90F000928 jsr [jmpvec] ; call the routine
00FFF682 0EF60B stu 11,s ; save updated PC on stack
00FFF684 0C100A cmpb #MF_OSCALL
00FFF686 02706D beq swiCallOS
00FFF688 058 aslb ; 2 bytes per vector
00FFF689 0AE80CFA6 ldx mon_rom_vectab,pcr
00FFF68C 03A abx
00FFF68D 0AE804 ldx ,x
00FFF68F 0BF000928 stx jmpvec
00FFF692 054 lsrb
00FFF693 08EFFF64E ldx #mon_rettab
00FFF696 03A abx
00FFF697 0E6804 ldb ,x
00FFF699 0F7000930 stb mon_retflag
00FFF69C 1FF000908 sts mon_SSAVE ; save the stack pointer
00FFF69F 0EC601 ldd 1,s ; get back D
00FFF6A1 0AE604 ldx 4,s ; get back X
00FFF6A3 1AE606 ldy 6,s ; get back Y
00FFF6A5 0EE608 ldu 8,s ; get back U
00FFF6A7 1EE80CF85 lds boot_stack,pcr ; and use our own stack
00FFF6AA 0AD90F000928 jsr [jmpvec] ; call the routine
swi_rout3:
00FFF41A 1FE000908 lds mon_SSAVE ; restore stack
00FFF41D 03B rti
00FFF6AE 1FE000908 lds mon_SSAVE ; restore stack
00FFF6B1 07D000930 tst mon_retflag
00FFF6B4 02A009 bpl swi_rout4
00FFF6B6 0ED601 std 1,s ; return value in D
00FFF6B8 078000930 asl mon_retflag
00FFF6BB 02A002 bpl swi_rout4
00FFF6BD 0AF604 stx 4,s ; return value in X
swi_rout4:
00FFF6BF 03B rti
processBreakpoint:
00FFF41E 0A6E04 lda ,s
00FFF420 0B700090F sta mon_CCRSAVE
00FFF423 0EC601 ldd 1,s
00FFF425 0FD000900 std mon_DSAVE
00FFF428 0E6603 ldb 3,s
00FFF42A 0F700090E stb mon_DPRSAVE
00FFF42D 0EC604 ldd 4,s
00FFF42F 0FD000902 std mon_XSAVE
00FFF432 0EC606 ldd 6,s
00FFF434 0FD000904 std mon_YSAVE
00FFF437 0EC608 ldd 8,s
00FFF439 0FD000906 std mon_USAVE
00FFF43C 1FF000908 sts mon_SSAVE
00FFF43F 0EC60B ldd 11,s
00FFF441 0FD00090A std mon_PCSAVE
00FFF444 1EE80CF6D lds boot_stack,pcr
00FFF447 0CCFFF41A ldd #swi_rout3 ; setup so monitor can return
00FFF44A 034006 pshs d
00FFF44C 08D020 bsr DisarmAllBreakpoints
00FFF44E 016FFFE7E lbra DumpRegs
00FFF6C0 0A6E04 lda ,s
00FFF6C2 0B700090F sta mon_CCRSAVE
00FFF6C5 0EC601 ldd 1,s
00FFF6C7 0FD000900 std mon_DSAVE
00FFF6CA 0E6603 ldb 3,s
00FFF6CC 0F700090E stb mon_DPRSAVE
00FFF6CF 0EC604 ldd 4,s
00FFF6D1 0FD000902 std mon_XSAVE
00FFF6D4 0EC606 ldd 6,s
00FFF6D6 0FD000904 std mon_YSAVE
00FFF6D9 0EC608 ldd 8,s
00FFF6DB 0FD000906 std mon_USAVE
00FFF6DE 1FF000908 sts mon_SSAVE
00FFF6E1 0EC60B ldd 11,s
00FFF6E3 0FD00090A std mon_PCSAVE
00FFF6E6 1EE80CF46 lds boot_stack,pcr
00FFF6E9 0CCFFF6AE ldd #swi_rout3 ; setup so monitor can return
00FFF6EC 034006 pshs d
00FFF6EE 08D01F bsr DisarmAllBreakpoints
00FFF6F0 016FFFE57 lbra DumpRegs
*** warning 1: Long branch within short branch range could be optimized
xitMonitor:
00FFF451 08D03A bsr ArmAllBreakpoints
00FFF453 039 rts
00FFF6F3 020039 bra ArmAllBreakpoints
swiCallOS:
00FFF454 033401 leau 1,u ; next byte is func number
00FFF456 0E6C00 ldb ,u+
00FFF458 0C1019 cmpb #NumOSFuncs ; check for valid range
00FFF45A 122FFFBF8 lbhi DisplayErr
00FFF6F5 033401 leau 1,u ; next byte is func number
00FFF6F7 0E6C00 ldb ,u+
00FFF6F9 0C1019 cmpb #NumOSFuncs ; check for valid range
00FFF6FB 122FFFBB8 lbhi DisplayErr
*** warning 1: Long branch within short branch range could be optimized
00FFF45D 0EF60B stu 11,s ; save updateed PC on stack
00FFF45F 058 aslb ; compute vector address
00FFF460 08EFFED27 ldx #OSCallTbl
00FFF463 06DE0F tst b,x ; check for non-zero vector
00FFF465 027FB3 beq swi_rout3
00FFF6FE 0EF60B stu 11,s ; save updateed PC on stack
00FFF700 058 aslb ; compute vector address
00FFF701 08EFFEEF6 ldx #OSCallTbl
00FFF704 06DE0F tst b,x ; check for non-zero vector
00FFF706 027FA6 beq swi_rout3
osc1:
; tst OSSEMA+1 ; wait for availability
; beq osc1
00FFF467 0ADF0F jsr [b,x] ; call the OS routine
00FFF708 0ADF0F jsr [b,x] ; call the OS routine
oscx:
00FFF469 07FEF0011 clr OSSEMA+1
00FFF46C 020FAC bra swi_rout3
00FFF70A 07FEF0011 clr OSSEMA+1
00FFF70D 020F9F bra swi_rout3
DisarmAllBreakpoints:
00FFF46E 034036 pshs d,x,y
00FFF470 18E000000 ldy #0
00FFF473 05F clrb
00FFF474 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
00FFF70F 034036 pshs d,x,y
00FFF711 18E000000 ldy #0
00FFF714 05F clrb
00FFF715 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
disarm2:
00FFF477 0C13B6 cmpb #numBreakpoints ; safety check
00FFF479 024010 bhs disarm1
00FFF47B 0F1000811 cmpb NumSetBreakpoints
00FFF47E 02400B bhs disarm1
00FFF480 0A6837 lda b,x ; get memory byte
00FFF482 0A7B09000820 sta [Breakpoints,y] ; and store it back to memory
00FFF486 031202 leay 2,y ; increment for next address
00FFF488 05C incb ; increment to next byte
00FFF489 020FEC bra disarm2 ; loop back
00FFF718 0C1631 cmpb #numBreakpoints ; safety check
00FFF71A 024010 bhs disarm1
00FFF71C 0F1000811 cmpb NumSetBreakpoints
00FFF71F 02400B bhs disarm1
00FFF721 0A6837 lda b,x ; get memory byte
00FFF723 0A7B09000820 sta [Breakpoints,y] ; and store it back to memory
00FFF727 031202 leay 2,y ; increment for next address
00FFF729 05C incb ; increment to next byte
00FFF72A 020FEC bra disarm2 ; loop back
disarm1:
00FFF48B 0350B6 puls d,x,y,pc
00FFF72C 0350B6 puls d,x,y,pc
ArmAllBreakpoints:
00FFF48D 034036 pshs d,x,y
00FFF48F 18E000000 ldy #0
00FFF492 05F clrb
00FFF493 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
00FFF72E 034036 pshs d,x,y
00FFF730 18E000000 ldy #0
00FFF733 05F clrb
00FFF734 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
arm2:
00FFF496 0C13B6 cmpb #numBreakpoints ; safety check
00FFF498 024010 bhs arm1
00FFF49A 0F1000811 cmpb NumSetBreakpoints
00FFF49D 02400B bhs arm1
00FFF49F 0A6B09000820 lda [Breakpoints,y] ; load byte at memory address
00FFF4A3 0A7B0D sta b,x ; save in table
00FFF4A5 031202 leay 2,y ; increment for next address
00FFF4A7 05C incb ; increment to next byte
00FFF4A8 020FEC bra arm2 ; loop back
00FFF737 0F1FFF631 cmpb numBreakpoints ; safety check
00FFF73A 024010 bhs arm1
00FFF73C 0F1000811 cmpb NumSetBreakpoints
00FFF73F 02400B bhs arm1
00FFF741 0A6B09000820 lda [Breakpoints,y] ; load byte at memory address
00FFF745 0A7B0D sta b,x ; save in table
00FFF747 031202 leay 2,y ; increment for next address
00FFF749 05C incb ; increment to next byte
00FFF74A 020FEB bra arm2 ; loop back
arm1:
00FFF4AA 0350B6 puls d,x,y,pc
00FFF74C 0350B6 puls d,x,y,pc
ArmBreakpoint:
00FFF4AC 034036 pshs d,x,y
00FFF4AE 0B6000811 lda NumSetBreakpoints ; check if too many breakpoints set
00FFF4B1 0813B6 cmpa #numBreakpoints
00FFF4B3 124FFFB9F lbhs DisplayErr
00FFF74E 034036 pshs d,x,y
00FFF750 0B6000811 lda NumSetBreakpoints ; check if too many breakpoints set
00FFF753 0B1FFF631 cmpa numBreakpoints
00FFF756 124FFFB5D lbhs DisplayErr
*** warning 1: Long branch within short branch range could be optimized
00FFF4B6 017FFFB36 lbsr GetHexNumber ; get address parameter
00FFF759 017FFFA70 lbsr GetHexNumber ; get address parameter
*** warning 1: Long branch within short branch range could be optimized
00FFF4B9 0F6000811 ldb NumSetBreakpoints ; bv= number of set breakpoints
00FFF4BC 1BE000912 ldy mon_numwka+2 ; get address
00FFF4BF 0A6A04 lda ,y ; get byte at address
00FFF4C1 08E000830 ldx #BreakpointBytes ; and store byte in a table
00FFF4C4 0A7A05 sta b,x
00FFF4C6 08E000820 ldx #Breakpoints ; also store the address in a table
00FFF4C9 058 aslb ; index for 2 byte values
00FFF4CA 1AFA05 sty b,x
00FFF4CC 054 lsrb ; size back to single byte
00FFF4CD 05C incb
00FFF4CE 0F7000811 stb NumSetBreakpoints
00FFF4D1 0350B6 puls d,x,y,pc
00FFF75C 0F6000811 ldb NumSetBreakpoints ; bv= number of set breakpoints
00FFF75F 1BE000912 ldy mon_numwka+2 ; get address
00FFF762 0A6A04 lda ,y ; get byte at address
00FFF764 08E000830 ldx #BreakpointBytes ; and store byte in a table
00FFF767 0A7A05 sta b,x ; record
00FFF769 08603F lda #OPC_SWI ; put a SWI instruction in place
00FFF76B 0A7A04 sta ,y
00FFF76D 08E000820 ldx #Breakpoints ; also store the address in a table
00FFF770 058 aslb ; index for 2 byte values
00FFF771 1AFA05 sty b,x
00FFF773 054 lsrb ; size back to single byte
00FFF774 05C incb
00FFF775 0F7000811 stb NumSetBreakpoints
00FFF778 0350B6 puls d,x,y,pc
DisarmBreakpoint:
00FFF4D3 034076 pshs d,x,y,u
00FFF4D5 017FFFB17 lbsr GetHexNumber
00FFF77A 034076 pshs d,x,y,u
00FFF77C 017FFFA4D lbsr GetHexNumber
*** warning 1: Long branch within short branch range could be optimized
00FFF4D8 05F clrb
00FFF4D9 05F clrb
00FFF4DA 01F001 tfr d,x ; x = zero too
00FFF77F 05F clrb
00FFF780 05F clrb
00FFF781 01F001 tfr d,x ; x = zero too
disarm6:
00FFF4DC 0C13B6 cmpb #numBreakpoints ; no more than this many may be set
00FFF4DE 02403F bhs disarm4
00FFF4E0 0F1000811 cmpb NumSetBreakpoints ; number actually set
00FFF4E3 02403A bhs disarm4
00FFF4E5 1AE809000820 ldy Breakpoints,x ; y = breakpoint address
00FFF4E9 1BC000912 cmpy mon_numwka+2 ; is it the one we want?
00FFF4EC 02602C bne disarm3 ; if not, go increment to next
00FFF4EE 0BE000912 ldx mon_numwka+2 ; x = memory address
00FFF4F1 18E000830 ldy #BreakpointBytes
00FFF4F4 0A6A0D lda b,y ; get saved byte from table
00FFF4F6 0A7804 sta ,x ; set the byte at the memory address
00FFF783 0F1FFF631 cmpb numBreakpoints ; no more than this many may be set
00FFF786 024041 bhs disarm4
00FFF788 0F1000811 cmpb NumSetBreakpoints ; number actually set
00FFF78B 02403C bhs disarm4
00FFF78D 1AE809000820 ldy Breakpoints,x ; y = breakpoint address
00FFF791 1BC000912 cmpy mon_numwka+2 ; is it the one we want?
00FFF794 02602E bne disarm3 ; if not, go increment to next
00FFF796 0BE000912 ldx mon_numwka+2 ; x = memory address
00FFF799 18E000830 ldy #BreakpointBytes
00FFF79C 0A6A0D lda b,y ; get saved byte from table
00FFF79E 0A7804 sta ,x ; set the byte at the memory address
; compress breakpoint table by removing breakpoint
00FFF4F8 07A000811 dec NumSetBreakpoints ; set the new number of set breakpoints
00FFF4FB 034004 pshs b ; save the position we're removing from
00FFF7A0 07A000811 dec NumSetBreakpoints ; set the new number of set breakpoints
00FFF7A3 034004 pshs b ; save the position we're removing from
disarm7:
00FFF4FD 05C incb ; set index for next byte
00FFF4FE 0A6A05 lda b,y ; get byte
00FFF500 05A decb ; and store it back
00FFF501 0A7A05 sta b,y
00FFF503 05C incb ; move to next position
00FFF504 0C13B6 cmpb #numBreakpoints ; hit end of table?
00FFF506 025FF5 blo disarm7
00FFF508 035004 puls b ; get back position
00FFF50A 058 aslb ; times two for word index
00FFF50B 04F clra
00FFF50C 01F002 tfr d,y
00FFF50E 054 lsrb ; back to byte index value
00FFF7A5 05C incb ; set index for next byte
00FFF7A6 0A6A05 lda b,y ; get byte
00FFF7A8 05A decb ; and store it back
00FFF7A9 0A7A05 sta b,y
00FFF7AB 05C incb ; move to next position
00FFF7AC 0F1FFF631 cmpb numBreakpoints ; hit end of table?
00FFF7AF 025FF4 blo disarm7
00FFF7B1 035004 puls b ; get back position
00FFF7B3 058 aslb ; times two for word index
00FFF7B4 04F clra
00FFF7B5 01F002 tfr d,y
00FFF7B7 054 lsrb ; back to byte index value
disarm8:
00FFF50F 0EE202 ldu 2,y ; get next breakpoint address
00FFF511 0EFA01 stu ,y++ ; store in current pos, increment
00FFF513 05C incb ; increment count
00FFF514 0C13B6 cmpb #numBreakpoints ; hit end of table?
00FFF516 025FF7 blo disarm8
00FFF518 0350F6 puls d,x,y,u,pc
00FFF7B8 0EE202 ldu 2,y ; get next breakpoint address
00FFF7BA 0EFA01 stu ,y++ ; store in current pos, increment
00FFF7BC 05C incb ; increment count
00FFF7BD 0F1FFF631 cmpb numBreakpoints ; hit end of table?
00FFF7C0 025FF6 blo disarm8
00FFF7C2 0350F6 puls d,x,y,u,pc
disarm3:
00FFF51A 030002 leax 2,x
00FFF51C 05C incb
00FFF51D 020FBD bra disarm6
00FFF7C4 030002 leax 2,x
00FFF7C6 05C incb
00FFF7C7 020FBA bra disarm6
disarm4:
00FFF51F 0350F6 puls d,x,y,u,pc
00FFF7C9 0350F6 puls d,x,y,u,pc
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
swi3_rout:
00FFF521 01A010 sei
00FFF523 0A6E04 lda ,s
00FFF525 0B700090F sta mon_CCRSAVE
00FFF528 0EC601 ldd 1,s
00FFF52A 0FD000900 std mon_DSAVE
00FFF52D 0E6603 ldb 3,s
00FFF52F 0F700090E stb mon_DPRSAVE
00FFF532 0EC604 ldd 4,s
00FFF534 0FD000902 std mon_XSAVE
00FFF537 0EC606 ldd 6,s
00FFF539 0FD000904 std mon_YSAVE
00FFF53C 0EC608 ldd 8,s
00FFF53E 0FD000906 std mon_USAVE
00FFF541 1FF000908 sts mon_SSAVE
00FFF544 0EC60B ldd 11,s
00FFF546 0FD00090A std mon_PCSAVE
00FFF549 1FF000908 sts mon_SSAVE
00FFF54C 1CE003FFF lds #$3FFF
00FFF54F 0CCFFF559 ldd #swi3_exit
00FFF552 034006 pshs d
00FFF554 01C0EF cli
00FFF556 07EFFF2CF jmp DumpRegs
00FFF7CB 01A010 sei
00FFF7CD 0A6E04 lda ,s
00FFF7CF 0B700090F sta mon_CCRSAVE
00FFF7D2 0EC601 ldd 1,s
00FFF7D4 0FD000900 std mon_DSAVE
00FFF7D7 0E6603 ldb 3,s
00FFF7D9 0F700090E stb mon_DPRSAVE
00FFF7DC 0EC604 ldd 4,s
00FFF7DE 0FD000902 std mon_XSAVE
00FFF7E1 0EC606 ldd 6,s
00FFF7E3 0FD000904 std mon_YSAVE
00FFF7E6 0EC608 ldd 8,s
00FFF7E8 0FD000906 std mon_USAVE
00FFF7EB 1FF000908 sts mon_SSAVE
00FFF7EE 0EC60B ldd 11,s
00FFF7F0 0FD00090A std mon_PCSAVE
00FFF7F3 1FF000908 sts mon_SSAVE
00FFF7F6 1CE003FFF lds #$3FFF
00FFF7F9 0CCFFF803 ldd #swi3_exit
00FFF7FC 034006 pshs d
00FFF7FE 01C0EF cli
00FFF800 07EFFF54A jmp DumpRegs
swi3_exit:
00FFF559 1FE000908 lds mon_SSAVE
00FFF55C 03B rti
00FFF803 1FE000908 lds mon_SSAVE
00FFF806 03B rti
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
firq_rout:
00FFF55D 03B rti
00FFF807 03B rti
irq_rout:
; lbsr SerialIRQ ; check for recieved character
00FFF55E 017FFEF0B lbsr TimerIRQ
00FFF808 017FFEC85 lbsr TimerIRQ
*** warning 1: Long branch within short branch range could be optimized
; Reset the edge sense circuit in the PIC
4011,11 → 4415,11
; inc $E00037 ; update timer IRQ screen flag
;notTimerIRQ2:
00FFF561 0B6FFC014 lda IrqBase ; get the IRQ flag byte
00FFF564 044 lsra
00FFF565 0BAFFC014 ora IrqBase
00FFF568 084FE0 anda #$FE0
00FFF56A 0B7FFC014 sta IrqBase
00FFF80B 0B6FFC014 lda IrqBase ; get the IRQ flag byte
00FFF80E 044 lsra
00FFF80F 0BAFFC014 ora IrqBase
00FFF812 084FE0 anda #$FE0
00FFF814 0B7FFC014 sta IrqBase
; inc TEXTSCR+54 ; update IRQ live indicator on screen
4045,17 → 4449,17
; rola
; sta $E00000,y ; store the color code back to memory
tr1a:
00FFF56D 03B rti
00FFF817 03B rti
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
nmi_rout:
00FFF56E 0150F6FFFFFFFE0 ldb COREID
00FFF573 086049 lda #'I'
00FFF575 08EE00028 ldx #TEXTSCR+40
00FFF578 0A7807 sta b,x
00FFF818 0150F6FFFFFFFE0 ldb COREID
00FFF81D 086049 lda #'I'
00FFF81F 08EE00028 ldx #TEXTSCR+40
00FFF822 0A7807 sta b,x
rti_insn:
00FFF57A 03B rti
00FFF824 03B rti
; Special Register Area
org $FFFFE0
4063,150 → 4467,162
; Interrupt vector table
org $FFFFF0
00FFFFF0 FFF57A fcw rti_insn ; reserved
00FFFFF2 FFF521 fcw swi3_rout ; SWI3
00FFFFF4 FFF57A fcw rti_insn ; SWI2
00FFFFF6 FFF55D fcw firq_rout ; FIRQ
00FFFFF8 FFF55E fcw irq_rout ; IRQ
00FFFFFA FFF3D1 fcw swi_rout ; SWI
00FFFFFC FFF56E fcw nmi_rout ; NMI
00FFFFF0 FFF824 fcw rti_insn ; reserved
00FFFFF2 FFF7CB fcw swi3_rout ; SWI3
00FFFFF4 FFF824 fcw rti_insn ; SWI2
00FFFFF6 FFF807 fcw firq_rout ; FIRQ
00FFFFF8 FFF808 fcw irq_rout ; IRQ
00FFFFFA FFF65B fcw swi_rout ; SWI
00FFFFFC FFF818 fcw nmi_rout ; NMI
00FFFFFE FFE023 fcw start ; RST
 
66 warning(s) in pass 2.
 
SYMBOL TABLE
ACIA 00 FFE30100 ACIA_CMD 00 00000002 ACIA_CTRL 00 00000003 ACIA_CTRL2 00 0000000B
ACIA_RX 00 00000000 ACIA_STAT 00 00000001 ACIA_TX 00 00000000 ARM1 02 00FFF4AA
ARM2 02 00FFF496 ARMALLBREAKPOINTS 02 00FFF48D ARMBREAKPOINT 02 00FFF4AC ASCIITODECNYBBLE 02 00FFF047
ASCIITOHEXNYBBLE 02 00FFF01F ASMBUF 00 00000160 BIOS_SCREENS 00 17000000 BLANKLINE 02 00FFE275
BLKCPYDST 00 00000020 BLKCPYSRC 00 0000001C BLNKLN1 02 00FFE288 BOOTPG 02 00FFF3B3
BOOT_STACK 02 00FFF3B4 BREAKPOINTBYTES 00 00000830 BREAKPOINTFLAG 00 00000810 BREAKPOINTS 00 00000820
CALCSCREENLOC 02 00FFE2DB CHARCOLOR 00 00000112 CHARINVEC 00 00000804 CHAROUTVEC 00 00000800
CHECKPOINT 02 00FFE132 CLEARSCREEN 02 00FFE22E CLEARSCREENJMP 02 00FFD300 CMDPROMPT 02 00FFEE30
CMDPROMPTJI 00 00000808 CMDTABLE1 02 00FFEDE3 CMDTABLE2 02 00FFEE0E COLORCODELOCATION 00 00000014
COLS 00 00000040 COPYSCREENTOVIRTUALSCREEN 02 00FFE1FE COPYVIRTUALSCREENTOSCREEN 02 00FFE1C7 COREID 00 FFFFFFE0
CR 00 0000000D CRLF 02 00FFD0D2 CRLF1 02 00FFD0D2 CRLFST 02 00FFE3FE
CS1 02 00FFE23B CS2 02 00FFE252 CS2V1 02 00FFE20A CS3 02 00FFE258
CSL1 02 00FFE2F6 CTRLC 00 00000003 CTRLH 00 00000008 CTRLI 00 00000009
CTRLJ 00 0000000A CTRLK 00 0000000B CTRLM 00 0000000D CTRLS 00 00000013
CTRLT 00 00000014 CTRLX 00 00000018 CURSORCOL 00 00000111 CURSORFLASH 00 00000114
CURSORROW 00 00000110 CV2S1 02 00FFE1DC DBGCHECKFORKEY 02 00FFEA10 DBGK1 02 00FFEA4B
DBGK10 02 00FFEAB0 DBGK11 02 00FFEB09 DBGK12 02 00FFEB0F DBGK13 02 00FFEB1B
DBGK14 02 00FFEB2B DBGK15 02 00FFEB3A DBGK16 02 00FFEB45 DBGK17 02 00FFEB4E
DBGK18 02 00FFEB51 DBGK2 02 00FFEA16 DBGK20 02 00FFEA38 DBGK22 02 00FFEA54
DBGK23 02 00FFEA65 DBGK24 02 00FFEA46 DBGK3 02 00FFEA68 DBGK4 02 00FFEA74
DBGK5 02 00FFEA80 DBGK7 02 00FFEA90 DBGK8 02 00FFEA96 DBGK9 02 00FFEAAA
DBGKNOTALT 02 00FFEB13 DBGKNOTCAPSLOCK 02 00FFEAE2 DBGKNOTCTRL 02 00FFEA9A DBGKNOTNUMLOCK 02 00FFEACB
DBGKNOTRSHIFT 02 00FFEAB4 DBGKNOTSCROLLLOCK 02 00FFEAF9 DCCR 02 00FFE30E DCLF 02 00FFE398
DCX10 02 00FFE348 DCX11 02 00FFE358 DCX12 02 00FFE354 DCX13 02 00FFE364
DCX14 02 00FFE30B DCX3 02 00FFE386 DCX4 02 00FFE39A DCX5 02 00FFE375
DCX6 02 00FFE31F DCX7 02 00FFE31B DCX8 02 00FFE32C DCX9 02 00FFE339
DELAY3S 02 00FFE1AA DFL1 02 00FFF3A6 DFL2 02 00FFF393 DISARM1 02 00FFF48B
DISARM2 02 00FFF477 DISARM3 02 00FFF51A DISARM4 02 00FFF51F DISARM6 02 00FFF4DC
DISARM7 02 00FFF4FD DISARM8 02 00FFF50F DISARMALLBREAKPOINTS 02 00FFF46E DISARMBREAKPOINT 02 00FFF4D3
DISPBYTEASHEX 02 00FFE413 DISPDWORDASHEX 02 00FFE401 DISPLAYCHAR 02 00FFE2FE DISPLAYERR 02 00FFF055
DISPLAYSTRING 02 00FFE3BF DISPLAYSTRINGCRLF 02 00FFE3D6 DISPLAYSTRINGDX 02 00FFF05E DISPNYB 02 00FFE42B
DISPNYB1 02 00FFE43A DISPWORDASHEX 02 00FFE40A DLY3S1 02 00FFE1AD DLY3S2 02 00FFE1B1
DMPM1 02 00FFF226 DMPM2 02 00FFF211 DMPM3 02 00FFF25F DMPM4 02 00FFF251
DMPM5 02 00FFF249 DRAMERR 02 00FFD48F DRAMTEST 02 00FFD443 DRAMTEST1 02 00FFD453
DRAMTEST3 02 00FFD46F DRAMTEST4 02 00FFD460 DRAMTEST5 02 00FFD47C DRAM_BASE 00 10000000
DSPJ1B 02 00FFE3C8 DSPJ2 02 00FFE3C3 DSRETB 02 00FFE3D1 DUMPIOFOCUSLIST 02 00FFF390
DUMPMEMORY 02 00FFF209 DUMPREGS 02 00FFF2CF DUMRTS 02 00FFE022 EDITMEM1 02 00FFF283
EDITMEM2 02 00FFF26E EDITMEM3 02 00FFF2A2 EDITMEM4 02 00FFF28D EDITMEM6 02 00FFF299
EDITMEMORY 02 00FFF265 ENDOFWORD 02 00FFEF06 FARFLAG 00 0000015F FILLM1 02 00FFF2B5
FILLM2 02 00FFF2C5 FILLM3 02 00FFF2CC FILLMEMORY 02 00FFF2A5 FIRQ_ROUT 02 00FFF55D
FIRST_CORE 00 00000001 FREEMBX 02 00000002 FREEMSG 02 00000006 FREETCB 00 0000078A
GETHEXNUMBER 02 00FFEFEF GETKEY 02 00FFEA12 GETRANGE 02 00FFEFC6 GETSCREENLOCATION 02 00FFE28F
GETTWOPARAMS 02 00FFEFA5 GRNG1 02 00FFEFE1 GSL1 02 00FFE29D GTDC3 02 00FFF052
GTHX3 02 00FFF044 GTHX5 02 00FFF02A GTHX6 02 00FFF037 GTHXN1 02 00FFF01B
GTHXN2 02 00FFEFFC HC1 02 00FFE2B7 HELPMSG 02 00FFF06E HEX2 02 00FFD2CE
HEX4 02 00FFD2D2 HOMECURSOR 02 00FFE2A1 HOMECURSORJMP 02 00FFD308 I2CW1 02 00FFE49B
I2CWR1 02 00FFE4C8 I2C_CMD 00 00000004 I2C_CTRL 00 00000002 I2C_INIT 02 00FFE48F
I2C_PREH 00 00000001 I2C_PREL 00 00000000 I2C_RXR 00 00000003 I2C_STAT 00 00000004
I2C_TXR 00 00000003 I2C_WAIT_RX_NACK 02 00FFE4C6 I2C_WAIT_TIP 02 00FFE499 I2C_WR_CMD 02 00FFE4A3
I2C_XMIT1 02 00FFE4AC ICC1 02 00FFE3BB ICC2 02 00FFE3BD ICR1 02 00FFE3AD
IGNBLANKS 02 00FFEF53 IGNBLANKS1 02 00FFEF53 INCCURSORPOS 02 00FFE39C INCCURSORROW 02 00FFE3AB
INCH 02 00FFECDA INCH1 02 00FFECEF INCH2 02 00FFECDC INCHE 02 00FFECF8
INCHEK 02 00FFECFC INCHEK1 02 00FFED11 INCHEK2 02 00FFED0E INCHEK3 02 00FFED05
INIT 02 00FFE09E INIT1 02 00FFE0A6 INITSERIAL 02 00FFEB6F IOFOCUSID 00 00FFC010
IOFOCUSLIST 00 00FFC000 IOFOCUSNDX 00 00000100 IRQBASE 00 00FFC014 IRQFLAG 00 00FFC012
IRQSOURCE 00 00FFC011 IRQ_ROUT 02 00FFF55E JMPVEC 00 00000928 JTC_EXIT 02 00FFF355
JUMP_TO_CODE 02 00FFF31A KBDBUFFULL 02 00FFEA0D KBDFIFO 00 00000040 KBDFIFOALIAS 00 00C00040
KBDHEADRCV 00 00000127 KBDI0002 02 00FFE949 KBDI0004 02 00FFE98E KBDITRYAGAIN 02 00FFE982
KBDRCVCOUNT 02 00FFE9BD KBDTAILRCV 00 00000128 KBGS1 02 00FFE8F8 KBGS2 02 00FFE8F0
KBGS3 02 00FFE8E1 KEYBD 00 FFE30400 KEYBDACK 00 FFFFCC00 KEYBDBAD 00 FFFFCB00
KEYBDBLOCK 00 00000126 KEYBDBUFFER 00 FFFFC000 KEYBDCHECKFORKEYDIRECT 02 00FFECD8 KEYBDCLOSE 02 00FFEB6B
KEYBDCLR 00 FFE30402 KEYBDCONTROLCODES 02 00FFE780 KEYBDECHO 00 FFFFCA00 KEYBDEXTENDEDCODES 02 00FFE800
KEYBDGETID 02 00FFE91C KEYBDGETSCANCODE 02 00FFE8FD KEYBDGETSTATUS 02 00FFE8E1 KEYBDHEAD 00 FFFFC800
KEYBDID 00 00000124 KEYBDINIT 02 00FFE940 KEYBDIRQ 02 00FFE9CF KEYBDLOCKS 00 FFFFCD00
KEYBDOPEN 02 00FFEB6A KEYBDREAD 02 00FFEB6C KEYBDRECVBYTE 02 00FFE880 KEYBDSEEK 02 00FFEB6E
KEYBDSENDBYTE 02 00FFE899 KEYBDSETLED 02 00FFE909 KEYBDTAIL 00 FFFFC900 KEYBDWAITTX 02 00FFE89F
KEYBDWRITE 02 00FFEB6D KEYLED 00 00000122 KEYSTATE1 00 00000120 KEYSTATE2 00 00000121
KGID1 02 00FFE939 KGNOTKBD 02 00FFE93C KRB3 02 00FFE885 KRB4 02 00FFE895
KRCXIT 02 00FFE9CE KWT1 02 00FFE8A4 KWT2 02 00FFE8B5 LEDS 00 FFE60001
LEDXIT 02 00FFE9A2 LETTER 02 00FFD2C1 LF 00 0000000A MAX_TASKNO 00 0000003F
MF_CRLF 00 00000003 MF_DISPLAYBYTEASHEX 00 00000005 MF_DISPLAYSTRING 00 00000004 MF_DISPLAYWORDASHEX 00 00000006
MF_GETRANGE 00 0000000B MF_INCH 00 00000001 MF_MONITOR 00 00000000 MF_OSCALL 00 0000000A
MF_OUTCH 00 00000002 MF_RANDOM 00 00000009 MF_SHOWSPRITES 00 00000007 MF_SRAND 00 00000008
MONERRVEC 00 0000080C MONGETCH 02 00FFEF47 MONGETNONSPACE 02 00FFEF4C MONITOR 02 00FFEEA7
MONITORSTART 02 00FFEE60 MON_CCRSAVE 00 0000090F MON_DPRSAVE 00 0000090E MON_DSAVE 00 00000900
MON_NUMWKA 00 00000910 MON_PCSAVE 00 0000090A MON_R1 00 00000920 MON_R2 00 00000924
MON_RAND 02 00FFEDCE MON_ROM_VECS 02 00FFF3B9 MON_ROM_VECTAB 02 00FFF3B7 MON_SRAND 02 00FFEDA0
MON_SRAND1 02 00FFEDA3 MON_SSAVE 00 00000908 MON_USAVE 00 00000906 MON_VECTB 00 00000880
MON_XSAVE 00 00000902 MON_YSAVE 00 00000904 MSCOUNT 00 FFFFFFE4 MSGBADKEYBD 02 00FFE9AE
MSGERR 02 00FFF066 MSGF09STARTING 02 00FFEE3B MSGREGHEADINGS 02 00FFF1C6 MSGSERIALTEST 02 00FFECC5
MSGSTARTUP 02 00FFE111 MULTI_SIEVE 02 00FFE148 MULTI_SIEVE1 02 00FFE16B MULTI_SIEVE2 02 00FFE167
MULTI_SIEVE3 02 00FFE155 MULTI_SIEVE4 02 00FFE17E NHEX4 02 00FFF200 NMAILBOX 02 00000004
NMESERIAL 02 00FFEC8E NMIBASE 00 00FFC013 NMI_ROUT 02 00FFF56E NMSGBLK 02 00000008
NOTKBDIRQ 02 00FFEA0C NOTRXINT 02 00FFEC8D NOTTIMERIRQ 02 00FFE48E NUMBREAKPOINTS 02 00FFF3B6
NUMFUNCS 00 0000000D NUMOSFUNCS 00 00000019 NUMSETBREAKPOINTS 00 00000811 NXBLANK 02 00FFF204
ONEKEY 02 00FFD1DC OSC1 02 00FFF467 OSCALLTBL 02 00FFED27 OSCX 02 00FFF469
OSSEMA 00 00EF0010 OUTCH 02 00FFED12 OUTSEMA 00 00EF0000 PARSECMD1 02 00FFEEF1
PCRLF 02 00FFE3EA PDATA 02 00FFE3F7 PIC 00 FFE3F000 PICPTR 00 00000028
PRINT 02 00FFE3F4 PRNG 00 FFE30600 PROCESSBREAKPOINT 02 00FFF41E PROMPT1 02 00FFEED4
PROMPT2A 02 00FFEF25 PROMPT3 02 00FFEEC5 PROMPTCLEARSCREEN 02 00FFEF3F PROMPTHELP 02 00FFEF37
PROMPTLN 02 00FFEEC1 PSTRNG 02 00FFE3E6 QNDX0 00 00000780 QNDX1 00 00000782
QNDX2 00 00000784 QNDX3 00 00000786 QNDX4 00 00000788 RAMERR 02 00FFD42C
RAMTEST 02 00FFD400 RAMTEST1 02 00FFD40D RAMTEST3 02 00FFD417 REDIRECT 02 00FFEF11
RELEASEIOFOCUS 02 00FFED70 REQUESTIOFOCUS 02 00FFED59 RIOF1 02 00FFED97 RIOF2 02 00FFED86
ROMTORAM 02 00FFE138 ROMTORAM1 02 00FFE13E ROWS 00 00000020 RTC 00 FFE30500
RTCBUF 00 00007FC0 RTCR0001 02 00FFE4F6 RTCW0001 02 00FFE541 RTC_READ 02 00FFE4D0
RTC_RXERR 02 00FFE51F RTC_WRITE 02 00FFE523 RTI_INSN 02 00FFF57A RUNNINGID 00 00FFC013
RUNNINGTCB 06 00000000 SCANNEXTWORD 02 00FFEEFB SCREENCOLOR 00 00000113 SCREENLOCATION 00 00000010
SCREENLOCATION2 00 00000018 SCROLLUP 02 00FFE25A SCRUP1 02 00FFE267 SC_ALT 00 00000011
ABD1 02 00FFF2AC ABD2 02 00FFF2B3 ACIA 00 FFE30100 ACIA_CMD 00 00000002
ACIA_CTRL 00 00000003 ACIA_CTRL2 00 0000000B ACIA_RX 00 00000000 ACIA_STAT 00 00000001
ACIA_TX 00 00000000 ARM1 02 00FFF74C ARM2 02 00FFF737 ARMALLBREAKPOINTS 02 00FFF72E
ARMBREAKPOINT 02 00FFF74E ASCIITOBINDIGIT 02 00FFF2A6 ASCIITODECDIGIT 02 00FFF298 ASCIITOHEXNYBBLE 02 00FFF270
ASMBUF 00 00000160 BIOS_SCREENS 00 17000000 BLANKLINE 02 00FFE280 BLKCPYDST 00 00000020
BLKCPYSRC 00 0000001C BLNKLN1 02 00FFE293 BOOTPG 02 00FFF62E BOOT_STACK 02 00FFF62F
BREAKPOINTBYTES 00 00000830 BREAKPOINTFLAG 00 00000810 BREAKPOINTS 00 00000820 CALCSCREENLOC 02 00FFE2F2
CHARCOLOR 00 00000112 CHARINVEC 00 00000804 CHAROUTVEC 00 00000800 CHECKPOINT 02 00FFE13D
CLEARSCREEN 02 00FFE239 CLEARSCREENJMP 02 00FFD300 CMDPROMPT 02 00FFF009 CMDPROMPTJI 00 00000808
CMDTABLE1 02 00FFEFB2 CMDTABLE2 02 00FFEFE3 COLORCODELOCATION 00 00000014 COLS 00 00000040
COPYSCREENTOVIRTUALSCREEN 02 00FFE209 COPYVIRTUALSCREENTOSCREEN 02 00FFE1D2 COREID 00 FFFFFFE0 CR 00 0000000D
CRLF 02 00FFD0D2 CRLF1 02 00FFD0D2 CRLFST 02 00FFE422 CS1 02 00FFE246
CS2 02 00FFE25D CS2V1 02 00FFE215 CS3 02 00FFE263 CSL1 02 00FFE311
CTRLC 00 00000003 CTRLH 00 00000008 CTRLI 00 00000009 CTRLJ 00 0000000A
CTRLK 00 0000000B CTRLM 00 0000000D CTRLS 00 00000013 CTRLT 00 00000014
CTRLX 00 00000018 CTRLZ 00 0000001A CURSORCOL 00 00000111 CURSORFLASH 00 00000114
CURSORROW 00 00000110 CV2S1 02 00FFE1E7 DBGCHECKFORKEY 02 00FFEA90 DBGK1 02 00FFEACB
DBGK10 02 00FFEB30 DBGK11 02 00FFEB89 DBGK12 02 00FFEB8F DBGK13 02 00FFEB9B
DBGK14 02 00FFEBAB DBGK15 02 00FFEBBA DBGK16 02 00FFEBC5 DBGK17 02 00FFEBCE
DBGK18 02 00FFEBD1 DBGK2 02 00FFEA96 DBGK20 02 00FFEAB8 DBGK22 02 00FFEAD4
DBGK23 02 00FFEAE5 DBGK24 02 00FFEAC6 DBGK3 02 00FFEAE8 DBGK4 02 00FFEAF4
DBGK5 02 00FFEB00 DBGK7 02 00FFEB10 DBGK8 02 00FFEB16 DBGK9 02 00FFEB2A
DBGKNOTALT 02 00FFEB93 DBGKNOTCAPSLOCK 02 00FFEB62 DBGKNOTCTRL 02 00FFEB1A DBGKNOTNUMLOCK 02 00FFEB4B
DBGKNOTRSHIFT 02 00FFEB34 DBGKNOTSCROLLLOCK 02 00FFEB79 DCCR 02 00FFE329 DCLF 02 00FFE3B3
DCX10 02 00FFE363 DCX11 02 00FFE373 DCX12 02 00FFE36F DCX13 02 00FFE37F
DCX14 02 00FFE326 DCX3 02 00FFE3A1 DCX4 02 00FFE3B5 DCX5 02 00FFE390
DCX6 02 00FFE33A DCX7 02 00FFE336 DCX8 02 00FFE347 DCX9 02 00FFE354
DELAY3S 02 00FFE1B5 DFL1 02 00FFF621 DFL2 02 00FFF60E DISARM1 02 00FFF72C
DISARM2 02 00FFF718 DISARM3 02 00FFF7C4 DISARM4 02 00FFF7C9 DISARM6 02 00FFF783
DISARM7 02 00FFF7A5 DISARM8 02 00FFF7B8 DISARMALLBREAKPOINTS 02 00FFF70F DISARMBREAKPOINT 02 00FFF77A
DISPBYTEASHEX 02 00FFE437 DISPDWORDASHEX 02 00FFE425 DISPLAYCHAR 02 00FFE319 DISPLAYERR 02 00FFF2B6
DISPLAYSTRING 02 00FFE3DA DISPLAYSTRINGCRLF 02 00FFE3FA DISPLAYSTRINGDX 02 00FFF2BF DISPNYB 02 00FFE44F
DISPNYB1 02 00FFE45E DISPWORDASHEX 02 00FFE42E DLY3S1 02 00FFE1B8 DLY3S2 02 00FFE1BC
DMPM1 02 00FFF4A1 DMPM2 02 00FFF48C DMPM3 02 00FFF4DA DMPM4 02 00FFF4CC
DMPM5 02 00FFF4C4 DRAM_BASE 00 10000000 DSPJ1B 02 00FFE3EC DSPJ2 02 00FFE3E7
DSRETB 02 00FFE3F5 DUMPIOFOCUSLIST 02 00FFF60B DUMPMEMORY 02 00FFF484 DUMPREGS 02 00FFF54A
DUMRTS 02 00FFE022 EDITMEM1 02 00FFF4FE EDITMEM2 02 00FFF4E9 EDITMEM3 02 00FFF51D
EDITMEM4 02 00FFF508 EDITMEM6 02 00FFF514 EDITMEMORY 02 00FFF4E0 ENDOFWORD 02 00FFF0ED
FARFLAG 00 0000015F FILLM1 02 00FFF530 FILLM2 02 00FFF540 FILLM3 02 00FFF547
FILLMEMORY 02 00FFF520 FIRQ_ROUT 02 00FFF807 FIRST_CORE 00 00000001 FREEMBX 02 00000002
FREEMSG 02 00000006 FREETCB 00 0000078A GETBINNUMBER 02 00FFF1FC GETDECNUMBER 02 00FFF223
GETHEXNUMBER 02 00FFF1CC GETKEY 02 00FFEA92 GETNUMBER 02 00FFF262 GETRANGE 02 00FFF1A3
GETSCREENLOCATION 02 00FFE29A GETTWOPARAMS 02 00FFF182 GRNG1 02 00FFF1BE GSL1 02 00FFE2AC
GTBIN1 02 00FFF21F GTBIN2 02 00FFF209 GTDC3 02 00FFF2A3 GTDEC1 02 00FFF25E
GTDEC2 02 00FFF230 GTHX3 02 00FFF295 GTHX5 02 00FFF27B GTHX6 02 00FFF288
GTHXN1 02 00FFF1F8 GTHXN2 02 00FFF1D9 HC1 02 00FFE2CA HELPMSG 02 00FFF2CF
HEX2 02 00FFD2CE HEX4 02 00FFD2D2 HOMECURSOR 02 00FFE2B0 HOMECURSORJMP 02 00FFD308
I2CW1 02 00FFE4BF I2CWR1 02 00FFE4EC I2C_CMD 00 00000004 I2C_CTRL 00 00000002
I2C_INIT 02 00FFE4B3 I2C_PREH 00 00000001 I2C_PREL 00 00000000 I2C_RXR 00 00000003
I2C_STAT 00 00000004 I2C_TXR 00 00000003 I2C_WAIT_RX_NACK 02 00FFE4EA I2C_WAIT_TIP 02 00FFE4BD
I2C_WR_CMD 02 00FFE4C7 I2C_XMIT1 02 00FFE4D0 ICC1 02 00FFE3D6 ICC2 02 00FFE3D8
ICR1 02 00FFE3C8 IGNBLANKS 02 00FFF14B IGNBLANKS1 02 00FFF14B INCCURSORPOS 02 00FFE3B7
INCCURSORROW 02 00FFE3C6 INCH 02 00FFEEA9 INCH1 02 00FFEEBE INCH2 02 00FFEEAB
INCHE 02 00FFEEC7 INCHEK 02 00FFEECB INCHEK1 02 00FFEEE0 INCHEK2 02 00FFEEDD
INCHEK3 02 00FFEED4 INIT 02 00FFE0A8 INIT1 02 00FFE0B0 INIT2 02 00FFE0F8
INITSERIAL 02 00FFEBEF IOFOCUSID 00 00FFC010 IOFOCUSLIST 00 00FFC000 IOFOCUSNDX 00 00000100
IRQBASE 00 00FFC014 IRQFLAG 00 00FFC012 IRQSOURCE 00 00FFC011 IRQ_ROUT 02 00FFF808
JMPVEC 00 00000928 JTC_EXIT 02 00FFF5D0 JUMP_TO_CODE 02 00FFF595 KBDBUFFULL 02 00FFEA8D
KBDFIFO 00 00000040 KBDFIFOALIAS 00 00C00040 KBDHEADRCV 00 00000127 KBDI0002 02 00FFE9C9
KBDI0004 02 00FFEA0E KBDITRYAGAIN 02 00FFEA02 KBDRCVCOUNT 02 00FFEA3D KBDTAILRCV 00 00000128
KBGS1 02 00FFE978 KBGS2 02 00FFE970 KBGS3 02 00FFE961 KEYBD 00 FFE30400
KEYBDACK 00 FFFFCC00 KEYBDBAD 00 FFFFCB00 KEYBDBLOCK 00 00000126 KEYBDBUFFER 00 FFFFC000
KEYBDCHECKFORKEYDIRECT 02 00FFEEA7 KEYBDCLOSE 02 00FFEBEB KEYBDCLR 00 FFE30402 KEYBDCONTROLCODES 02 00FFE800
KEYBDECHO 00 FFFFCA00 KEYBDEXTENDEDCODES 02 00FFE880 KEYBDGETID 02 00FFE99C KEYBDGETSCANCODE 02 00FFE97D
KEYBDGETSTATUS 02 00FFE961 KEYBDHEAD 00 FFFFC800 KEYBDID 00 00000124 KEYBDINIT 02 00FFE9C0
KEYBDIRQ 02 00FFEA4F KEYBDLOCKS 00 FFFFCD00 KEYBDOPEN 02 00FFEBEA KEYBDREAD 02 00FFEBEC
KEYBDRECVBYTE 02 00FFE900 KEYBDSEEK 02 00FFEBEE KEYBDSENDBYTE 02 00FFE919 KEYBDSETLED 02 00FFE989
KEYBDTAIL 00 FFFFC900 KEYBDWAITTX 02 00FFE91F KEYBDWRITE 02 00FFEBED KEYLED 00 00000122
KEYSTATE1 00 00000120 KEYSTATE2 00 00000121 KGID1 02 00FFE9B9 KGNOTKBD 02 00FFE9BC
KRB3 02 00FFE905 KRB4 02 00FFE915 KRCXIT 02 00FFEA4E KWT1 02 00FFE924
KWT2 02 00FFE935 LEDS 00 FFE60001 LEDXIT 02 00FFEA22 LETTER 02 00FFD2C1
LF 00 0000000A MAX_TASKNO 00 0000003F MF_CRLF 00 00000003 MF_DISPLAYBYTEASHEX 00 00000005
MF_DISPLAYSTRING 00 00000004 MF_DISPLAYWORDASHEX 00 00000006 MF_GETNUMBER 00 0000000C MF_GETRANGE 00 0000000B
MF_INCH 00 00000001 MF_MONITOR 00 00000000 MF_OSCALL 00 0000000A MF_OUTCH 00 00000002
MF_RANDOM 00 00000009 MF_SHOWSPRITES 00 00000007 MF_SRAND 00 00000008 MON1 02 00FFF08E
MONARMBREAKPOINT 02 00FFF13A MONDISARMBREAKPOINT 02 00FFF145 MONERRVEC 00 0000080C MONGETCH 02 00FFF12E
MONGETNONSPACE 02 00FFF133 MONITOR 02 00FFF039 MON_CCRSAVE 00 0000090F MON_DPRSAVE 00 0000090E
MON_DSAVE 00 00000900 MON_INIT 00 0000092C MON_NUMWKA 00 00000910 MON_PCSAVE 00 0000090A
MON_R1 00 00000920 MON_R2 00 00000924 MON_RAND 02 00FFEF9D MON_RETFLAG 00 00000930
MON_RETTAB 02 00FFF64E MON_ROM_VECS 02 00FFF634 MON_ROM_VECTAB 02 00FFF632 MON_SRAND 02 00FFEF6F
MON_SRAND1 02 00FFEF72 MON_SSAVE 00 00000908 MON_USAVE 00 00000906 MON_VECTB 00 00000880
MON_XSAVE 00 00000902 MON_YSAVE 00 00000904 MSCOUNT 00 FFFFFFE4 MSGBADKEYBD 02 00FFEA2E
MSGERR 02 00FFF2C7 MSGF09STARTING 02 00FFF014 MSGREGHEADINGS 02 00FFF441 MSGS19LOADER 02 00FFEE93
MSGSERIALTEST 02 00FFED45 MSGSTARTUP 02 00FFE11C MULTI_SIEVE 02 00FFE153 MULTI_SIEVE1 02 00FFE176
MULTI_SIEVE2 02 00FFE172 MULTI_SIEVE3 02 00FFE160 MULTI_SIEVE4 02 00FFE189 NHEX4 02 00FFF47B
NMAILBOX 02 00000004 NMESERIAL 02 00FFED0E NMIBASE 00 00FFC013 NMI_ROUT 02 00FFF818
NMSGBLK 02 00000008 NOTKBDIRQ 02 00FFEA8C NOTRXINT 02 00FFED0D NOTTIMERIRQ 02 00FFE4B2
NUMBREAKPOINTS 02 00FFF631 NUMFUNCS 00 0000000E NUMOSFUNCS 00 00000019 NUMSETBREAKPOINTS 00 00000811
NXBLANK 02 00FFF47F ONEKEY 02 00FFD1DC OPC_SWI 00 0000003F OSC1 02 00FFF708
OSCALLTBL 02 00FFEEF6 OSCX 02 00FFF70A OSSEMA 00 00EF0010 OUTCH 02 00FFEEE1
OUTSEMA 00 00EF0000 PARSECMD1 02 00FFF0D8 PCRLF 02 00FFE40E PDATA 02 00FFE41B
PIC 00 FFE3F000 PICPTR 00 00000028 PRINT 02 00FFE418 PRNG 00 FFE30600
PROCESSBREAKPOINT 02 00FFF6C0 PROMPT1 02 00FFF0BB PROMPT2A 02 00FFF10C PROMPT3 02 00FFF0AC
PROMPTCLEARSCREEN 02 00FFF126 PROMPTHELP 02 00FFF11E PROMPTLN 02 00FFF0A8 PSTRNG 02 00FFE40A
QNDX0 00 00000780 QNDX1 00 00000782 QNDX2 00 00000784 QNDX3 00 00000786
QNDX4 00 00000788 RAMERR 02 00FFD42C RAMERR1 02 00FFD445 RAMTEST 02 00FFD400
RAMTEST1 02 00FFD40D RAMTEST3 02 00FFD417 REDIRECT 02 00FFF0F8 RELEASEIOFOCUS 02 00FFEF3F
REQUESTIOFOCUS 02 00FFEF28 RIOF1 02 00FFEF66 RIOF2 02 00FFEF55 ROMTORAM 02 00FFE143
ROMTORAM1 02 00FFE149 ROWS 00 00000020 RTC 00 FFE30500 RTCBUF 00 00007FC0
RTCR0001 02 00FFE51A RTCW0001 02 00FFE565 RTC_READ 02 00FFE4F4 RTC_RXERR 02 00FFE543
RTC_WRITE 02 00FFE547 RTI_INSN 02 00FFF824 RUNNINGID 00 00FFC013 RUNNINGTCB 06 00000000
S19ABORT 00 0000094A S19ADDRESS 00 00000940 S19CLEARADDRESS 02 00FFEDA6 S19GA1 02 00FFEDC4
S19GA2 02 00FFEDE0 S19GB1 02 00FFED81 S19GB2 02 00FFEDA2 S19GETADDRESS2 02 00FFEDB3
S19GETADDRESS3 02 00FFEDC5 S19GETBYTE 02 00FFED75 S19L2 02 00FFEE90 S19L3 02 00FFEE3F
S19LNR 02 00FFEE83 S19LOADER 02 00FFEE37 S19NEXTRECORD 02 00FFED58 S19NR1 02 00FFED74
S19NR2 02 00FFED68 S19NR3 02 00FFED6F S19PM1 02 00FFEE07 S19PM2 02 00FFEDFD
S19PM3 02 00FFEDE2 S19PROCESSS1 02 00FFEE0B S19PROCESSS2 02 00FFEE11 S19PROCESSS8 02 00FFEE27
S19PROCESSS9 02 00FFEE17 S19PUTMEM 02 00FFEDE1 S19RECLEN 00 00000949 S19RECTYPE 00 00000948
S19STARTADDRESS 00 00000944 SCANNEXTWORD 02 00FFF0E2 SCREENCOLOR 00 00000113 SCREENLOCATION 00 00000010
SCREENLOCATION2 00 00000018 SCROLLUP 02 00FFE265 SCRUP1 02 00FFE272 SC_ALT 00 00000011
SC_C 00 00000021 SC_CAPSLOCK 00 00000058 SC_CTRL 00 00000014 SC_DEL 00 00000071
SC_EXTEND 00 000000E0 SC_F12 00 00000007 SC_KEYUP 00 000000F0 SC_NUMLOCK 00 00000077
SC_RSHIFT 00 00000059 SC_SCROLLLOCK 00 0000007E SC_T 00 0000002C SC_TAB 00 0000000D
SC_Z 00 0000001A SEMAABS 00 00001000 SERHEADRCV 00 00000131 SERHEADXMIT 00 00000136
SERHZERO 00 00000130 SERIALGETCHAR 02 00FFEB9D SERIALINIT 02 00FFEB6F SERIALIRQ 02 00FFEC3B
SERIALOUTPUTTEST 02 00FFECA5 SERIALPEEKCHAR 02 00FFEBCD SERIALPEEKCHARDIRECT 02 00FFEBE4 SERIALPUTCHAR 02 00FFEC08
SERIALPUTSTRING 02 00FFEC95 SERIALRCVCOUNT 02 00FFEC28 SERRCVBUF 00 00BFF000 SERRCVXOFF 00 00000140
SERHZERO 00 00000130 SERIALGETCHAR 02 00FFEC1D SERIALINIT 02 00FFEBEF SERIALIRQ 02 00FFECBB
SERIALOUTPUTTEST 02 00FFED25 SERIALPEEKCHAR 02 00FFEC4D SERIALPEEKCHARDIRECT 02 00FFEC64 SERIALPUTCHAR 02 00FFEC88
SERIALPUTSTRING 02 00FFED15 SERIALRCVCOUNT 02 00FFECA8 SERRCVBUF 00 00BFF000 SERRCVXOFF 00 00000140
SERRCVXON 00 00000139 SERTAILRCV 00 00000133 SERTAILXMIT 00 00000138 SERTZERO 00 00000132
SETKEYBOARDECHO 02 00FFED16 SGC2 02 00FFEBB6 SGCNOCHARS 02 00FFEBC6 SGCXIT 02 00FFEBC9
SHIFTEDSCANCODES 02 00FFE680 SHIFTLEFT5 02 00FFE1BC SHL_NUMWKA 02 00FFEFE2 SHOWSPRITES 02 00FFED1C
SIEVE 02 00FFE182 SIEVE1 02 00FFE19A SIEVE2 02 00FFE196 SIEVE3 02 00FFE187
SIEVE4 02 00FFE1A9 SINI1 02 00FFEB82 SIRQ0001 02 00FFEC4D SIRQNXTBYTE 02 00FFEC3B
SIRQRXFULL 02 00FFEC8D SKIPDOLLAR 02 00FFEEE3 SKIP_INIT 02 00FFE0DE SOTST1 02 00FFECAF
SPC0001 02 00FFEC0A SPCD0001 02 00FFEC02 SPCNOCHARS 02 00FFEBDF SPCXIT 02 00FFEBE2
SPRITE_CTRL 00 FFE10000 SPRITE_EN 00 000003C0 SPS2 02 00FFEC99 SPSXIT 02 00FFECA3
SRCXIT 02 00FFEC3A ST1 02 00FFE0B8 ST3 02 00FFE095 ST6 02 00FFE03F
ST7 02 00FFE049 ST8 02 00FFE049 ST9 02 00FFE063 START 02 00FFE023
STRPTR 00 00000024 SWI3_EXIT 02 00FFF559 SWI3_ROUT 02 00FFF521 SWICALLOS 02 00FFF454
SWINOTBKPT 02 00FFF3EE SWI_ROUT 02 00FFF3D1 SWI_ROUT1 02 00FFF3D6 SWI_ROUT2 02 00FFF3E7
SWI_ROUT3 02 00FFF41A TAB 00 00000009 TCB_CURSORCOL 00 00000021 TCB_CURSORROW 00 00000020
TCB_HJCB 00 0000001C TCB_HWAITMBX 00 00000022 TCB_IOF_NEXT 00 0000002C TCB_IOF_PREV 00 00000030
TCB_MBQ_NEXT 00 00000024 TCB_MBQ_PREV 00 00000028 TCB_MMU_MAP 00 00000038 TCB_MSGPTR_D1 00 00000014
TCB_MSGPTR_D2 00 00000018 TCB_NXTRDY 00 00000000 TCB_NXTTCB 00 00000008 TCB_PRIORITY 00 00000010
TCB_PRVRDY 00 00000004 TCB_SPSAVE 00 00000034 TCB_STATUS 00 0000001E TCB_TIMEOUT 00 0000000C
TEXTCLOSE 02 00FFE22A TEXTOPEN 02 00FFE229 TEXTREAD 02 00FFE22B TEXTREG 00 FFE07F00
TEXTSCR 00 FFE00000 TEXTSEEK 02 00FFE22D TEXTWRITE 02 00FFE22C TEXT_COLS 00 00000000
TEXT_CURPOS 00 00000022 TEXT_ROWS 00 00000001 TIMEOUTLIST 00 0000078C TIMERINIT 02 00FFE441
TIMERIRQ 02 00FFE46C TIMES10 02 00FFEF5C TR1A 02 00FFF56D UCP1 02 00FFE2D9
UNSHIFTEDSCANCODES 02 00FFE580 UPDATECURSORPOS 02 00FFE2B9 VIA 00 FFE60000 VIA_ACR 00 0000000B
VIA_DDRA 00 00000003 VIA_IER 00 0000000E VIA_IFR 00 0000000D VIA_PA 00 00000001
VIA_T3CMPH 00 00000015 VIA_T3CMPL 00 00000014 VIA_T3LH 00 00000013 VIA_T3LL 00 00000012
W10_0001 02 00FFE8C0 W300_0001 02 00FFE8D4 WAIT10MS 02 00FFE8B9 WAIT300MS 02 00FFE8CD
XBLANK 02 00FFD0AF XITMONITOR 02 00FFF451 XOFF 00 00000013 XON 00 00000011
528 SYMBOLS
SETKEYBOARDECHO 02 00FFEEE5 SGC2 02 00FFEC36 SGCNOCHARS 02 00FFEC46 SGCXIT 02 00FFEC49
SHIFTEDSCANCODES 02 00FFE700 SHIFTLEFT5 02 00FFE1C7 SHL_NUMWKA 02 00FFF1BF SHOWSPRITES 02 00FFEEEB
SIEVE 02 00FFE18D SIEVE1 02 00FFE1A5 SIEVE2 02 00FFE1A1 SIEVE3 02 00FFE192
SIEVE4 02 00FFE1B4 SINI1 02 00FFEC02 SIRQ0001 02 00FFECCD SIRQNXTBYTE 02 00FFECBB
SIRQRXFULL 02 00FFED0D SKIPDOLLAR 02 00FFF0CA SKIP_INIT 02 00FFE10A SOTST1 02 00FFED2F
SPC0001 02 00FFEC8A SPCD0001 02 00FFEC82 SPCNOCHARS 02 00FFEC5F SPCXIT 02 00FFEC62
SPRITE_CTRL 00 FFE10000 SPRITE_EN 00 000003C0 SPS2 02 00FFED19 SPSXIT 02 00FFED23
SRCXIT 02 00FFECBA ST1 02 00FFE0B5 ST10 02 00FFE118 ST11 02 00FFE060
ST3 02 00FFE09F ST6 02 00FFE03C ST7 02 00FFE046 ST8 02 00FFE046
ST9 02 00FFE069 START 02 00FFE023 STRPTR 00 00000024 SWI3_EXIT 02 00FFF803
SWI3_ROUT 02 00FFF7CB SWICALLOS 02 00FFF6F5 SWINOTBKPT 02 00FFF678 SWI_ROUT 02 00FFF65B
SWI_ROUT1 02 00FFF660 SWI_ROUT2 02 00FFF671 SWI_ROUT3 02 00FFF6AE SWI_ROUT4 02 00FFF6BF
TAB 00 00000009 TCB_CURSORCOL 00 00000021 TCB_CURSORROW 00 00000020 TCB_HJCB 00 0000001C
TCB_HWAITMBX 00 00000022 TCB_IOF_NEXT 00 0000002C TCB_IOF_PREV 00 00000030 TCB_MBQ_NEXT 00 00000024
TCB_MBQ_PREV 00 00000028 TCB_MMU_MAP 00 00000038 TCB_MSGPTR_D1 00 00000014 TCB_MSGPTR_D2 00 00000018
TCB_NXTRDY 00 00000000 TCB_NXTTCB 00 00000008 TCB_PRIORITY 00 00000010 TCB_PRVRDY 00 00000004
TCB_SPSAVE 00 00000034 TCB_STATUS 00 0000001E TCB_TIMEOUT 00 0000000C TEXTCLOSE 02 00FFE235
TEXTOPEN 02 00FFE234 TEXTREAD 02 00FFE236 TEXTREG 00 FFE07F00 TEXTSCR 00 FFE00000
TEXTSEEK 02 00FFE238 TEXTWRITE 02 00FFE237 TEXT_COLS 00 00000000 TEXT_CURPOS 00 00000022
TEXT_ROWS 00 00000001 TIMEOUTLIST 00 0000078C TIMERINIT 02 00FFE465 TIMERIRQ 02 00FFE490
TIMES10 02 00FFF154 TR1A 02 00FFF817 UCP1 02 00FFE2F0 UNSHIFTEDSCANCODES 02 00FFE600
UPDATECURSORPOS 02 00FFE2CC VIA 00 FFE60000 VIA_ACR 00 0000000B VIA_DDRA 00 00000003
VIA_IER 00 0000000E VIA_IFR 00 0000000D VIA_PA 00 00000001 VIA_T3CMPH 00 00000015
VIA_T3CMPL 00 00000014 VIA_T3LH 00 00000013 VIA_T3LL 00 00000012 W10_0001 02 00FFE940
W300_0001 02 00FFE954 WAIT10MS 02 00FFE939 WAIT300MS 02 00FFE94D XBLANK 02 00FFD0AF
XITMONITOR 02 00FFF6F3 XOFF 00 00000013 XON 00 00000011
575 SYMBOLS
 
3 error(s), 592 warning(s)
/boot/boot_rom.ver
5,7 → 5,7
rommem[ 4272] <= 12'h020;
rommem[ 4273] <= 12'h017;
rommem[ 4274] <= 12'h001;
rommem[ 4275] <= 12'hC5E;
rommem[ 4275] <= 12'hE2D;
rommem[ 4276] <= 12'h039;
rommem[ 4304] <= 12'h012;
rommem[ 4305] <= 12'h012;
13,12 → 13,12
rommem[ 4307] <= 12'h00D;
rommem[ 4308] <= 12'h017;
rommem[ 4309] <= 12'h001;
rommem[ 4310] <= 12'hC3B;
rommem[ 4310] <= 12'hE0A;
rommem[ 4311] <= 12'h0C6;
rommem[ 4312] <= 12'h00A;
rommem[ 4313] <= 12'h017;
rommem[ 4314] <= 12'h001;
rommem[ 4315] <= 12'hC36;
rommem[ 4315] <= 12'hE05;
rommem[ 4316] <= 12'h039;
rommem[ 4336] <= 12'h012;
rommem[ 4337] <= 12'h020;
30,24 → 30,24
rommem[ 4800] <= 12'h012;
rommem[ 4801] <= 12'h017;
rommem[ 4802] <= 12'h001;
rommem[ 4803] <= 12'hA4E;
rommem[ 4803] <= 12'hC1D;
rommem[ 4804] <= 12'h039;
rommem[ 4812] <= 12'h012;
rommem[ 4813] <= 12'h012;
rommem[ 4814] <= 12'h017;
rommem[ 4815] <= 12'h001;
rommem[ 4816] <= 12'h142;
rommem[ 4816] <= 12'h166;
rommem[ 4817] <= 12'h039;
rommem[ 4818] <= 12'h017;
rommem[ 4819] <= 12'h001;
rommem[ 4820] <= 12'h135;
rommem[ 4820] <= 12'h159;
rommem[ 4821] <= 12'h039;
rommem[ 4864] <= 12'h016;
rommem[ 4865] <= 12'h000;
rommem[ 4866] <= 12'hF2B;
rommem[ 4866] <= 12'hF36;
rommem[ 4872] <= 12'h016;
rommem[ 4873] <= 12'h000;
rommem[ 4874] <= 12'hF96;
rommem[ 4874] <= 12'hFA5;
rommem[ 5120] <= 12'h18E;
rommem[ 5121] <= 12'h000;
rommem[ 5122] <= 12'h000;
99,139 → 99,44
rommem[ 5168] <= 12'hFFF;
rommem[ 5169] <= 12'hE60;
rommem[ 5170] <= 12'h001;
rommem[ 5171] <= 12'h08E;
rommem[ 5172] <= 12'hE00;
rommem[ 5173] <= 12'h000;
rommem[ 5174] <= 12'h015;
rommem[ 5175] <= 12'h0F6;
rommem[ 5176] <= 12'hFFF;
rommem[ 5177] <= 12'hFFF;
rommem[ 5178] <= 12'hFE0;
rommem[ 5179] <= 12'h03A;
rommem[ 5180] <= 12'h086;
rommem[ 5181] <= 12'h046;
rommem[ 5182] <= 12'h0A7;
rommem[ 5183] <= 12'h804;
rommem[ 5184] <= 12'h013;
rommem[ 5185] <= 12'h06E;
rommem[ 5186] <= 12'hC04;
rommem[ 5187] <= 12'h18E;
rommem[ 5188] <= 12'h010;
rommem[ 5189] <= 12'h000;
rommem[ 5190] <= 12'h086;
rommem[ 5191] <= 12'h001;
rommem[ 5192] <= 12'h015;
rommem[ 5193] <= 12'h0B7;
rommem[ 5194] <= 12'hFFF;
rommem[ 5195] <= 12'hE60;
rommem[ 5196] <= 12'h001;
rommem[ 5197] <= 12'h0CE;
rommem[ 5198] <= 12'hAAA;
rommem[ 5199] <= 12'h555;
rommem[ 5200] <= 12'h017;
rommem[ 5201] <= 12'hFFF;
rommem[ 5202] <= 12'hC7F;
rommem[ 5203] <= 12'h04A;
rommem[ 5204] <= 12'h026;
rommem[ 5205] <= 12'h00A;
rommem[ 5206] <= 12'h01F;
rommem[ 5207] <= 12'h020;
rommem[ 5208] <= 12'h017;
rommem[ 5209] <= 12'h000;
rommem[ 5210] <= 12'hFAF;
rommem[ 5211] <= 12'h0C6;
rommem[ 5212] <= 12'h00D;
rommem[ 5213] <= 12'h017;
rommem[ 5214] <= 12'h001;
rommem[ 5215] <= 12'h8B2;
rommem[ 5216] <= 12'h0EF;
rommem[ 5217] <= 12'hA01;
rommem[ 5218] <= 12'h18C;
rommem[ 5219] <= 12'hE00;
rommem[ 5220] <= 12'h000;
rommem[ 5221] <= 12'h025;
rommem[ 5222] <= 12'hFEC;
rommem[ 5223] <= 12'h18E;
rommem[ 5224] <= 12'h010;
rommem[ 5225] <= 12'h000;
rommem[ 5226] <= 12'h086;
rommem[ 5227] <= 12'h001;
rommem[ 5228] <= 12'h017;
rommem[ 5229] <= 12'hFFF;
rommem[ 5230] <= 12'hC63;
rommem[ 5231] <= 12'h04A;
rommem[ 5232] <= 12'h026;
rommem[ 5233] <= 12'h00A;
rommem[ 5234] <= 12'h01F;
rommem[ 5235] <= 12'h020;
rommem[ 5236] <= 12'h017;
rommem[ 5237] <= 12'h000;
rommem[ 5238] <= 12'hF93;
rommem[ 5239] <= 12'h0C6;
rommem[ 5240] <= 12'h00D;
rommem[ 5241] <= 12'h017;
rommem[ 5242] <= 12'h001;
rommem[ 5243] <= 12'h896;
rommem[ 5244] <= 12'h2A3;
rommem[ 5245] <= 12'hA01;
rommem[ 5246] <= 12'h026;
rommem[ 5247] <= 12'h00F;
rommem[ 5248] <= 12'h18C;
rommem[ 5249] <= 12'hE00;
rommem[ 5250] <= 12'h000;
rommem[ 5251] <= 12'h025;
rommem[ 5252] <= 12'hFEA;
rommem[ 5253] <= 12'h086;
rommem[ 5254] <= 12'h002;
rommem[ 5255] <= 12'h015;
rommem[ 5256] <= 12'h0B7;
rommem[ 5257] <= 12'hFFF;
rommem[ 5258] <= 12'hE60;
rommem[ 5259] <= 12'h001;
rommem[ 5260] <= 12'h016;
rommem[ 5261] <= 12'h001;
rommem[ 5262] <= 12'hA18;
rommem[ 5263] <= 12'h086;
rommem[ 5264] <= 12'h080;
rommem[ 5265] <= 12'h015;
rommem[ 5266] <= 12'h0B7;
rommem[ 5267] <= 12'hFFF;
rommem[ 5268] <= 12'hE60;
rommem[ 5269] <= 12'h001;
rommem[ 5270] <= 12'h08E;
rommem[ 5271] <= 12'hE00;
rommem[ 5272] <= 12'h000;
rommem[ 5273] <= 12'h015;
rommem[ 5274] <= 12'h0F6;
rommem[ 5275] <= 12'hFFF;
rommem[ 5276] <= 12'hFFF;
rommem[ 5277] <= 12'hFE0;
rommem[ 5278] <= 12'h03A;
rommem[ 5279] <= 12'h086;
rommem[ 5280] <= 12'h046;
rommem[ 5281] <= 12'h0A7;
rommem[ 5282] <= 12'h804;
rommem[ 5283] <= 12'h016;
rommem[ 5284] <= 12'h001;
rommem[ 5285] <= 12'hA01;
rommem[ 8192] <= 12'hFFE;
rommem[ 8193] <= 12'hEA7;
rommem[ 5171] <= 12'h015;
rommem[ 5172] <= 12'h0F6;
rommem[ 5173] <= 12'hFFF;
rommem[ 5174] <= 12'hFFF;
rommem[ 5175] <= 12'hFE0;
rommem[ 5176] <= 12'h0C1;
rommem[ 5177] <= 12'h020;
rommem[ 5178] <= 12'h027;
rommem[ 5179] <= 12'h009;
rommem[ 5180] <= 12'h08E;
rommem[ 5181] <= 12'hE00;
rommem[ 5182] <= 12'h000;
rommem[ 5183] <= 12'h03A;
rommem[ 5184] <= 12'h086;
rommem[ 5185] <= 12'h046;
rommem[ 5186] <= 12'h0A7;
rommem[ 5187] <= 12'h804;
rommem[ 5188] <= 12'h013;
rommem[ 5189] <= 12'h06E;
rommem[ 5190] <= 12'hC04;
rommem[ 8192] <= 12'hFFF;
rommem[ 8193] <= 12'h039;
rommem[ 8194] <= 12'hFFE;
rommem[ 8195] <= 12'h022;
rommem[ 8196] <= 12'hFFE;
rommem[ 8197] <= 12'hCDA;
rommem[ 8197] <= 12'hEA9;
rommem[ 8198] <= 12'hFFE;
rommem[ 8199] <= 12'hCF8;
rommem[ 8199] <= 12'hEC7;
rommem[ 8200] <= 12'hFFE;
rommem[ 8201] <= 12'hCFC;
rommem[ 8201] <= 12'hECB;
rommem[ 8202] <= 12'hFFE;
rommem[ 8203] <= 12'hD12;
rommem[ 8203] <= 12'hEE1;
rommem[ 8204] <= 12'hFFE;
rommem[ 8205] <= 12'h3F7;
rommem[ 8205] <= 12'h41B;
rommem[ 8206] <= 12'hFFE;
rommem[ 8207] <= 12'h3EA;
rommem[ 8207] <= 12'h40E;
rommem[ 8208] <= 12'hFFE;
rommem[ 8209] <= 12'h3E6;
rommem[ 8209] <= 12'h40A;
rommem[ 8210] <= 12'hFFE;
rommem[ 8211] <= 12'h022;
rommem[ 8212] <= 12'hFFE;
243,7 → 148,7
rommem[ 8218] <= 12'hFFE;
rommem[ 8219] <= 12'h022;
rommem[ 8220] <= 12'hFFE;
rommem[ 8221] <= 12'h2FE;
rommem[ 8221] <= 12'h319;
rommem[ 8222] <= 12'hFFE;
rommem[ 8223] <= 12'h022;
rommem[ 8224] <= 12'hFFE;
273,1469 → 178,1377
rommem[ 8248] <= 12'h000;
rommem[ 8249] <= 12'h0CE;
rommem[ 8250] <= 12'hFFE;
rommem[ 8251] <= 12'h03F;
rommem[ 8252] <= 12'h07E;
rommem[ 8253] <= 12'hFFD;
rommem[ 8254] <= 12'h400;
rommem[ 8255] <= 12'h1CE;
rommem[ 8256] <= 12'h006;
rommem[ 8251] <= 12'h03C;
rommem[ 8252] <= 12'h1CE;
rommem[ 8253] <= 12'h006;
rommem[ 8254] <= 12'hFFF;
rommem[ 8255] <= 12'h015;
rommem[ 8256] <= 12'h0B6;
rommem[ 8257] <= 12'hFFF;
rommem[ 8258] <= 12'h015;
rommem[ 8259] <= 12'h0B6;
rommem[ 8260] <= 12'hFFF;
rommem[ 8261] <= 12'hFFF;
rommem[ 8262] <= 12'hFE0;
rommem[ 8263] <= 12'h081;
rommem[ 8264] <= 12'h001;
rommem[ 8265] <= 12'h08D;
rommem[ 8266] <= 12'h15F;
rommem[ 8258] <= 12'hFFF;
rommem[ 8259] <= 12'hFE0;
rommem[ 8260] <= 12'h081;
rommem[ 8261] <= 12'h001;
rommem[ 8262] <= 12'h08D;
rommem[ 8263] <= 12'h16D;
rommem[ 8264] <= 12'h07F;
rommem[ 8265] <= 12'h000;
rommem[ 8266] <= 12'h810;
rommem[ 8267] <= 12'h07F;
rommem[ 8268] <= 12'h000;
rommem[ 8269] <= 12'h810;
rommem[ 8270] <= 12'h07F;
rommem[ 8271] <= 12'h000;
rommem[ 8272] <= 12'h811;
rommem[ 8273] <= 12'h086;
rommem[ 8274] <= 12'h0AA;
rommem[ 8275] <= 12'h015;
rommem[ 8276] <= 12'h0B7;
rommem[ 8277] <= 12'hFFF;
rommem[ 8278] <= 12'hE60;
rommem[ 8279] <= 12'h001;
rommem[ 8280] <= 12'h086;
rommem[ 8281] <= 12'h001;
rommem[ 8282] <= 12'h0B7;
rommem[ 8283] <= 12'hFFC;
rommem[ 8284] <= 12'h010;
rommem[ 8285] <= 12'h0B7;
rommem[ 8286] <= 12'hFFC;
rommem[ 8287] <= 12'h013;
rommem[ 8288] <= 12'h08E;
rommem[ 8289] <= 12'h000;
rommem[ 8290] <= 12'h000;
rommem[ 8291] <= 12'h06F;
rommem[ 8292] <= 12'h80A;
rommem[ 8293] <= 12'h000;
rommem[ 8294] <= 12'hFFC;
rommem[ 8269] <= 12'h811;
rommem[ 8270] <= 12'h086;
rommem[ 8271] <= 12'h0AA;
rommem[ 8272] <= 12'h015;
rommem[ 8273] <= 12'h0B7;
rommem[ 8274] <= 12'hFFF;
rommem[ 8275] <= 12'hE60;
rommem[ 8276] <= 12'h001;
rommem[ 8277] <= 12'h015;
rommem[ 8278] <= 12'h0B6;
rommem[ 8279] <= 12'hFFF;
rommem[ 8280] <= 12'hFFF;
rommem[ 8281] <= 12'hFE0;
rommem[ 8282] <= 12'h081;
rommem[ 8283] <= 12'h020;
rommem[ 8284] <= 12'h027;
rommem[ 8285] <= 12'h002;
rommem[ 8286] <= 12'h086;
rommem[ 8287] <= 12'h001;
rommem[ 8288] <= 12'h0B7;
rommem[ 8289] <= 12'hFFC;
rommem[ 8290] <= 12'h010;
rommem[ 8291] <= 12'h0B7;
rommem[ 8292] <= 12'hFFC;
rommem[ 8293] <= 12'h013;
rommem[ 8294] <= 12'h08E;
rommem[ 8295] <= 12'h000;
rommem[ 8296] <= 12'h030;
rommem[ 8297] <= 12'h001;
rommem[ 8298] <= 12'h08C;
rommem[ 8296] <= 12'h000;
rommem[ 8297] <= 12'h06F;
rommem[ 8298] <= 12'h80A;
rommem[ 8299] <= 12'h000;
rommem[ 8300] <= 12'h010;
rommem[ 8301] <= 12'h025;
rommem[ 8302] <= 12'hFF4;
rommem[ 8303] <= 12'h086;
rommem[ 8304] <= 12'h018;
rommem[ 8305] <= 12'h0B7;
rommem[ 8306] <= 12'hFFC;
rommem[ 8307] <= 12'h001;
rommem[ 8308] <= 12'h086;
rommem[ 8309] <= 12'h0CE;
rommem[ 8310] <= 12'h097;
rommem[ 8311] <= 12'h113;
rommem[ 8312] <= 12'h097;
rommem[ 8313] <= 12'h112;
rommem[ 8314] <= 12'h08D;
rommem[ 8315] <= 12'h1B2;
rommem[ 8316] <= 12'h0CC;
rommem[ 8317] <= 12'hFFE;
rommem[ 8318] <= 12'h2FE;
rommem[ 8319] <= 12'h0FD;
rommem[ 8320] <= 12'h000;
rommem[ 8321] <= 12'h800;
rommem[ 8300] <= 12'hFFC;
rommem[ 8301] <= 12'h000;
rommem[ 8302] <= 12'h030;
rommem[ 8303] <= 12'h001;
rommem[ 8304] <= 12'h08C;
rommem[ 8305] <= 12'h000;
rommem[ 8306] <= 12'h010;
rommem[ 8307] <= 12'h025;
rommem[ 8308] <= 12'hFF4;
rommem[ 8309] <= 12'h086;
rommem[ 8310] <= 12'h018;
rommem[ 8311] <= 12'h0B7;
rommem[ 8312] <= 12'hFFC;
rommem[ 8313] <= 12'h001;
rommem[ 8314] <= 12'h086;
rommem[ 8315] <= 12'h0CE;
rommem[ 8316] <= 12'h097;
rommem[ 8317] <= 12'h113;
rommem[ 8318] <= 12'h097;
rommem[ 8319] <= 12'h112;
rommem[ 8320] <= 12'h08D;
rommem[ 8321] <= 12'h1B7;
rommem[ 8322] <= 12'h0CC;
rommem[ 8323] <= 12'hFFE;
rommem[ 8324] <= 12'hBE4;
rommem[ 8324] <= 12'h319;
rommem[ 8325] <= 12'h0FD;
rommem[ 8326] <= 12'h000;
rommem[ 8327] <= 12'h804;
rommem[ 8328] <= 12'h015;
rommem[ 8329] <= 12'h0F6;
rommem[ 8330] <= 12'hFFF;
rommem[ 8331] <= 12'hFFF;
rommem[ 8332] <= 12'hFE0;
rommem[ 8333] <= 12'h0C1;
rommem[ 8334] <= 12'h001;
rommem[ 8335] <= 12'h027;
rommem[ 8336] <= 12'h00D;
rommem[ 8337] <= 12'h020;
rommem[ 8338] <= 12'h04B;
rommem[ 8339] <= 12'h020;
rommem[ 8340] <= 12'h0B3;
rommem[ 8341] <= 12'h086;
rommem[ 8342] <= 12'h0FF;
rommem[ 8343] <= 12'h015;
rommem[ 8344] <= 12'h0B7;
rommem[ 8345] <= 12'hFFF;
rommem[ 8346] <= 12'hE60;
rommem[ 8347] <= 12'h001;
rommem[ 8348] <= 12'h020;
rommem[ 8349] <= 12'hFF7;
rommem[ 8350] <= 12'h017;
rommem[ 8351] <= 12'h000;
rommem[ 8352] <= 12'h42F;
rommem[ 8353] <= 12'h08E;
rommem[ 8354] <= 12'h000;
rommem[ 8355] <= 12'h127;
rommem[ 8356] <= 12'h0C6;
rommem[ 8357] <= 12'h020;
rommem[ 8358] <= 12'h06F;
rommem[ 8359] <= 12'h800;
rommem[ 8360] <= 12'h05A;
rommem[ 8361] <= 12'h026;
rommem[ 8362] <= 12'hFFB;
rommem[ 8363] <= 12'h017;
rommem[ 8327] <= 12'h800;
rommem[ 8328] <= 12'h0CC;
rommem[ 8329] <= 12'hFFE;
rommem[ 8330] <= 12'hC64;
rommem[ 8331] <= 12'h0FD;
rommem[ 8332] <= 12'h000;
rommem[ 8333] <= 12'h804;
rommem[ 8334] <= 12'h015;
rommem[ 8335] <= 12'h0F6;
rommem[ 8336] <= 12'hFFF;
rommem[ 8337] <= 12'hFFF;
rommem[ 8338] <= 12'hFE0;
rommem[ 8339] <= 12'h0C1;
rommem[ 8340] <= 12'h001;
rommem[ 8341] <= 12'h027;
rommem[ 8342] <= 12'h011;
rommem[ 8343] <= 12'h0C1;
rommem[ 8344] <= 12'h020;
rommem[ 8345] <= 12'h027;
rommem[ 8346] <= 12'h05D;
rommem[ 8347] <= 12'h020;
rommem[ 8348] <= 12'h06D;
rommem[ 8349] <= 12'h020;
rommem[ 8350] <= 12'h0B4;
rommem[ 8351] <= 12'h086;
rommem[ 8352] <= 12'h0FF;
rommem[ 8353] <= 12'h015;
rommem[ 8354] <= 12'h0B7;
rommem[ 8355] <= 12'hFFF;
rommem[ 8356] <= 12'hE60;
rommem[ 8357] <= 12'h001;
rommem[ 8358] <= 12'h020;
rommem[ 8359] <= 12'hFF7;
rommem[ 8360] <= 12'h017;
rommem[ 8361] <= 12'h000;
rommem[ 8362] <= 12'h449;
rommem[ 8363] <= 12'h08E;
rommem[ 8364] <= 12'h000;
rommem[ 8365] <= 12'h393;
rommem[ 8366] <= 12'h017;
rommem[ 8367] <= 12'h000;
rommem[ 8368] <= 12'hABE;
rommem[ 8369] <= 12'h08E;
rommem[ 8370] <= 12'h000;
rommem[ 8371] <= 12'h080;
rommem[ 8372] <= 12'h086;
rommem[ 8373] <= 12'h001;
rommem[ 8374] <= 12'h0C6;
rommem[ 8375] <= 12'h001;
rommem[ 8376] <= 12'h06F;
rommem[ 8377] <= 12'h809;
rommem[ 8378] <= 12'hE3F;
rommem[ 8379] <= 12'h000;
rommem[ 8380] <= 12'h0A7;
rommem[ 8381] <= 12'h809;
rommem[ 8382] <= 12'hE3F;
rommem[ 8383] <= 12'h001;
rommem[ 8384] <= 12'h0E7;
rommem[ 8385] <= 12'h809;
rommem[ 8386] <= 12'hE3F;
rommem[ 8387] <= 12'h002;
rommem[ 8388] <= 12'h030;
rommem[ 8389] <= 12'h004;
rommem[ 8390] <= 12'h08C;
rommem[ 8391] <= 12'h000;
rommem[ 8392] <= 12'h100;
rommem[ 8393] <= 12'h025;
rommem[ 8394] <= 12'hFED;
rommem[ 8395] <= 12'h086;
rommem[ 8396] <= 12'h081;
rommem[ 8397] <= 12'h015;
rommem[ 8398] <= 12'h0B7;
rommem[ 8399] <= 12'hFFF;
rommem[ 8400] <= 12'hE3F;
rommem[ 8401] <= 12'h0FD;
rommem[ 8402] <= 12'h086;
rommem[ 8403] <= 12'h01F;
rommem[ 8404] <= 12'h015;
rommem[ 8405] <= 12'h0B7;
rommem[ 8406] <= 12'hFFF;
rommem[ 8407] <= 12'hE3F;
rommem[ 8408] <= 12'h009;
rommem[ 8409] <= 12'h0C6;
rommem[ 8410] <= 12'h001;
rommem[ 8411] <= 12'h0F7;
rommem[ 8412] <= 12'hEF1;
rommem[ 8413] <= 12'h000;
rommem[ 8414] <= 12'h01C;
rommem[ 8415] <= 12'h0EF;
rommem[ 8416] <= 12'h086;
rommem[ 8417] <= 12'h040;
rommem[ 8418] <= 12'h015;
rommem[ 8419] <= 12'h0B7;
rommem[ 8420] <= 12'hFFF;
rommem[ 8421] <= 12'hE07;
rommem[ 8422] <= 12'hF00;
rommem[ 8423] <= 12'h086;
rommem[ 8424] <= 12'h020;
rommem[ 8425] <= 12'h015;
rommem[ 8426] <= 12'h0B7;
rommem[ 8427] <= 12'hFFF;
rommem[ 8428] <= 12'hE07;
rommem[ 8429] <= 12'hF01;
rommem[ 8430] <= 12'h08D;
rommem[ 8431] <= 12'h13E;
rommem[ 8432] <= 12'h08D;
rommem[ 8433] <= 12'h1AF;
rommem[ 8434] <= 12'h086;
rommem[ 8435] <= 12'h005;
rommem[ 8436] <= 12'h015;
rommem[ 8437] <= 12'h0B7;
rommem[ 8438] <= 12'hFFF;
rommem[ 8439] <= 12'hE60;
rommem[ 8440] <= 12'h001;
rommem[ 8441] <= 12'h0CC;
rommem[ 8442] <= 12'hFFE;
rommem[ 8443] <= 12'h111;
rommem[ 8444] <= 12'h08D;
rommem[ 8445] <= 12'h2C1;
rommem[ 8365] <= 12'h127;
rommem[ 8366] <= 12'h0C6;
rommem[ 8367] <= 12'h020;
rommem[ 8368] <= 12'h06F;
rommem[ 8369] <= 12'h800;
rommem[ 8370] <= 12'h05A;
rommem[ 8371] <= 12'h026;
rommem[ 8372] <= 12'hFFB;
rommem[ 8373] <= 12'h06F;
rommem[ 8374] <= 12'h809;
rommem[ 8375] <= 12'hE3F;
rommem[ 8376] <= 12'h000;
rommem[ 8377] <= 12'h0A7;
rommem[ 8378] <= 12'h809;
rommem[ 8379] <= 12'hE3F;
rommem[ 8380] <= 12'h001;
rommem[ 8381] <= 12'h0E7;
rommem[ 8382] <= 12'h809;
rommem[ 8383] <= 12'hE3F;
rommem[ 8384] <= 12'h002;
rommem[ 8385] <= 12'h030;
rommem[ 8386] <= 12'h004;
rommem[ 8387] <= 12'h08C;
rommem[ 8388] <= 12'h000;
rommem[ 8389] <= 12'h100;
rommem[ 8390] <= 12'h025;
rommem[ 8391] <= 12'hFED;
rommem[ 8392] <= 12'h086;
rommem[ 8393] <= 12'h081;
rommem[ 8394] <= 12'h015;
rommem[ 8395] <= 12'h0B7;
rommem[ 8396] <= 12'hFFF;
rommem[ 8397] <= 12'hE3F;
rommem[ 8398] <= 12'h0FD;
rommem[ 8399] <= 12'h086;
rommem[ 8400] <= 12'h01F;
rommem[ 8401] <= 12'h015;
rommem[ 8402] <= 12'h0B7;
rommem[ 8403] <= 12'hFFF;
rommem[ 8404] <= 12'hE3F;
rommem[ 8405] <= 12'h009;
rommem[ 8406] <= 12'h086;
rommem[ 8407] <= 12'h040;
rommem[ 8408] <= 12'h015;
rommem[ 8409] <= 12'h0B7;
rommem[ 8410] <= 12'hFFF;
rommem[ 8411] <= 12'hE07;
rommem[ 8412] <= 12'hF00;
rommem[ 8413] <= 12'h086;
rommem[ 8414] <= 12'h020;
rommem[ 8415] <= 12'h015;
rommem[ 8416] <= 12'h0B7;
rommem[ 8417] <= 12'hFFF;
rommem[ 8418] <= 12'hE07;
rommem[ 8419] <= 12'hF01;
rommem[ 8420] <= 12'h08D;
rommem[ 8421] <= 12'h153;
rommem[ 8422] <= 12'h08D;
rommem[ 8423] <= 12'h1C8;
rommem[ 8424] <= 12'h08E;
rommem[ 8425] <= 12'h000;
rommem[ 8426] <= 12'h000;
rommem[ 8427] <= 12'h0CC;
rommem[ 8428] <= 12'h000;
rommem[ 8429] <= 12'h000;
rommem[ 8430] <= 12'h017;
rommem[ 8431] <= 12'h000;
rommem[ 8432] <= 12'hDFA;
rommem[ 8433] <= 12'h017;
rommem[ 8434] <= 12'h000;
rommem[ 8435] <= 12'h8CC;
rommem[ 8436] <= 12'h0DC;
rommem[ 8437] <= 12'h124;
rommem[ 8438] <= 12'h08D;
rommem[ 8439] <= 12'h336;
rommem[ 8440] <= 12'h017;
rommem[ 8441] <= 12'h000;
rommem[ 8442] <= 12'h36A;
rommem[ 8443] <= 12'h017;
rommem[ 8444] <= 12'h000;
rommem[ 8445] <= 12'hAF1;
rommem[ 8446] <= 12'h08E;
rommem[ 8447] <= 12'h000;
rommem[ 8448] <= 12'h000;
rommem[ 8449] <= 12'h0CC;
rommem[ 8450] <= 12'h000;
rommem[ 8451] <= 12'h000;
rommem[ 8452] <= 12'h017;
rommem[ 8453] <= 12'h000;
rommem[ 8454] <= 12'hC15;
rommem[ 8455] <= 12'h017;
rommem[ 8456] <= 12'h000;
rommem[ 8457] <= 12'h836;
rommem[ 8458] <= 12'h0DC;
rommem[ 8459] <= 12'h124;
rommem[ 8460] <= 12'h08D;
rommem[ 8461] <= 12'h2FC;
rommem[ 8462] <= 12'h07E;
rommem[ 8463] <= 12'hFFE;
rommem[ 8464] <= 12'hE60;
rommem[ 8465] <= 12'h072;
rommem[ 8466] <= 12'h066;
rommem[ 8467] <= 12'h036;
rommem[ 8468] <= 12'h038;
rommem[ 8469] <= 12'h030;
rommem[ 8470] <= 12'h039;
rommem[ 8471] <= 12'h020;
rommem[ 8472] <= 12'h031;
rommem[ 8473] <= 12'h032;
rommem[ 8474] <= 12'h02D;
rommem[ 8475] <= 12'h062;
rommem[ 8476] <= 12'h069;
rommem[ 8477] <= 12'h074;
rommem[ 8478] <= 12'h020;
rommem[ 8479] <= 12'h053;
rommem[ 8480] <= 12'h079;
rommem[ 8481] <= 12'h073;
rommem[ 8482] <= 12'h074;
rommem[ 8483] <= 12'h065;
rommem[ 8484] <= 12'h06D;
rommem[ 8485] <= 12'h020;
rommem[ 8486] <= 12'h053;
rommem[ 8487] <= 12'h074;
rommem[ 8488] <= 12'h061;
rommem[ 8489] <= 12'h072;
rommem[ 8490] <= 12'h074;
rommem[ 8491] <= 12'h069;
rommem[ 8492] <= 12'h06E;
rommem[ 8493] <= 12'h067;
rommem[ 8494] <= 12'h02E;
rommem[ 8495] <= 12'h00D;
rommem[ 8496] <= 12'h00A;
rommem[ 8497] <= 12'h000;
rommem[ 8498] <= 12'h015;
rommem[ 8499] <= 12'h07F;
rommem[ 8500] <= 12'hFFF;
rommem[ 8501] <= 12'hFFF;
rommem[ 8502] <= 12'hFE1;
rommem[ 8503] <= 12'h039;
rommem[ 8504] <= 12'h08E;
rommem[ 8505] <= 12'hFFC;
rommem[ 8506] <= 12'h000;
rommem[ 8507] <= 12'h18E;
rommem[ 8508] <= 12'h00C;
rommem[ 8509] <= 12'h000;
rommem[ 8510] <= 12'h0EC;
rommem[ 8511] <= 12'h801;
rommem[ 8512] <= 12'h0ED;
rommem[ 8513] <= 12'hA01;
rommem[ 8514] <= 12'h08C;
rommem[ 8515] <= 12'h000;
rommem[ 8516] <= 12'h000;
rommem[ 8517] <= 12'h026;
rommem[ 8518] <= 12'hFF7;
rommem[ 8519] <= 12'h039;
rommem[ 8520] <= 12'h086;
rommem[ 8521] <= 12'h050;
rommem[ 8522] <= 12'h015;
rommem[ 8523] <= 12'h0F6;
rommem[ 8524] <= 12'hFFF;
rommem[ 8525] <= 12'hFFF;
rommem[ 8526] <= 12'hFE0;
rommem[ 8527] <= 12'h0C0;
rommem[ 8528] <= 12'h001;
rommem[ 8529] <= 12'h08E;
rommem[ 8530] <= 12'h000;
rommem[ 8531] <= 12'h000;
rommem[ 8532] <= 12'h03A;
rommem[ 8533] <= 12'h0A7;
rommem[ 8534] <= 12'h809;
rommem[ 8535] <= 12'hE00;
rommem[ 8536] <= 12'h000;
rommem[ 8537] <= 12'h030;
rommem[ 8538] <= 12'h008;
rommem[ 8539] <= 12'h08C;
rommem[ 8540] <= 12'h000;
rommem[ 8541] <= 12'hFFF;
rommem[ 8542] <= 12'h025;
rommem[ 8543] <= 12'hFF5;
rommem[ 8544] <= 12'h0BD;
rommem[ 8545] <= 12'hFFE;
rommem[ 8546] <= 12'h132;
rommem[ 8547] <= 12'h0CB;
rommem[ 8548] <= 12'h002;
rommem[ 8549] <= 12'h086;
rommem[ 8550] <= 12'h04E;
rommem[ 8551] <= 12'h08E;
rommem[ 8552] <= 12'h000;
rommem[ 8553] <= 12'h000;
rommem[ 8554] <= 12'h03A;
rommem[ 8555] <= 12'h03A;
rommem[ 8556] <= 12'h0A7;
rommem[ 8557] <= 12'h809;
rommem[ 8558] <= 12'hE00;
rommem[ 8559] <= 12'h000;
rommem[ 8560] <= 12'h08C;
rommem[ 8561] <= 12'h000;
rommem[ 8562] <= 12'hFFF;
rommem[ 8563] <= 12'h025;
rommem[ 8564] <= 12'hFF6;
rommem[ 8565] <= 12'h0BD;
rommem[ 8566] <= 12'hFFE;
rommem[ 8567] <= 12'h132;
rommem[ 8568] <= 12'h0CB;
rommem[ 8569] <= 12'h008;
rommem[ 8570] <= 12'h0C1;
rommem[ 8571] <= 12'hFF0;
rommem[ 8572] <= 12'h025;
rommem[ 8573] <= 12'hFE9;
rommem[ 8574] <= 12'h013;
rommem[ 8575] <= 12'h016;
rommem[ 8576] <= 12'h000;
rommem[ 8577] <= 12'hD25;
rommem[ 8578] <= 12'h086;
rommem[ 8579] <= 12'h050;
rommem[ 8580] <= 12'h08E;
rommem[ 8581] <= 12'h000;
rommem[ 8582] <= 12'h000;
rommem[ 8583] <= 12'h0A7;
rommem[ 8584] <= 12'h809;
rommem[ 8585] <= 12'hE00;
rommem[ 8586] <= 12'h000;
rommem[ 8587] <= 12'h030;
rommem[ 8588] <= 12'h001;
rommem[ 8589] <= 12'h08C;
rommem[ 8590] <= 12'h000;
rommem[ 8591] <= 12'hFFF;
rommem[ 8592] <= 12'h025;
rommem[ 8593] <= 12'hFF5;
rommem[ 8594] <= 12'h0C6;
rommem[ 8595] <= 12'h002;
rommem[ 8596] <= 12'h086;
rommem[ 8597] <= 12'h04E;
rommem[ 8598] <= 12'h08E;
rommem[ 8599] <= 12'h000;
rommem[ 8600] <= 12'h000;
rommem[ 8601] <= 12'h03A;
rommem[ 8602] <= 12'h03A;
rommem[ 8603] <= 12'h0A7;
rommem[ 8604] <= 12'h809;
rommem[ 8605] <= 12'hE00;
rommem[ 8606] <= 12'h000;
rommem[ 8607] <= 12'h08C;
rommem[ 8608] <= 12'h000;
rommem[ 8609] <= 12'hFFF;
rommem[ 8610] <= 12'h025;
rommem[ 8611] <= 12'hFC7;
rommem[ 8612] <= 12'h05C;
rommem[ 8613] <= 12'h0C1;
rommem[ 8614] <= 12'hFF0;
rommem[ 8615] <= 12'h025;
rommem[ 8616] <= 12'hFED;
rommem[ 8617] <= 12'h039;
rommem[ 8618] <= 12'h0CC;
rommem[ 8619] <= 12'h895;
rommem[ 8620] <= 12'h440;
rommem[ 8621] <= 12'h0C1;
rommem[ 8622] <= 12'h0FF;
rommem[ 8623] <= 12'h026;
rommem[ 8624] <= 12'h000;
rommem[ 8625] <= 12'h015;
rommem[ 8626] <= 12'h0B7;
rommem[ 8627] <= 12'hFFF;
rommem[ 8628] <= 12'hE60;
rommem[ 8629] <= 12'h001;
rommem[ 8630] <= 12'h083;
rommem[ 8631] <= 12'h000;
rommem[ 8632] <= 12'h001;
rommem[ 8633] <= 12'h026;
rommem[ 8634] <= 12'hFF2;
rommem[ 8635] <= 12'h039;
rommem[ 8636] <= 12'h058;
rommem[ 8637] <= 12'h049;
rommem[ 8638] <= 12'h058;
rommem[ 8639] <= 12'h049;
rommem[ 8640] <= 12'h058;
rommem[ 8641] <= 12'h049;
rommem[ 8642] <= 12'h058;
rommem[ 8643] <= 12'h049;
rommem[ 8644] <= 12'h058;
rommem[ 8645] <= 12'h049;
rommem[ 8448] <= 12'h080;
rommem[ 8449] <= 12'h086;
rommem[ 8450] <= 12'h001;
rommem[ 8451] <= 12'h0C6;
rommem[ 8452] <= 12'h001;
rommem[ 8453] <= 12'h0C6;
rommem[ 8454] <= 12'h001;
rommem[ 8455] <= 12'h0F7;
rommem[ 8456] <= 12'hEF1;
rommem[ 8457] <= 12'h000;
rommem[ 8458] <= 12'h01C;
rommem[ 8459] <= 12'h0EF;
rommem[ 8460] <= 12'h086;
rommem[ 8461] <= 12'h005;
rommem[ 8462] <= 12'h015;
rommem[ 8463] <= 12'h0B7;
rommem[ 8464] <= 12'hFFF;
rommem[ 8465] <= 12'hE60;
rommem[ 8466] <= 12'h001;
rommem[ 8467] <= 12'h0CC;
rommem[ 8468] <= 12'hFFE;
rommem[ 8469] <= 12'h11C;
rommem[ 8470] <= 12'h08D;
rommem[ 8471] <= 12'h2C2;
rommem[ 8472] <= 12'h03F;
rommem[ 8473] <= 12'h000;
rommem[ 8474] <= 12'h020;
rommem[ 8475] <= 12'hFFC;
rommem[ 8476] <= 12'h072;
rommem[ 8477] <= 12'h066;
rommem[ 8478] <= 12'h036;
rommem[ 8479] <= 12'h038;
rommem[ 8480] <= 12'h030;
rommem[ 8481] <= 12'h039;
rommem[ 8482] <= 12'h020;
rommem[ 8483] <= 12'h031;
rommem[ 8484] <= 12'h032;
rommem[ 8485] <= 12'h02D;
rommem[ 8486] <= 12'h062;
rommem[ 8487] <= 12'h069;
rommem[ 8488] <= 12'h074;
rommem[ 8489] <= 12'h020;
rommem[ 8490] <= 12'h053;
rommem[ 8491] <= 12'h079;
rommem[ 8492] <= 12'h073;
rommem[ 8493] <= 12'h074;
rommem[ 8494] <= 12'h065;
rommem[ 8495] <= 12'h06D;
rommem[ 8496] <= 12'h020;
rommem[ 8497] <= 12'h053;
rommem[ 8498] <= 12'h074;
rommem[ 8499] <= 12'h061;
rommem[ 8500] <= 12'h072;
rommem[ 8501] <= 12'h074;
rommem[ 8502] <= 12'h069;
rommem[ 8503] <= 12'h06E;
rommem[ 8504] <= 12'h067;
rommem[ 8505] <= 12'h02E;
rommem[ 8506] <= 12'h00D;
rommem[ 8507] <= 12'h00A;
rommem[ 8508] <= 12'h000;
rommem[ 8509] <= 12'h015;
rommem[ 8510] <= 12'h07F;
rommem[ 8511] <= 12'hFFF;
rommem[ 8512] <= 12'hFFF;
rommem[ 8513] <= 12'hFE1;
rommem[ 8514] <= 12'h039;
rommem[ 8515] <= 12'h08E;
rommem[ 8516] <= 12'hFFC;
rommem[ 8517] <= 12'h000;
rommem[ 8518] <= 12'h18E;
rommem[ 8519] <= 12'h00C;
rommem[ 8520] <= 12'h000;
rommem[ 8521] <= 12'h0EC;
rommem[ 8522] <= 12'h801;
rommem[ 8523] <= 12'h0ED;
rommem[ 8524] <= 12'hA01;
rommem[ 8525] <= 12'h08C;
rommem[ 8526] <= 12'h000;
rommem[ 8527] <= 12'h000;
rommem[ 8528] <= 12'h026;
rommem[ 8529] <= 12'hFF7;
rommem[ 8530] <= 12'h039;
rommem[ 8531] <= 12'h086;
rommem[ 8532] <= 12'h050;
rommem[ 8533] <= 12'h015;
rommem[ 8534] <= 12'h0F6;
rommem[ 8535] <= 12'hFFF;
rommem[ 8536] <= 12'hFFF;
rommem[ 8537] <= 12'hFE0;
rommem[ 8538] <= 12'h0C0;
rommem[ 8539] <= 12'h001;
rommem[ 8540] <= 12'h08E;
rommem[ 8541] <= 12'h000;
rommem[ 8542] <= 12'h000;
rommem[ 8543] <= 12'h03A;
rommem[ 8544] <= 12'h0A7;
rommem[ 8545] <= 12'h809;
rommem[ 8546] <= 12'hE00;
rommem[ 8547] <= 12'h000;
rommem[ 8548] <= 12'h030;
rommem[ 8549] <= 12'h008;
rommem[ 8550] <= 12'h08C;
rommem[ 8551] <= 12'h000;
rommem[ 8552] <= 12'hFFF;
rommem[ 8553] <= 12'h025;
rommem[ 8554] <= 12'hFF5;
rommem[ 8555] <= 12'h0BD;
rommem[ 8556] <= 12'hFFE;
rommem[ 8557] <= 12'h13D;
rommem[ 8558] <= 12'h0CB;
rommem[ 8559] <= 12'h002;
rommem[ 8560] <= 12'h086;
rommem[ 8561] <= 12'h04E;
rommem[ 8562] <= 12'h08E;
rommem[ 8563] <= 12'h000;
rommem[ 8564] <= 12'h000;
rommem[ 8565] <= 12'h03A;
rommem[ 8566] <= 12'h03A;
rommem[ 8567] <= 12'h0A7;
rommem[ 8568] <= 12'h809;
rommem[ 8569] <= 12'hE00;
rommem[ 8570] <= 12'h000;
rommem[ 8571] <= 12'h08C;
rommem[ 8572] <= 12'h000;
rommem[ 8573] <= 12'hFFF;
rommem[ 8574] <= 12'h025;
rommem[ 8575] <= 12'hFF6;
rommem[ 8576] <= 12'h0BD;
rommem[ 8577] <= 12'hFFE;
rommem[ 8578] <= 12'h13D;
rommem[ 8579] <= 12'h0CB;
rommem[ 8580] <= 12'h008;
rommem[ 8581] <= 12'h0C1;
rommem[ 8582] <= 12'hFF0;
rommem[ 8583] <= 12'h025;
rommem[ 8584] <= 12'hFE9;
rommem[ 8585] <= 12'h013;
rommem[ 8586] <= 12'h016;
rommem[ 8587] <= 12'h000;
rommem[ 8588] <= 12'hEAC;
rommem[ 8589] <= 12'h086;
rommem[ 8590] <= 12'h050;
rommem[ 8591] <= 12'h08E;
rommem[ 8592] <= 12'h000;
rommem[ 8593] <= 12'h000;
rommem[ 8594] <= 12'h0A7;
rommem[ 8595] <= 12'h809;
rommem[ 8596] <= 12'hE00;
rommem[ 8597] <= 12'h000;
rommem[ 8598] <= 12'h030;
rommem[ 8599] <= 12'h001;
rommem[ 8600] <= 12'h08C;
rommem[ 8601] <= 12'h000;
rommem[ 8602] <= 12'hFFF;
rommem[ 8603] <= 12'h025;
rommem[ 8604] <= 12'hFF5;
rommem[ 8605] <= 12'h0C6;
rommem[ 8606] <= 12'h002;
rommem[ 8607] <= 12'h086;
rommem[ 8608] <= 12'h04E;
rommem[ 8609] <= 12'h08E;
rommem[ 8610] <= 12'h000;
rommem[ 8611] <= 12'h000;
rommem[ 8612] <= 12'h03A;
rommem[ 8613] <= 12'h03A;
rommem[ 8614] <= 12'h0A7;
rommem[ 8615] <= 12'h809;
rommem[ 8616] <= 12'hE00;
rommem[ 8617] <= 12'h000;
rommem[ 8618] <= 12'h08C;
rommem[ 8619] <= 12'h000;
rommem[ 8620] <= 12'hFFF;
rommem[ 8621] <= 12'h025;
rommem[ 8622] <= 12'hFC7;
rommem[ 8623] <= 12'h05C;
rommem[ 8624] <= 12'h0C1;
rommem[ 8625] <= 12'hFF0;
rommem[ 8626] <= 12'h025;
rommem[ 8627] <= 12'hFED;
rommem[ 8628] <= 12'h039;
rommem[ 8629] <= 12'h0CC;
rommem[ 8630] <= 12'h895;
rommem[ 8631] <= 12'h440;
rommem[ 8632] <= 12'h0C1;
rommem[ 8633] <= 12'h0FF;
rommem[ 8634] <= 12'h026;
rommem[ 8635] <= 12'h000;
rommem[ 8636] <= 12'h015;
rommem[ 8637] <= 12'h0B7;
rommem[ 8638] <= 12'hFFF;
rommem[ 8639] <= 12'hE60;
rommem[ 8640] <= 12'h001;
rommem[ 8641] <= 12'h083;
rommem[ 8642] <= 12'h000;
rommem[ 8643] <= 12'h001;
rommem[ 8644] <= 12'h026;
rommem[ 8645] <= 12'hFF2;
rommem[ 8646] <= 12'h039;
rommem[ 8647] <= 12'h034;
rommem[ 8648] <= 12'h076;
rommem[ 8649] <= 12'h01F;
rommem[ 8650] <= 12'h098;
rommem[ 8651] <= 12'h048;
rommem[ 8652] <= 12'h048;
rommem[ 8653] <= 12'h048;
rommem[ 8654] <= 12'h048;
rommem[ 8655] <= 12'h08A;
rommem[ 8656] <= 12'hC00;
rommem[ 8657] <= 12'h05F;
rommem[ 8658] <= 12'h01F;
rommem[ 8659] <= 12'h001;
rommem[ 8660] <= 12'h034;
rommem[ 8661] <= 12'h006;
rommem[ 8662] <= 12'h18E;
rommem[ 8663] <= 12'hE00;
rommem[ 8664] <= 12'h000;
rommem[ 8665] <= 12'h0CE;
rommem[ 8666] <= 12'h000;
rommem[ 8667] <= 12'h400;
rommem[ 8668] <= 12'h0EC;
rommem[ 8669] <= 12'h801;
rommem[ 8670] <= 12'h0ED;
rommem[ 8671] <= 12'hA01;
rommem[ 8672] <= 12'h033;
rommem[ 8673] <= 12'h5FF;
rommem[ 8674] <= 12'h283;
rommem[ 8647] <= 12'h058;
rommem[ 8648] <= 12'h049;
rommem[ 8649] <= 12'h058;
rommem[ 8650] <= 12'h049;
rommem[ 8651] <= 12'h058;
rommem[ 8652] <= 12'h049;
rommem[ 8653] <= 12'h058;
rommem[ 8654] <= 12'h049;
rommem[ 8655] <= 12'h058;
rommem[ 8656] <= 12'h049;
rommem[ 8657] <= 12'h039;
rommem[ 8658] <= 12'h034;
rommem[ 8659] <= 12'h076;
rommem[ 8660] <= 12'h01F;
rommem[ 8661] <= 12'h098;
rommem[ 8662] <= 12'h048;
rommem[ 8663] <= 12'h048;
rommem[ 8664] <= 12'h048;
rommem[ 8665] <= 12'h048;
rommem[ 8666] <= 12'h08A;
rommem[ 8667] <= 12'hC00;
rommem[ 8668] <= 12'h05F;
rommem[ 8669] <= 12'h01F;
rommem[ 8670] <= 12'h001;
rommem[ 8671] <= 12'h034;
rommem[ 8672] <= 12'h006;
rommem[ 8673] <= 12'h18E;
rommem[ 8674] <= 12'hE00;
rommem[ 8675] <= 12'h000;
rommem[ 8676] <= 12'h000;
rommem[ 8677] <= 12'h026;
rommem[ 8678] <= 12'hFF5;
rommem[ 8679] <= 12'h035;
rommem[ 8680] <= 12'h010;
rommem[ 8681] <= 12'h0E6;
rommem[ 8682] <= 12'h808;
rommem[ 8683] <= 12'h110;
rommem[ 8684] <= 12'h086;
rommem[ 8685] <= 12'h040;
rommem[ 8686] <= 12'h03D;
rommem[ 8687] <= 12'h01F;
rommem[ 8688] <= 12'h002;
rommem[ 8689] <= 12'h0E6;
rommem[ 8690] <= 12'h808;
rommem[ 8691] <= 12'h111;
rommem[ 8692] <= 12'h01F;
rommem[ 8693] <= 12'h021;
rommem[ 8694] <= 12'h03A;
rommem[ 8695] <= 12'h015;
rommem[ 8696] <= 12'h0BF;
rommem[ 8697] <= 12'hFFF;
rommem[ 8698] <= 12'hE07;
rommem[ 8699] <= 12'hF22;
rommem[ 8700] <= 12'h035;
rommem[ 8701] <= 12'h0F6;
rommem[ 8702] <= 12'h034;
rommem[ 8703] <= 12'h076;
rommem[ 8704] <= 12'h08D;
rommem[ 8705] <= 12'h08D;
rommem[ 8706] <= 12'h01F;
rommem[ 8707] <= 12'h002;
rommem[ 8708] <= 12'h08E;
rommem[ 8709] <= 12'hE00;
rommem[ 8710] <= 12'h000;
rommem[ 8711] <= 12'h0CE;
rommem[ 8712] <= 12'h000;
rommem[ 8713] <= 12'h400;
rommem[ 8714] <= 12'h0EC;
rommem[ 8715] <= 12'h801;
rommem[ 8716] <= 12'h0ED;
rommem[ 8717] <= 12'hA01;
rommem[ 8718] <= 12'h033;
rommem[ 8719] <= 12'h5FF;
rommem[ 8720] <= 12'h283;
rommem[ 8676] <= 12'h0CE;
rommem[ 8677] <= 12'h000;
rommem[ 8678] <= 12'h400;
rommem[ 8679] <= 12'h0EC;
rommem[ 8680] <= 12'h801;
rommem[ 8681] <= 12'h0ED;
rommem[ 8682] <= 12'hA01;
rommem[ 8683] <= 12'h033;
rommem[ 8684] <= 12'h5FF;
rommem[ 8685] <= 12'h283;
rommem[ 8686] <= 12'h000;
rommem[ 8687] <= 12'h000;
rommem[ 8688] <= 12'h026;
rommem[ 8689] <= 12'hFF5;
rommem[ 8690] <= 12'h035;
rommem[ 8691] <= 12'h010;
rommem[ 8692] <= 12'h0E6;
rommem[ 8693] <= 12'h808;
rommem[ 8694] <= 12'h110;
rommem[ 8695] <= 12'h086;
rommem[ 8696] <= 12'h040;
rommem[ 8697] <= 12'h03D;
rommem[ 8698] <= 12'h01F;
rommem[ 8699] <= 12'h002;
rommem[ 8700] <= 12'h0E6;
rommem[ 8701] <= 12'h808;
rommem[ 8702] <= 12'h111;
rommem[ 8703] <= 12'h01F;
rommem[ 8704] <= 12'h021;
rommem[ 8705] <= 12'h03A;
rommem[ 8706] <= 12'h015;
rommem[ 8707] <= 12'h0BF;
rommem[ 8708] <= 12'hFFF;
rommem[ 8709] <= 12'hE07;
rommem[ 8710] <= 12'hF22;
rommem[ 8711] <= 12'h035;
rommem[ 8712] <= 12'h0F6;
rommem[ 8713] <= 12'h034;
rommem[ 8714] <= 12'h076;
rommem[ 8715] <= 12'h08D;
rommem[ 8716] <= 12'h08D;
rommem[ 8717] <= 12'h01F;
rommem[ 8718] <= 12'h002;
rommem[ 8719] <= 12'h08E;
rommem[ 8720] <= 12'hE00;
rommem[ 8721] <= 12'h000;
rommem[ 8722] <= 12'h000;
rommem[ 8723] <= 12'h026;
rommem[ 8724] <= 12'hFF5;
rommem[ 8725] <= 12'h035;
rommem[ 8726] <= 12'h0F6;
rommem[ 8727] <= 12'h054;
rommem[ 8728] <= 12'h045;
rommem[ 8729] <= 12'h058;
rommem[ 8730] <= 12'h054;
rommem[ 8731] <= 12'h053;
rommem[ 8732] <= 12'h043;
rommem[ 8733] <= 12'h052;
rommem[ 8734] <= 12'h020;
rommem[ 8735] <= 12'hFFE;
rommem[ 8736] <= 12'h229;
rommem[ 8737] <= 12'hFFE;
rommem[ 8738] <= 12'h22A;
rommem[ 8739] <= 12'hFFE;
rommem[ 8740] <= 12'h22B;
rommem[ 8741] <= 12'hFFE;
rommem[ 8742] <= 12'h22C;
rommem[ 8743] <= 12'hFFE;
rommem[ 8744] <= 12'h22D;
rommem[ 8745] <= 12'h039;
rommem[ 8746] <= 12'h039;
rommem[ 8747] <= 12'h039;
rommem[ 8748] <= 12'h039;
rommem[ 8749] <= 12'h039;
rommem[ 8750] <= 12'h034;
rommem[ 8751] <= 12'h076;
rommem[ 8752] <= 12'h08E;
rommem[ 8753] <= 12'h000;
rommem[ 8754] <= 12'h800;
rommem[ 8755] <= 12'h01F;
rommem[ 8756] <= 12'h013;
rommem[ 8757] <= 12'h08D;
rommem[ 8758] <= 12'h058;
rommem[ 8759] <= 12'h01F;
rommem[ 8760] <= 12'h002;
rommem[ 8761] <= 12'h0C6;
rommem[ 8762] <= 12'h020;
rommem[ 8763] <= 12'h0E7;
rommem[ 8764] <= 12'hA00;
rommem[ 8765] <= 12'h030;
rommem[ 8766] <= 12'h1FF;
rommem[ 8767] <= 12'h026;
rommem[ 8768] <= 12'hFFA;
rommem[ 8769] <= 12'h015;
rommem[ 8770] <= 12'h0F6;
rommem[ 8771] <= 12'hFFF;
rommem[ 8772] <= 12'hFFF;
rommem[ 8773] <= 12'hFE0;
rommem[ 8774] <= 12'h0F1;
rommem[ 8775] <= 12'hFFC;
rommem[ 8776] <= 12'h010;
rommem[ 8777] <= 12'h020;
rommem[ 8778] <= 12'h00D;
rommem[ 8779] <= 12'h18E;
rommem[ 8780] <= 12'hE02;
rommem[ 8781] <= 12'h000;
rommem[ 8782] <= 12'h086;
rommem[ 8783] <= 12'h0CE;
rommem[ 8784] <= 12'h01F;
rommem[ 8785] <= 12'h031;
rommem[ 8786] <= 12'h0A7;
rommem[ 8787] <= 12'hA00;
rommem[ 8788] <= 12'h030;
rommem[ 8789] <= 12'h1FF;
rommem[ 8790] <= 12'h026;
rommem[ 8791] <= 12'hFFA;
rommem[ 8792] <= 12'h035;
rommem[ 8793] <= 12'h0F6;
rommem[ 8794] <= 12'h034;
rommem[ 8795] <= 12'h076;
rommem[ 8796] <= 12'h18E;
rommem[ 8797] <= 12'h000;
rommem[ 8798] <= 12'h3FF;
rommem[ 8799] <= 12'h08D;
rommem[ 8800] <= 12'h02E;
rommem[ 8801] <= 12'h01F;
rommem[ 8802] <= 12'h001;
rommem[ 8803] <= 12'h01F;
rommem[ 8804] <= 12'h003;
rommem[ 8805] <= 12'h030;
rommem[ 8806] <= 12'h040;
rommem[ 8807] <= 12'h0EC;
rommem[ 8808] <= 12'h801;
rommem[ 8809] <= 12'h0ED;
rommem[ 8810] <= 12'hC01;
rommem[ 8811] <= 12'h031;
rommem[ 8812] <= 12'h3FF;
rommem[ 8813] <= 12'h026;
rommem[ 8814] <= 12'hFF8;
rommem[ 8815] <= 12'h086;
rommem[ 8816] <= 12'h01F;
rommem[ 8817] <= 12'h08D;
rommem[ 8818] <= 12'h002;
rommem[ 8819] <= 12'h035;
rommem[ 8820] <= 12'h0F6;
rommem[ 8821] <= 12'h034;
rommem[ 8822] <= 12'h016;
rommem[ 8823] <= 12'h034;
rommem[ 8824] <= 12'h002;
rommem[ 8825] <= 12'h08D;
rommem[ 8826] <= 12'h014;
rommem[ 8722] <= 12'h0CE;
rommem[ 8723] <= 12'h000;
rommem[ 8724] <= 12'h400;
rommem[ 8725] <= 12'h0EC;
rommem[ 8726] <= 12'h801;
rommem[ 8727] <= 12'h0ED;
rommem[ 8728] <= 12'hA01;
rommem[ 8729] <= 12'h033;
rommem[ 8730] <= 12'h5FF;
rommem[ 8731] <= 12'h283;
rommem[ 8732] <= 12'h000;
rommem[ 8733] <= 12'h000;
rommem[ 8734] <= 12'h026;
rommem[ 8735] <= 12'hFF5;
rommem[ 8736] <= 12'h035;
rommem[ 8737] <= 12'h0F6;
rommem[ 8738] <= 12'h054;
rommem[ 8739] <= 12'h045;
rommem[ 8740] <= 12'h058;
rommem[ 8741] <= 12'h054;
rommem[ 8742] <= 12'h053;
rommem[ 8743] <= 12'h043;
rommem[ 8744] <= 12'h052;
rommem[ 8745] <= 12'h020;
rommem[ 8746] <= 12'hFFE;
rommem[ 8747] <= 12'h234;
rommem[ 8748] <= 12'hFFE;
rommem[ 8749] <= 12'h235;
rommem[ 8750] <= 12'hFFE;
rommem[ 8751] <= 12'h236;
rommem[ 8752] <= 12'hFFE;
rommem[ 8753] <= 12'h237;
rommem[ 8754] <= 12'hFFE;
rommem[ 8755] <= 12'h238;
rommem[ 8756] <= 12'h039;
rommem[ 8757] <= 12'h039;
rommem[ 8758] <= 12'h039;
rommem[ 8759] <= 12'h039;
rommem[ 8760] <= 12'h039;
rommem[ 8761] <= 12'h034;
rommem[ 8762] <= 12'h076;
rommem[ 8763] <= 12'h08E;
rommem[ 8764] <= 12'h000;
rommem[ 8765] <= 12'h800;
rommem[ 8766] <= 12'h01F;
rommem[ 8767] <= 12'h013;
rommem[ 8768] <= 12'h08D;
rommem[ 8769] <= 12'h058;
rommem[ 8770] <= 12'h01F;
rommem[ 8771] <= 12'h002;
rommem[ 8772] <= 12'h0C6;
rommem[ 8773] <= 12'h020;
rommem[ 8774] <= 12'h0E7;
rommem[ 8775] <= 12'hA00;
rommem[ 8776] <= 12'h030;
rommem[ 8777] <= 12'h1FF;
rommem[ 8778] <= 12'h026;
rommem[ 8779] <= 12'hFFA;
rommem[ 8780] <= 12'h015;
rommem[ 8781] <= 12'h0F6;
rommem[ 8782] <= 12'hFFF;
rommem[ 8783] <= 12'hFFF;
rommem[ 8784] <= 12'hFE0;
rommem[ 8785] <= 12'h0F1;
rommem[ 8786] <= 12'hFFC;
rommem[ 8787] <= 12'h010;
rommem[ 8788] <= 12'h020;
rommem[ 8789] <= 12'h00D;
rommem[ 8790] <= 12'h18E;
rommem[ 8791] <= 12'hE02;
rommem[ 8792] <= 12'h000;
rommem[ 8793] <= 12'h086;
rommem[ 8794] <= 12'h0CE;
rommem[ 8795] <= 12'h01F;
rommem[ 8796] <= 12'h031;
rommem[ 8797] <= 12'h0A7;
rommem[ 8798] <= 12'hA00;
rommem[ 8799] <= 12'h030;
rommem[ 8800] <= 12'h1FF;
rommem[ 8801] <= 12'h026;
rommem[ 8802] <= 12'hFFA;
rommem[ 8803] <= 12'h035;
rommem[ 8804] <= 12'h0F6;
rommem[ 8805] <= 12'h034;
rommem[ 8806] <= 12'h076;
rommem[ 8807] <= 12'h18E;
rommem[ 8808] <= 12'h000;
rommem[ 8809] <= 12'h3FF;
rommem[ 8810] <= 12'h08D;
rommem[ 8811] <= 12'h02E;
rommem[ 8812] <= 12'h01F;
rommem[ 8813] <= 12'h001;
rommem[ 8814] <= 12'h01F;
rommem[ 8815] <= 12'h003;
rommem[ 8816] <= 12'h030;
rommem[ 8817] <= 12'h040;
rommem[ 8818] <= 12'h0EC;
rommem[ 8819] <= 12'h801;
rommem[ 8820] <= 12'h0ED;
rommem[ 8821] <= 12'hC01;
rommem[ 8822] <= 12'h031;
rommem[ 8823] <= 12'h3FF;
rommem[ 8824] <= 12'h026;
rommem[ 8825] <= 12'hFF8;
rommem[ 8826] <= 12'h086;
rommem[ 8827] <= 12'h01F;
rommem[ 8828] <= 12'h001;
rommem[ 8829] <= 12'h035;
rommem[ 8830] <= 12'h002;
rommem[ 8831] <= 12'h0C6;
rommem[ 8832] <= 12'h040;
rommem[ 8833] <= 12'h03D;
rommem[ 8834] <= 12'h030;
rommem[ 8835] <= 12'h80B;
rommem[ 8836] <= 12'h086;
rommem[ 8837] <= 12'h020;
rommem[ 8838] <= 12'h0C6;
rommem[ 8839] <= 12'h040;
rommem[ 8840] <= 12'h0A7;
rommem[ 8841] <= 12'h800;
rommem[ 8842] <= 12'h05A;
rommem[ 8843] <= 12'h026;
rommem[ 8844] <= 12'hFFB;
rommem[ 8845] <= 12'h035;
rommem[ 8846] <= 12'h096;
rommem[ 8847] <= 12'h015;
rommem[ 8848] <= 12'h0B6;
rommem[ 8849] <= 12'hFFF;
rommem[ 8850] <= 12'hFFF;
rommem[ 8851] <= 12'hFE0;
rommem[ 8852] <= 12'h0B1;
rommem[ 8853] <= 12'hFFC;
rommem[ 8854] <= 12'h010;
rommem[ 8855] <= 12'h026;
rommem[ 8856] <= 12'h004;
rommem[ 8857] <= 12'h0CC;
rommem[ 8858] <= 12'hE00;
rommem[ 8859] <= 12'h000;
rommem[ 8860] <= 12'h039;
rommem[ 8861] <= 12'h0CC;
rommem[ 8862] <= 12'h007;
rommem[ 8863] <= 12'h800;
rommem[ 8864] <= 12'h039;
rommem[ 8865] <= 12'h034;
rommem[ 8866] <= 12'h016;
rommem[ 8867] <= 12'h00F;
rommem[ 8868] <= 12'h110;
rommem[ 8869] <= 12'h00F;
rommem[ 8870] <= 12'h111;
rommem[ 8871] <= 12'h015;
rommem[ 8872] <= 12'h0F6;
rommem[ 8873] <= 12'hFFF;
rommem[ 8874] <= 12'hFFF;
rommem[ 8875] <= 12'hFE0;
rommem[ 8876] <= 12'h0F1;
rommem[ 8877] <= 12'hFFC;
rommem[ 8878] <= 12'h010;
rommem[ 8879] <= 12'h026;
rommem[ 8880] <= 12'h006;
rommem[ 8881] <= 12'h04F;
rommem[ 8882] <= 12'h015;
rommem[ 8883] <= 12'h0B7;
rommem[ 8884] <= 12'hFFF;
rommem[ 8885] <= 12'hE07;
rommem[ 8886] <= 12'hF22;
rommem[ 8887] <= 12'h035;
rommem[ 8888] <= 12'h096;
rommem[ 8889] <= 12'h034;
rommem[ 8890] <= 12'h016;
rommem[ 8891] <= 12'h015;
rommem[ 8892] <= 12'h0F6;
rommem[ 8893] <= 12'hFFF;
rommem[ 8894] <= 12'hFFF;
rommem[ 8895] <= 12'hFE0;
rommem[ 8896] <= 12'h0F1;
rommem[ 8897] <= 12'hFFC;
rommem[ 8898] <= 12'h010;
rommem[ 8899] <= 12'h026;
rommem[ 8900] <= 12'h014;
rommem[ 8901] <= 12'h096;
rommem[ 8902] <= 12'h110;
rommem[ 8903] <= 12'h084;
rommem[ 8904] <= 12'h03F;
rommem[ 8905] <= 12'h015;
rommem[ 8906] <= 12'h0F6;
rommem[ 8907] <= 12'hFFF;
rommem[ 8908] <= 12'hE07;
rommem[ 8909] <= 12'hF00;
rommem[ 8910] <= 12'h03D;
rommem[ 8911] <= 12'h01F;
rommem[ 8912] <= 12'h001;
rommem[ 8913] <= 12'h0D6;
rommem[ 8914] <= 12'h111;
rommem[ 8915] <= 12'h03A;
rommem[ 8916] <= 12'h015;
rommem[ 8917] <= 12'h0BF;
rommem[ 8918] <= 12'hFFF;
rommem[ 8919] <= 12'hE07;
rommem[ 8920] <= 12'hF22;
rommem[ 8921] <= 12'h035;
rommem[ 8922] <= 12'h096;
rommem[ 8923] <= 12'h034;
rommem[ 8924] <= 12'h010;
rommem[ 8925] <= 12'h096;
rommem[ 8926] <= 12'h110;
rommem[ 8927] <= 12'h0C6;
rommem[ 8928] <= 12'h040;
rommem[ 8929] <= 12'h03D;
rommem[ 8930] <= 12'h01F;
rommem[ 8931] <= 12'h001;
rommem[ 8932] <= 12'h0D6;
rommem[ 8933] <= 12'h111;
rommem[ 8934] <= 12'h03A;
rommem[ 8935] <= 12'h015;
rommem[ 8936] <= 12'h0F6;
rommem[ 8937] <= 12'hFFF;
rommem[ 8938] <= 12'hFFF;
rommem[ 8939] <= 12'hFE0;
rommem[ 8940] <= 12'h0F1;
rommem[ 8941] <= 12'hFFC;
rommem[ 8942] <= 12'h010;
rommem[ 8943] <= 12'h026;
rommem[ 8944] <= 12'h005;
rommem[ 8945] <= 12'h015;
rommem[ 8946] <= 12'h0BF;
rommem[ 8947] <= 12'hFFF;
rommem[ 8948] <= 12'hE07;
rommem[ 8949] <= 12'hF22;
rommem[ 8950] <= 12'h08D;
rommem[ 8951] <= 12'hF97;
rommem[ 8952] <= 12'h030;
rommem[ 8953] <= 12'h80B;
rommem[ 8954] <= 12'h01F;
rommem[ 8955] <= 12'h010;
rommem[ 8956] <= 12'h035;
rommem[ 8957] <= 12'h090;
rommem[ 8958] <= 12'h017;
rommem[ 8959] <= 12'h000;
rommem[ 8960] <= 12'h907;
rommem[ 8961] <= 12'h034;
rommem[ 8962] <= 12'h016;
rommem[ 8963] <= 12'h0C1;
rommem[ 8964] <= 12'h00D;
rommem[ 8965] <= 12'h026;
rommem[ 8966] <= 12'h007;
rommem[ 8967] <= 12'h00F;
rommem[ 8968] <= 12'h111;
rommem[ 8969] <= 12'h08D;
rommem[ 8970] <= 12'hFAE;
rommem[ 8971] <= 12'h016;
rommem[ 8972] <= 12'h000;
rommem[ 8973] <= 12'h08C;
rommem[ 8974] <= 12'h0C1;
rommem[ 8975] <= 12'h091;
rommem[ 8976] <= 12'h026;
rommem[ 8977] <= 12'h00D;
rommem[ 8978] <= 12'h096;
rommem[ 8979] <= 12'h111;
rommem[ 8980] <= 12'h081;
rommem[ 8981] <= 12'h040;
rommem[ 8982] <= 12'h024;
rommem[ 8983] <= 12'h003;
rommem[ 8984] <= 12'h04C;
rommem[ 8985] <= 12'h097;
rommem[ 8986] <= 12'h111;
rommem[ 8987] <= 12'h08D;
rommem[ 8988] <= 12'hF9C;
rommem[ 8989] <= 12'h035;
rommem[ 8990] <= 12'h096;
rommem[ 8991] <= 12'h0C1;
rommem[ 8992] <= 12'h090;
rommem[ 8993] <= 12'h026;
rommem[ 8994] <= 12'h009;
rommem[ 8995] <= 12'h096;
rommem[ 8996] <= 12'h110;
rommem[ 8997] <= 12'h027;
rommem[ 8998] <= 12'hFF4;
rommem[ 8999] <= 12'h04A;
rommem[ 9000] <= 12'h097;
rommem[ 9001] <= 12'h110;
rommem[ 9002] <= 12'h020;
rommem[ 9003] <= 12'hFEF;
rommem[ 9004] <= 12'h0C1;
rommem[ 9005] <= 12'h093;
rommem[ 9006] <= 12'h026;
rommem[ 9007] <= 12'h009;
rommem[ 9008] <= 12'h096;
rommem[ 9009] <= 12'h111;
rommem[ 9010] <= 12'h027;
rommem[ 9011] <= 12'hFE7;
rommem[ 9012] <= 12'h04A;
rommem[ 9013] <= 12'h097;
rommem[ 9014] <= 12'h111;
rommem[ 9015] <= 12'h020;
rommem[ 9016] <= 12'hFE2;
rommem[ 9017] <= 12'h0C1;
rommem[ 9018] <= 12'h092;
rommem[ 9019] <= 12'h026;
rommem[ 9020] <= 12'h00B;
rommem[ 9021] <= 12'h096;
rommem[ 9022] <= 12'h110;
rommem[ 9023] <= 12'h081;
rommem[ 9024] <= 12'h020;
rommem[ 9025] <= 12'h027;
rommem[ 9026] <= 12'hFD8;
rommem[ 9027] <= 12'h04C;
rommem[ 9028] <= 12'h097;
rommem[ 9029] <= 12'h110;
rommem[ 9030] <= 12'h020;
rommem[ 9031] <= 12'hFD3;
rommem[ 9032] <= 12'h0C1;
rommem[ 9033] <= 12'h094;
rommem[ 9034] <= 12'h026;
rommem[ 9035] <= 12'h00C;
rommem[ 9036] <= 12'h096;
rommem[ 9037] <= 12'h111;
rommem[ 9038] <= 12'h027;
rommem[ 9039] <= 12'h004;
rommem[ 9040] <= 12'h00F;
rommem[ 8828] <= 12'h08D;
rommem[ 8829] <= 12'h002;
rommem[ 8830] <= 12'h035;
rommem[ 8831] <= 12'h0F6;
rommem[ 8832] <= 12'h034;
rommem[ 8833] <= 12'h016;
rommem[ 8834] <= 12'h034;
rommem[ 8835] <= 12'h002;
rommem[ 8836] <= 12'h08D;
rommem[ 8837] <= 12'h014;
rommem[ 8838] <= 12'h01F;
rommem[ 8839] <= 12'h001;
rommem[ 8840] <= 12'h035;
rommem[ 8841] <= 12'h002;
rommem[ 8842] <= 12'h0C6;
rommem[ 8843] <= 12'h040;
rommem[ 8844] <= 12'h03D;
rommem[ 8845] <= 12'h030;
rommem[ 8846] <= 12'h80B;
rommem[ 8847] <= 12'h086;
rommem[ 8848] <= 12'h020;
rommem[ 8849] <= 12'h0C6;
rommem[ 8850] <= 12'h040;
rommem[ 8851] <= 12'h0A7;
rommem[ 8852] <= 12'h800;
rommem[ 8853] <= 12'h05A;
rommem[ 8854] <= 12'h026;
rommem[ 8855] <= 12'hFFB;
rommem[ 8856] <= 12'h035;
rommem[ 8857] <= 12'h096;
rommem[ 8858] <= 12'h015;
rommem[ 8859] <= 12'h0B6;
rommem[ 8860] <= 12'hFFF;
rommem[ 8861] <= 12'hFFF;
rommem[ 8862] <= 12'hFE0;
rommem[ 8863] <= 12'h0B1;
rommem[ 8864] <= 12'hFFC;
rommem[ 8865] <= 12'h010;
rommem[ 8866] <= 12'h026;
rommem[ 8867] <= 12'h008;
rommem[ 8868] <= 12'h081;
rommem[ 8869] <= 12'h020;
rommem[ 8870] <= 12'h027;
rommem[ 8871] <= 12'h004;
rommem[ 8872] <= 12'h0CC;
rommem[ 8873] <= 12'hE00;
rommem[ 8874] <= 12'h000;
rommem[ 8875] <= 12'h039;
rommem[ 8876] <= 12'h0CC;
rommem[ 8877] <= 12'h007;
rommem[ 8878] <= 12'h800;
rommem[ 8879] <= 12'h039;
rommem[ 8880] <= 12'h034;
rommem[ 8881] <= 12'h016;
rommem[ 8882] <= 12'h00F;
rommem[ 8883] <= 12'h110;
rommem[ 8884] <= 12'h00F;
rommem[ 8885] <= 12'h111;
rommem[ 8886] <= 12'h015;
rommem[ 8887] <= 12'h0F6;
rommem[ 8888] <= 12'hFFF;
rommem[ 8889] <= 12'hFFF;
rommem[ 8890] <= 12'hFE0;
rommem[ 8891] <= 12'h0F1;
rommem[ 8892] <= 12'hFFC;
rommem[ 8893] <= 12'h010;
rommem[ 8894] <= 12'h026;
rommem[ 8895] <= 12'h00A;
rommem[ 8896] <= 12'h0C1;
rommem[ 8897] <= 12'h020;
rommem[ 8898] <= 12'h027;
rommem[ 8899] <= 12'h006;
rommem[ 8900] <= 12'h04F;
rommem[ 8901] <= 12'h015;
rommem[ 8902] <= 12'h0B7;
rommem[ 8903] <= 12'hFFF;
rommem[ 8904] <= 12'hE07;
rommem[ 8905] <= 12'hF22;
rommem[ 8906] <= 12'h035;
rommem[ 8907] <= 12'h096;
rommem[ 8908] <= 12'h034;
rommem[ 8909] <= 12'h016;
rommem[ 8910] <= 12'h015;
rommem[ 8911] <= 12'h0F6;
rommem[ 8912] <= 12'hFFF;
rommem[ 8913] <= 12'hFFF;
rommem[ 8914] <= 12'hFE0;
rommem[ 8915] <= 12'h0F1;
rommem[ 8916] <= 12'hFFC;
rommem[ 8917] <= 12'h010;
rommem[ 8918] <= 12'h026;
rommem[ 8919] <= 12'h018;
rommem[ 8920] <= 12'h0C1;
rommem[ 8921] <= 12'h020;
rommem[ 8922] <= 12'h027;
rommem[ 8923] <= 12'h014;
rommem[ 8924] <= 12'h096;
rommem[ 8925] <= 12'h110;
rommem[ 8926] <= 12'h084;
rommem[ 8927] <= 12'h03F;
rommem[ 8928] <= 12'h015;
rommem[ 8929] <= 12'h0F6;
rommem[ 8930] <= 12'hFFF;
rommem[ 8931] <= 12'hE07;
rommem[ 8932] <= 12'hF00;
rommem[ 8933] <= 12'h03D;
rommem[ 8934] <= 12'h01F;
rommem[ 8935] <= 12'h001;
rommem[ 8936] <= 12'h0D6;
rommem[ 8937] <= 12'h111;
rommem[ 8938] <= 12'h03A;
rommem[ 8939] <= 12'h015;
rommem[ 8940] <= 12'h0BF;
rommem[ 8941] <= 12'hFFF;
rommem[ 8942] <= 12'hE07;
rommem[ 8943] <= 12'hF22;
rommem[ 8944] <= 12'h035;
rommem[ 8945] <= 12'h096;
rommem[ 8946] <= 12'h034;
rommem[ 8947] <= 12'h010;
rommem[ 8948] <= 12'h096;
rommem[ 8949] <= 12'h110;
rommem[ 8950] <= 12'h0C6;
rommem[ 8951] <= 12'h040;
rommem[ 8952] <= 12'h03D;
rommem[ 8953] <= 12'h01F;
rommem[ 8954] <= 12'h001;
rommem[ 8955] <= 12'h0D6;
rommem[ 8956] <= 12'h111;
rommem[ 8957] <= 12'h03A;
rommem[ 8958] <= 12'h015;
rommem[ 8959] <= 12'h0F6;
rommem[ 8960] <= 12'hFFF;
rommem[ 8961] <= 12'hFFF;
rommem[ 8962] <= 12'hFE0;
rommem[ 8963] <= 12'h0F1;
rommem[ 8964] <= 12'hFFC;
rommem[ 8965] <= 12'h010;
rommem[ 8966] <= 12'h026;
rommem[ 8967] <= 12'h009;
rommem[ 8968] <= 12'h0C1;
rommem[ 8969] <= 12'h020;
rommem[ 8970] <= 12'h027;
rommem[ 8971] <= 12'h005;
rommem[ 8972] <= 12'h015;
rommem[ 8973] <= 12'h0BF;
rommem[ 8974] <= 12'hFFF;
rommem[ 8975] <= 12'hE07;
rommem[ 8976] <= 12'hF22;
rommem[ 8977] <= 12'h08D;
rommem[ 8978] <= 12'hF87;
rommem[ 8979] <= 12'h030;
rommem[ 8980] <= 12'h80B;
rommem[ 8981] <= 12'h01F;
rommem[ 8982] <= 12'h010;
rommem[ 8983] <= 12'h035;
rommem[ 8984] <= 12'h090;
rommem[ 8985] <= 12'h017;
rommem[ 8986] <= 12'h000;
rommem[ 8987] <= 12'h96C;
rommem[ 8988] <= 12'h034;
rommem[ 8989] <= 12'h016;
rommem[ 8990] <= 12'h0C1;
rommem[ 8991] <= 12'h00D;
rommem[ 8992] <= 12'h026;
rommem[ 8993] <= 12'h007;
rommem[ 8994] <= 12'h00F;
rommem[ 8995] <= 12'h111;
rommem[ 8996] <= 12'h08D;
rommem[ 8997] <= 12'hFA6;
rommem[ 8998] <= 12'h016;
rommem[ 8999] <= 12'h000;
rommem[ 9000] <= 12'h08C;
rommem[ 9001] <= 12'h0C1;
rommem[ 9002] <= 12'h091;
rommem[ 9003] <= 12'h026;
rommem[ 9004] <= 12'h00D;
rommem[ 9005] <= 12'h096;
rommem[ 9006] <= 12'h111;
rommem[ 9007] <= 12'h081;
rommem[ 9008] <= 12'h040;
rommem[ 9009] <= 12'h024;
rommem[ 9010] <= 12'h003;
rommem[ 9011] <= 12'h04C;
rommem[ 9012] <= 12'h097;
rommem[ 9013] <= 12'h111;
rommem[ 9014] <= 12'h08D;
rommem[ 9015] <= 12'hF94;
rommem[ 9016] <= 12'h035;
rommem[ 9017] <= 12'h096;
rommem[ 9018] <= 12'h0C1;
rommem[ 9019] <= 12'h090;
rommem[ 9020] <= 12'h026;
rommem[ 9021] <= 12'h009;
rommem[ 9022] <= 12'h096;
rommem[ 9023] <= 12'h110;
rommem[ 9024] <= 12'h027;
rommem[ 9025] <= 12'hFF4;
rommem[ 9026] <= 12'h04A;
rommem[ 9027] <= 12'h097;
rommem[ 9028] <= 12'h110;
rommem[ 9029] <= 12'h020;
rommem[ 9030] <= 12'hFEF;
rommem[ 9031] <= 12'h0C1;
rommem[ 9032] <= 12'h093;
rommem[ 9033] <= 12'h026;
rommem[ 9034] <= 12'h009;
rommem[ 9035] <= 12'h096;
rommem[ 9036] <= 12'h111;
rommem[ 9037] <= 12'h027;
rommem[ 9038] <= 12'hFE7;
rommem[ 9039] <= 12'h04A;
rommem[ 9040] <= 12'h097;
rommem[ 9041] <= 12'h111;
rommem[ 9042] <= 12'h020;
rommem[ 9043] <= 12'hFC7;
rommem[ 9044] <= 12'h00F;
rommem[ 9045] <= 12'h110;
rommem[ 9046] <= 12'h020;
rommem[ 9047] <= 12'hFC3;
rommem[ 9048] <= 12'h0C1;
rommem[ 9049] <= 12'h099;
rommem[ 9050] <= 12'h026;
rommem[ 9051] <= 12'h008;
rommem[ 9052] <= 12'h08D;
rommem[ 9053] <= 12'hF7D;
rommem[ 9054] <= 12'h01F;
rommem[ 9055] <= 12'h001;
rommem[ 9056] <= 12'h096;
rommem[ 9057] <= 12'h111;
rommem[ 9058] <= 12'h020;
rommem[ 9059] <= 12'h011;
rommem[ 9060] <= 12'h0C1;
rommem[ 9061] <= 12'h008;
rommem[ 9062] <= 12'h026;
rommem[ 9063] <= 12'h01E;
rommem[ 9064] <= 12'h096;
rommem[ 9065] <= 12'h111;
rommem[ 9066] <= 12'h027;
rommem[ 9067] <= 12'h02E;
rommem[ 9068] <= 12'h04A;
rommem[ 9069] <= 12'h097;
rommem[ 9070] <= 12'h111;
rommem[ 9071] <= 12'h08D;
rommem[ 9072] <= 12'hF6A;
rommem[ 9073] <= 12'h01F;
rommem[ 9074] <= 12'h001;
rommem[ 9075] <= 12'h096;
rommem[ 9076] <= 12'h111;
rommem[ 9077] <= 12'h0E6;
rommem[ 9078] <= 12'h001;
rommem[ 9079] <= 12'h0E7;
rommem[ 9080] <= 12'h801;
rommem[ 9081] <= 12'h04C;
rommem[ 9082] <= 12'h081;
rommem[ 9083] <= 12'h040;
rommem[ 9084] <= 12'h025;
rommem[ 9085] <= 12'hFF7;
rommem[ 9086] <= 12'h0C6;
rommem[ 9087] <= 12'h020;
rommem[ 9088] <= 12'h030;
rommem[ 9089] <= 12'h1FF;
rommem[ 9090] <= 12'h0E7;
rommem[ 9091] <= 12'h804;
rommem[ 9092] <= 12'h020;
rommem[ 9093] <= 12'h014;
rommem[ 9094] <= 12'h0C1;
rommem[ 9095] <= 12'h00A;
rommem[ 9096] <= 12'h027;
rommem[ 9097] <= 12'h00E;
rommem[ 9098] <= 12'h034;
rommem[ 9099] <= 12'h004;
rommem[ 9100] <= 12'h08D;
rommem[ 9101] <= 12'hF4D;
rommem[ 9102] <= 12'h01F;
rommem[ 9103] <= 12'h001;
rommem[ 9104] <= 12'h035;
rommem[ 9105] <= 12'h004;
rommem[ 9043] <= 12'hFE2;
rommem[ 9044] <= 12'h0C1;
rommem[ 9045] <= 12'h092;
rommem[ 9046] <= 12'h026;
rommem[ 9047] <= 12'h00B;
rommem[ 9048] <= 12'h096;
rommem[ 9049] <= 12'h110;
rommem[ 9050] <= 12'h081;
rommem[ 9051] <= 12'h020;
rommem[ 9052] <= 12'h027;
rommem[ 9053] <= 12'hFD8;
rommem[ 9054] <= 12'h04C;
rommem[ 9055] <= 12'h097;
rommem[ 9056] <= 12'h110;
rommem[ 9057] <= 12'h020;
rommem[ 9058] <= 12'hFD3;
rommem[ 9059] <= 12'h0C1;
rommem[ 9060] <= 12'h094;
rommem[ 9061] <= 12'h026;
rommem[ 9062] <= 12'h00C;
rommem[ 9063] <= 12'h096;
rommem[ 9064] <= 12'h111;
rommem[ 9065] <= 12'h027;
rommem[ 9066] <= 12'h004;
rommem[ 9067] <= 12'h00F;
rommem[ 9068] <= 12'h111;
rommem[ 9069] <= 12'h020;
rommem[ 9070] <= 12'hFC7;
rommem[ 9071] <= 12'h00F;
rommem[ 9072] <= 12'h110;
rommem[ 9073] <= 12'h020;
rommem[ 9074] <= 12'hFC3;
rommem[ 9075] <= 12'h0C1;
rommem[ 9076] <= 12'h099;
rommem[ 9077] <= 12'h026;
rommem[ 9078] <= 12'h008;
rommem[ 9079] <= 12'h08D;
rommem[ 9080] <= 12'hF79;
rommem[ 9081] <= 12'h01F;
rommem[ 9082] <= 12'h001;
rommem[ 9083] <= 12'h096;
rommem[ 9084] <= 12'h111;
rommem[ 9085] <= 12'h020;
rommem[ 9086] <= 12'h011;
rommem[ 9087] <= 12'h0C1;
rommem[ 9088] <= 12'h008;
rommem[ 9089] <= 12'h026;
rommem[ 9090] <= 12'h01E;
rommem[ 9091] <= 12'h096;
rommem[ 9092] <= 12'h111;
rommem[ 9093] <= 12'h027;
rommem[ 9094] <= 12'h02E;
rommem[ 9095] <= 12'h04A;
rommem[ 9096] <= 12'h097;
rommem[ 9097] <= 12'h111;
rommem[ 9098] <= 12'h08D;
rommem[ 9099] <= 12'hF66;
rommem[ 9100] <= 12'h01F;
rommem[ 9101] <= 12'h001;
rommem[ 9102] <= 12'h096;
rommem[ 9103] <= 12'h111;
rommem[ 9104] <= 12'h0E6;
rommem[ 9105] <= 12'h001;
rommem[ 9106] <= 12'h0E7;
rommem[ 9107] <= 12'h804;
rommem[ 9108] <= 12'h08D;
rommem[ 9109] <= 12'h006;
rommem[ 9110] <= 12'h020;
rommem[ 9111] <= 12'h002;
rommem[ 9112] <= 12'h08D;
rommem[ 9113] <= 12'h011;
rommem[ 9114] <= 12'h035;
rommem[ 9115] <= 12'h096;
rommem[ 9116] <= 12'h034;
rommem[ 9117] <= 12'h016;
rommem[ 9118] <= 12'h096;
rommem[ 9119] <= 12'h111;
rommem[ 9120] <= 12'h04C;
rommem[ 9121] <= 12'h097;
rommem[ 9122] <= 12'h111;
rommem[ 9123] <= 12'h081;
rommem[ 9124] <= 12'h040;
rommem[ 9125] <= 12'h025;
rommem[ 9126] <= 12'h014;
rommem[ 9127] <= 12'h00F;
rommem[ 9128] <= 12'h111;
rommem[ 9129] <= 12'h020;
rommem[ 9130] <= 12'h002;
rommem[ 9131] <= 12'h034;
rommem[ 9132] <= 12'h016;
rommem[ 9133] <= 12'h096;
rommem[ 9134] <= 12'h110;
rommem[ 9135] <= 12'h04C;
rommem[ 9136] <= 12'h097;
rommem[ 9137] <= 12'h110;
rommem[ 9138] <= 12'h081;
rommem[ 9139] <= 12'h020;
rommem[ 9140] <= 12'h025;
rommem[ 9141] <= 12'h005;
rommem[ 9142] <= 12'h04A;
rommem[ 9143] <= 12'h097;
rommem[ 9144] <= 12'h110;
rommem[ 9145] <= 12'h08D;
rommem[ 9146] <= 12'hE9F;
rommem[ 9147] <= 12'h08D;
rommem[ 9148] <= 12'hEFC;
rommem[ 9149] <= 12'h035;
rommem[ 9150] <= 12'h096;
rommem[ 9151] <= 12'h034;
rommem[ 9152] <= 12'h016;
rommem[ 9153] <= 12'h01F;
rommem[ 9154] <= 12'h001;
rommem[ 9155] <= 12'h0B6;
rommem[ 9156] <= 12'hEF0;
rommem[ 9157] <= 12'h001;
rommem[ 9158] <= 12'h027;
rommem[ 9159] <= 12'hFFB;
rommem[ 9160] <= 12'h0E6;
rommem[ 9161] <= 12'h800;
rommem[ 9162] <= 12'h027;
rommem[ 9163] <= 12'h005;
rommem[ 9164] <= 12'h017;
rommem[ 9165] <= 12'h000;
rommem[ 9166] <= 12'h943;
rommem[ 9167] <= 12'h020;
rommem[ 9168] <= 12'hFF7;
rommem[ 9169] <= 12'h07F;
rommem[ 9170] <= 12'hEF0;
rommem[ 9171] <= 12'h001;
rommem[ 9172] <= 12'h035;
rommem[ 9173] <= 12'h096;
rommem[ 9174] <= 12'h034;
rommem[ 9175] <= 12'h006;
rommem[ 9176] <= 12'h08D;
rommem[ 9177] <= 12'hFE5;
rommem[ 9178] <= 12'h0C6;
rommem[ 9179] <= 12'h00D;
rommem[ 9180] <= 12'h017;
rommem[ 9181] <= 12'h000;
rommem[ 9182] <= 12'h933;
rommem[ 9183] <= 12'h0C6;
rommem[ 9184] <= 12'h00A;
rommem[ 9185] <= 12'h017;
rommem[ 9186] <= 12'h000;
rommem[ 9187] <= 12'h92E;
rommem[ 9188] <= 12'h035;
rommem[ 9189] <= 12'h086;
rommem[ 9190] <= 12'h08D;
rommem[ 9191] <= 12'h002;
rommem[ 9192] <= 12'h020;
rommem[ 9193] <= 12'h00D;
rommem[ 9194] <= 12'h034;
rommem[ 9195] <= 12'h010;
rommem[ 9196] <= 12'h08E;
rommem[ 9197] <= 12'hFFE;
rommem[ 9198] <= 12'h3FE;
rommem[ 9199] <= 12'h08D;
rommem[ 9200] <= 12'h006;
rommem[ 9201] <= 12'h035;
rommem[ 9202] <= 12'h010;
rommem[ 9203] <= 12'h039;
rommem[ 9204] <= 12'h0BD;
rommem[ 9205] <= 12'hFFE;
rommem[ 9206] <= 12'hD12;
rommem[ 9207] <= 12'h0E6;
rommem[ 9208] <= 12'h800;
rommem[ 9209] <= 12'h0C1;
rommem[ 9210] <= 12'h004;
rommem[ 9211] <= 12'h026;
rommem[ 9212] <= 12'hFF7;
rommem[ 9213] <= 12'h039;
rommem[ 9214] <= 12'h00D;
rommem[ 9215] <= 12'h00A;
rommem[ 9216] <= 12'h004;
rommem[ 9217] <= 12'h08D;
rommem[ 9218] <= 12'h007;
rommem[ 9219] <= 12'h01E;
rommem[ 9220] <= 12'h001;
rommem[ 9221] <= 12'h08D;
rommem[ 9222] <= 12'h003;
rommem[ 9223] <= 12'h01E;
rommem[ 9224] <= 12'h001;
rommem[ 9225] <= 12'h039;
rommem[ 9226] <= 12'h01E;
rommem[ 9227] <= 12'h089;
rommem[ 9228] <= 12'h08D;
rommem[ 9229] <= 12'h005;
rommem[ 9230] <= 12'h01E;
rommem[ 9231] <= 12'h089;
rommem[ 9232] <= 12'h08D;
rommem[ 9233] <= 12'h001;
rommem[ 9234] <= 12'h039;
rommem[ 9235] <= 12'h034;
rommem[ 9236] <= 12'h004;
rommem[ 9237] <= 12'h054;
rommem[ 9238] <= 12'h054;
rommem[ 9239] <= 12'h054;
rommem[ 9240] <= 12'h054;
rommem[ 9241] <= 12'h054;
rommem[ 9242] <= 12'h054;
rommem[ 9243] <= 12'h054;
rommem[ 9244] <= 12'h054;
rommem[ 9245] <= 12'h08D;
rommem[ 9246] <= 12'h00C;
rommem[ 9247] <= 12'h035;
rommem[ 9248] <= 12'h004;
rommem[ 9249] <= 12'h034;
rommem[ 9250] <= 12'h004;
rommem[ 9251] <= 12'h054;
rommem[ 9252] <= 12'h054;
rommem[ 9253] <= 12'h054;
rommem[ 9254] <= 12'h054;
rommem[ 9255] <= 12'h08D;
rommem[ 9256] <= 12'h002;
rommem[ 9257] <= 12'h035;
rommem[ 9258] <= 12'h004;
rommem[ 9259] <= 12'h034;
rommem[ 9260] <= 12'h004;
rommem[ 9261] <= 12'h0C4;
rommem[ 9262] <= 12'h00F;
rommem[ 9263] <= 12'h0C1;
rommem[ 9264] <= 12'h00A;
rommem[ 9265] <= 12'h025;
rommem[ 9266] <= 12'h007;
rommem[ 9267] <= 12'h0CB;
rommem[ 9268] <= 12'h037;
rommem[ 9269] <= 12'h017;
rommem[ 9270] <= 12'h000;
rommem[ 9271] <= 12'h8DA;
rommem[ 9272] <= 12'h035;
rommem[ 9273] <= 12'h084;
rommem[ 9274] <= 12'h0CB;
rommem[ 9275] <= 12'h030;
rommem[ 9276] <= 12'h017;
rommem[ 9277] <= 12'h000;
rommem[ 9278] <= 12'h8D3;
rommem[ 9279] <= 12'h035;
rommem[ 9280] <= 12'h084;
rommem[ 9281] <= 12'h0CC;
rommem[ 9282] <= 12'h061;
rommem[ 9283] <= 12'hA80;
rommem[ 9284] <= 12'h015;
rommem[ 9285] <= 12'h0F7;
rommem[ 9286] <= 12'hFFF;
rommem[ 9287] <= 12'hE60;
rommem[ 9288] <= 12'h014;
rommem[ 9289] <= 12'h015;
rommem[ 9290] <= 12'h0B7;
rommem[ 9291] <= 12'hFFF;
rommem[ 9292] <= 12'hE60;
rommem[ 9293] <= 12'h015;
rommem[ 9294] <= 12'h015;
rommem[ 9295] <= 12'h07F;
rommem[ 9296] <= 12'hFFF;
rommem[ 9297] <= 12'hE60;
rommem[ 9298] <= 12'h012;
rommem[ 9299] <= 12'h015;
rommem[ 9300] <= 12'h07F;
rommem[ 9301] <= 12'hFFF;
rommem[ 9302] <= 12'hE60;
rommem[ 9303] <= 12'h013;
rommem[ 9304] <= 12'h015;
rommem[ 9305] <= 12'h0B6;
rommem[ 9306] <= 12'hFFF;
rommem[ 9307] <= 12'hE60;
rommem[ 9308] <= 12'h00B;
rommem[ 9309] <= 12'h08A;
rommem[ 9310] <= 12'h100;
rommem[ 9311] <= 12'h015;
rommem[ 9312] <= 12'h0B7;
rommem[ 9313] <= 12'hFFF;
rommem[ 9314] <= 12'hE60;
rommem[ 9315] <= 12'h00B;
rommem[ 9316] <= 12'h086;
rommem[ 9317] <= 12'h810;
rommem[ 9318] <= 12'h015;
rommem[ 9319] <= 12'h0B7;
rommem[ 9320] <= 12'hFFF;
rommem[ 9321] <= 12'hE60;
rommem[ 9322] <= 12'h00E;
rommem[ 9323] <= 12'h039;
rommem[ 9324] <= 12'h086;
rommem[ 9325] <= 12'h01F;
rommem[ 9107] <= 12'h801;
rommem[ 9108] <= 12'h04C;
rommem[ 9109] <= 12'h081;
rommem[ 9110] <= 12'h040;
rommem[ 9111] <= 12'h025;
rommem[ 9112] <= 12'hFF7;
rommem[ 9113] <= 12'h0C6;
rommem[ 9114] <= 12'h020;
rommem[ 9115] <= 12'h030;
rommem[ 9116] <= 12'h1FF;
rommem[ 9117] <= 12'h0E7;
rommem[ 9118] <= 12'h804;
rommem[ 9119] <= 12'h020;
rommem[ 9120] <= 12'h014;
rommem[ 9121] <= 12'h0C1;
rommem[ 9122] <= 12'h00A;
rommem[ 9123] <= 12'h027;
rommem[ 9124] <= 12'h00E;
rommem[ 9125] <= 12'h034;
rommem[ 9126] <= 12'h004;
rommem[ 9127] <= 12'h08D;
rommem[ 9128] <= 12'hF49;
rommem[ 9129] <= 12'h01F;
rommem[ 9130] <= 12'h001;
rommem[ 9131] <= 12'h035;
rommem[ 9132] <= 12'h004;
rommem[ 9133] <= 12'h0E7;
rommem[ 9134] <= 12'h804;
rommem[ 9135] <= 12'h08D;
rommem[ 9136] <= 12'h006;
rommem[ 9137] <= 12'h020;
rommem[ 9138] <= 12'h002;
rommem[ 9139] <= 12'h08D;
rommem[ 9140] <= 12'h011;
rommem[ 9141] <= 12'h035;
rommem[ 9142] <= 12'h096;
rommem[ 9143] <= 12'h034;
rommem[ 9144] <= 12'h016;
rommem[ 9145] <= 12'h096;
rommem[ 9146] <= 12'h111;
rommem[ 9147] <= 12'h04C;
rommem[ 9148] <= 12'h097;
rommem[ 9149] <= 12'h111;
rommem[ 9150] <= 12'h081;
rommem[ 9151] <= 12'h040;
rommem[ 9152] <= 12'h025;
rommem[ 9153] <= 12'h014;
rommem[ 9154] <= 12'h00F;
rommem[ 9155] <= 12'h111;
rommem[ 9156] <= 12'h020;
rommem[ 9157] <= 12'h002;
rommem[ 9158] <= 12'h034;
rommem[ 9159] <= 12'h016;
rommem[ 9160] <= 12'h096;
rommem[ 9161] <= 12'h110;
rommem[ 9162] <= 12'h04C;
rommem[ 9163] <= 12'h097;
rommem[ 9164] <= 12'h110;
rommem[ 9165] <= 12'h081;
rommem[ 9166] <= 12'h020;
rommem[ 9167] <= 12'h025;
rommem[ 9168] <= 12'h005;
rommem[ 9169] <= 12'h04A;
rommem[ 9170] <= 12'h097;
rommem[ 9171] <= 12'h110;
rommem[ 9172] <= 12'h08D;
rommem[ 9173] <= 12'hE8F;
rommem[ 9174] <= 12'h08D;
rommem[ 9175] <= 12'hEF4;
rommem[ 9176] <= 12'h035;
rommem[ 9177] <= 12'h096;
rommem[ 9178] <= 12'h034;
rommem[ 9179] <= 12'h016;
rommem[ 9180] <= 12'h01F;
rommem[ 9181] <= 12'h001;
rommem[ 9182] <= 12'h015;
rommem[ 9183] <= 12'h0B6;
rommem[ 9184] <= 12'hFFF;
rommem[ 9185] <= 12'hFFF;
rommem[ 9186] <= 12'hFE0;
rommem[ 9187] <= 12'h081;
rommem[ 9188] <= 12'h020;
rommem[ 9189] <= 12'h027;
rommem[ 9190] <= 12'h005;
rommem[ 9191] <= 12'h0B6;
rommem[ 9192] <= 12'hEF0;
rommem[ 9193] <= 12'h001;
rommem[ 9194] <= 12'h027;
rommem[ 9195] <= 12'hFFB;
rommem[ 9196] <= 12'h0E6;
rommem[ 9197] <= 12'h800;
rommem[ 9198] <= 12'h027;
rommem[ 9199] <= 12'h005;
rommem[ 9200] <= 12'h017;
rommem[ 9201] <= 12'h000;
rommem[ 9202] <= 12'hAEE;
rommem[ 9203] <= 12'h020;
rommem[ 9204] <= 12'hFF7;
rommem[ 9205] <= 12'h07F;
rommem[ 9206] <= 12'hEF0;
rommem[ 9207] <= 12'h001;
rommem[ 9208] <= 12'h035;
rommem[ 9209] <= 12'h096;
rommem[ 9210] <= 12'h034;
rommem[ 9211] <= 12'h006;
rommem[ 9212] <= 12'h08D;
rommem[ 9213] <= 12'hFDC;
rommem[ 9214] <= 12'h0C6;
rommem[ 9215] <= 12'h00D;
rommem[ 9216] <= 12'h017;
rommem[ 9217] <= 12'h000;
rommem[ 9218] <= 12'hADE;
rommem[ 9219] <= 12'h0C6;
rommem[ 9220] <= 12'h00A;
rommem[ 9221] <= 12'h017;
rommem[ 9222] <= 12'h000;
rommem[ 9223] <= 12'hAD9;
rommem[ 9224] <= 12'h035;
rommem[ 9225] <= 12'h086;
rommem[ 9226] <= 12'h08D;
rommem[ 9227] <= 12'h002;
rommem[ 9228] <= 12'h020;
rommem[ 9229] <= 12'h00D;
rommem[ 9230] <= 12'h034;
rommem[ 9231] <= 12'h010;
rommem[ 9232] <= 12'h08E;
rommem[ 9233] <= 12'hFFE;
rommem[ 9234] <= 12'h422;
rommem[ 9235] <= 12'h08D;
rommem[ 9236] <= 12'h006;
rommem[ 9237] <= 12'h035;
rommem[ 9238] <= 12'h010;
rommem[ 9239] <= 12'h039;
rommem[ 9240] <= 12'h0BD;
rommem[ 9241] <= 12'hFFE;
rommem[ 9242] <= 12'hEE1;
rommem[ 9243] <= 12'h0E6;
rommem[ 9244] <= 12'h800;
rommem[ 9245] <= 12'h0C1;
rommem[ 9246] <= 12'h004;
rommem[ 9247] <= 12'h026;
rommem[ 9248] <= 12'hFF7;
rommem[ 9249] <= 12'h039;
rommem[ 9250] <= 12'h00D;
rommem[ 9251] <= 12'h00A;
rommem[ 9252] <= 12'h004;
rommem[ 9253] <= 12'h08D;
rommem[ 9254] <= 12'h007;
rommem[ 9255] <= 12'h01E;
rommem[ 9256] <= 12'h001;
rommem[ 9257] <= 12'h08D;
rommem[ 9258] <= 12'h003;
rommem[ 9259] <= 12'h01E;
rommem[ 9260] <= 12'h001;
rommem[ 9261] <= 12'h039;
rommem[ 9262] <= 12'h01E;
rommem[ 9263] <= 12'h089;
rommem[ 9264] <= 12'h08D;
rommem[ 9265] <= 12'h005;
rommem[ 9266] <= 12'h01E;
rommem[ 9267] <= 12'h089;
rommem[ 9268] <= 12'h08D;
rommem[ 9269] <= 12'h001;
rommem[ 9270] <= 12'h039;
rommem[ 9271] <= 12'h034;
rommem[ 9272] <= 12'h004;
rommem[ 9273] <= 12'h054;
rommem[ 9274] <= 12'h054;
rommem[ 9275] <= 12'h054;
rommem[ 9276] <= 12'h054;
rommem[ 9277] <= 12'h054;
rommem[ 9278] <= 12'h054;
rommem[ 9279] <= 12'h054;
rommem[ 9280] <= 12'h054;
rommem[ 9281] <= 12'h08D;
rommem[ 9282] <= 12'h00C;
rommem[ 9283] <= 12'h035;
rommem[ 9284] <= 12'h004;
rommem[ 9285] <= 12'h034;
rommem[ 9286] <= 12'h004;
rommem[ 9287] <= 12'h054;
rommem[ 9288] <= 12'h054;
rommem[ 9289] <= 12'h054;
rommem[ 9290] <= 12'h054;
rommem[ 9291] <= 12'h08D;
rommem[ 9292] <= 12'h002;
rommem[ 9293] <= 12'h035;
rommem[ 9294] <= 12'h004;
rommem[ 9295] <= 12'h034;
rommem[ 9296] <= 12'h004;
rommem[ 9297] <= 12'h0C4;
rommem[ 9298] <= 12'h00F;
rommem[ 9299] <= 12'h0C1;
rommem[ 9300] <= 12'h00A;
rommem[ 9301] <= 12'h025;
rommem[ 9302] <= 12'h007;
rommem[ 9303] <= 12'h0CB;
rommem[ 9304] <= 12'h037;
rommem[ 9305] <= 12'h017;
rommem[ 9306] <= 12'h000;
rommem[ 9307] <= 12'hA85;
rommem[ 9308] <= 12'h035;
rommem[ 9309] <= 12'h084;
rommem[ 9310] <= 12'h0CB;
rommem[ 9311] <= 12'h030;
rommem[ 9312] <= 12'h017;
rommem[ 9313] <= 12'h000;
rommem[ 9314] <= 12'hA7E;
rommem[ 9315] <= 12'h035;
rommem[ 9316] <= 12'h084;
rommem[ 9317] <= 12'h0CC;
rommem[ 9318] <= 12'h061;
rommem[ 9319] <= 12'hA80;
rommem[ 9320] <= 12'h015;
rommem[ 9321] <= 12'h0F7;
rommem[ 9322] <= 12'hFFF;
rommem[ 9323] <= 12'hE60;
rommem[ 9324] <= 12'h014;
rommem[ 9325] <= 12'h015;
rommem[ 9326] <= 12'h0B7;
rommem[ 9327] <= 12'hFFC;
rommem[ 9328] <= 12'h011;
rommem[ 9327] <= 12'hFFF;
rommem[ 9328] <= 12'hE60;
rommem[ 9329] <= 12'h015;
rommem[ 9330] <= 12'h0B7;
rommem[ 9331] <= 12'hFFF;
rommem[ 9332] <= 12'hE3F;
rommem[ 9333] <= 12'h010;
rommem[ 9334] <= 12'h015;
rommem[ 9335] <= 12'h0B6;
rommem[ 9336] <= 12'hFFF;
rommem[ 9337] <= 12'hE60;
rommem[ 9338] <= 12'h00D;
rommem[ 9339] <= 12'h02A;
rommem[ 9340] <= 12'h011;
rommem[ 9341] <= 12'h085;
rommem[ 9342] <= 12'h080;
rommem[ 9343] <= 12'h027;
rommem[ 9344] <= 12'h00D;
rommem[ 9345] <= 12'h015;
rommem[ 9346] <= 12'h07F;
rommem[ 9347] <= 12'hFFF;
rommem[ 9348] <= 12'hE60;
rommem[ 9349] <= 12'h012;
rommem[ 9350] <= 12'h015;
rommem[ 9351] <= 12'h07F;
rommem[ 9352] <= 12'hFFF;
rommem[ 9353] <= 12'hE60;
rommem[ 9354] <= 12'h013;
rommem[ 9355] <= 12'h07C;
rommem[ 9356] <= 12'hE00;
rommem[ 9357] <= 12'h037;
rommem[ 9358] <= 12'h039;
rommem[ 9359] <= 12'h034;
rommem[ 9360] <= 12'h004;
rommem[ 9361] <= 12'h0C6;
rommem[ 9362] <= 12'h004;
rommem[ 9363] <= 12'h0E7;
rommem[ 9364] <= 12'h804;
rommem[ 9365] <= 12'h06F;
rommem[ 9366] <= 12'h001;
rommem[ 9367] <= 12'h035;
rommem[ 9368] <= 12'h084;
rommem[ 9369] <= 12'h034;
rommem[ 9370] <= 12'h004;
rommem[ 9371] <= 12'h0E6;
rommem[ 9372] <= 12'h004;
rommem[ 9373] <= 12'h0C5;
rommem[ 9374] <= 12'h001;
rommem[ 9375] <= 12'h026;
rommem[ 9376] <= 12'hFFA;
rommem[ 9377] <= 12'h035;
rommem[ 9378] <= 12'h084;
rommem[ 9379] <= 12'h0E7;
rommem[ 9380] <= 12'h003;
rommem[ 9381] <= 12'h0A7;
rommem[ 9382] <= 12'h004;
rommem[ 9383] <= 12'h08D;
rommem[ 9384] <= 12'hFF0;
rommem[ 9385] <= 12'h0E6;
rommem[ 9386] <= 12'h004;
rommem[ 9387] <= 12'h039;
rommem[ 9388] <= 12'h034;
rommem[ 9389] <= 12'h006;
rommem[ 9390] <= 12'h034;
rommem[ 9391] <= 12'h006;
rommem[ 9392] <= 12'h0C6;
rommem[ 9393] <= 12'h001;
rommem[ 9394] <= 12'h0E7;
rommem[ 9395] <= 12'h002;
rommem[ 9396] <= 12'h0C6;
rommem[ 9397] <= 12'h076;
rommem[ 9398] <= 12'h086;
rommem[ 9399] <= 12'h090;
rommem[ 9400] <= 12'h08D;
rommem[ 9401] <= 12'hFE9;
rommem[ 9402] <= 12'h08D;
rommem[ 9403] <= 12'h00A;
rommem[ 9404] <= 12'h035;
rommem[ 9405] <= 12'h006;
rommem[ 9406] <= 12'h086;
rommem[ 9407] <= 12'h050;
rommem[ 9408] <= 12'h08D;
rommem[ 9409] <= 12'hFE1;
rommem[ 9410] <= 12'h08D;
rommem[ 9411] <= 12'h002;
rommem[ 9412] <= 12'h035;
rommem[ 9413] <= 12'h086;
rommem[ 9414] <= 12'h034;
rommem[ 9415] <= 12'h004;
rommem[ 9416] <= 12'h0E6;
rommem[ 9417] <= 12'h004;
rommem[ 9418] <= 12'h0C5;
rommem[ 9419] <= 12'h080;
rommem[ 9420] <= 12'h026;
rommem[ 9421] <= 12'hFFA;
rommem[ 9422] <= 12'h035;
rommem[ 9423] <= 12'h084;
rommem[ 9424] <= 12'h08E;
rommem[ 9425] <= 12'hE30;
rommem[ 9426] <= 12'h500;
rommem[ 9427] <= 12'h18E;
rommem[ 9428] <= 12'h007;
rommem[ 9429] <= 12'hFC0;
rommem[ 9430] <= 12'h0C6;
rommem[ 9431] <= 12'h080;
rommem[ 9432] <= 12'h0E7;
rommem[ 9433] <= 12'h002;
rommem[ 9434] <= 12'h0CC;
rommem[ 9330] <= 12'h015;
rommem[ 9331] <= 12'h07F;
rommem[ 9332] <= 12'hFFF;
rommem[ 9333] <= 12'hE60;
rommem[ 9334] <= 12'h012;
rommem[ 9335] <= 12'h015;
rommem[ 9336] <= 12'h07F;
rommem[ 9337] <= 12'hFFF;
rommem[ 9338] <= 12'hE60;
rommem[ 9339] <= 12'h013;
rommem[ 9340] <= 12'h015;
rommem[ 9341] <= 12'h0B6;
rommem[ 9342] <= 12'hFFF;
rommem[ 9343] <= 12'hE60;
rommem[ 9344] <= 12'h00B;
rommem[ 9345] <= 12'h08A;
rommem[ 9346] <= 12'h100;
rommem[ 9347] <= 12'h015;
rommem[ 9348] <= 12'h0B7;
rommem[ 9349] <= 12'hFFF;
rommem[ 9350] <= 12'hE60;
rommem[ 9351] <= 12'h00B;
rommem[ 9352] <= 12'h086;
rommem[ 9353] <= 12'h810;
rommem[ 9354] <= 12'h015;
rommem[ 9355] <= 12'h0B7;
rommem[ 9356] <= 12'hFFF;
rommem[ 9357] <= 12'hE60;
rommem[ 9358] <= 12'h00E;
rommem[ 9359] <= 12'h039;
rommem[ 9360] <= 12'h086;
rommem[ 9361] <= 12'h01F;
rommem[ 9362] <= 12'h0B7;
rommem[ 9363] <= 12'hFFC;
rommem[ 9364] <= 12'h011;
rommem[ 9365] <= 12'h015;
rommem[ 9366] <= 12'h0B7;
rommem[ 9367] <= 12'hFFF;
rommem[ 9368] <= 12'hE3F;
rommem[ 9369] <= 12'h010;
rommem[ 9370] <= 12'h015;
rommem[ 9371] <= 12'h0B6;
rommem[ 9372] <= 12'hFFF;
rommem[ 9373] <= 12'hE60;
rommem[ 9374] <= 12'h00D;
rommem[ 9375] <= 12'h02A;
rommem[ 9376] <= 12'h011;
rommem[ 9377] <= 12'h085;
rommem[ 9378] <= 12'h080;
rommem[ 9379] <= 12'h027;
rommem[ 9380] <= 12'h00D;
rommem[ 9381] <= 12'h015;
rommem[ 9382] <= 12'h07F;
rommem[ 9383] <= 12'hFFF;
rommem[ 9384] <= 12'hE60;
rommem[ 9385] <= 12'h012;
rommem[ 9386] <= 12'h015;
rommem[ 9387] <= 12'h07F;
rommem[ 9388] <= 12'hFFF;
rommem[ 9389] <= 12'hE60;
rommem[ 9390] <= 12'h013;
rommem[ 9391] <= 12'h07C;
rommem[ 9392] <= 12'hE00;
rommem[ 9393] <= 12'h037;
rommem[ 9394] <= 12'h039;
rommem[ 9395] <= 12'h034;
rommem[ 9396] <= 12'h004;
rommem[ 9397] <= 12'h0C6;
rommem[ 9398] <= 12'h004;
rommem[ 9399] <= 12'h0E7;
rommem[ 9400] <= 12'h804;
rommem[ 9401] <= 12'h06F;
rommem[ 9402] <= 12'h001;
rommem[ 9403] <= 12'h035;
rommem[ 9404] <= 12'h084;
rommem[ 9405] <= 12'h034;
rommem[ 9406] <= 12'h004;
rommem[ 9407] <= 12'h0E6;
rommem[ 9408] <= 12'h004;
rommem[ 9409] <= 12'h0C5;
rommem[ 9410] <= 12'h001;
rommem[ 9411] <= 12'h026;
rommem[ 9412] <= 12'hFFA;
rommem[ 9413] <= 12'h035;
rommem[ 9414] <= 12'h084;
rommem[ 9415] <= 12'h0E7;
rommem[ 9416] <= 12'h003;
rommem[ 9417] <= 12'h0A7;
rommem[ 9418] <= 12'h004;
rommem[ 9419] <= 12'h08D;
rommem[ 9420] <= 12'hFF0;
rommem[ 9421] <= 12'h0E6;
rommem[ 9422] <= 12'h004;
rommem[ 9423] <= 12'h039;
rommem[ 9424] <= 12'h034;
rommem[ 9425] <= 12'h006;
rommem[ 9426] <= 12'h034;
rommem[ 9427] <= 12'h006;
rommem[ 9428] <= 12'h0C6;
rommem[ 9429] <= 12'h001;
rommem[ 9430] <= 12'h0E7;
rommem[ 9431] <= 12'h002;
rommem[ 9432] <= 12'h0C6;
rommem[ 9433] <= 12'h076;
rommem[ 9434] <= 12'h086;
rommem[ 9435] <= 12'h090;
rommem[ 9436] <= 12'h0DE;
rommem[ 9437] <= 12'h08D;
rommem[ 9438] <= 12'hFC4;
rommem[ 9439] <= 12'h0C5;
rommem[ 9440] <= 12'h080;
rommem[ 9441] <= 12'h026;
rommem[ 9442] <= 12'h03C;
rommem[ 9443] <= 12'h0CC;
rommem[ 9444] <= 12'h010;
rommem[ 9445] <= 12'h000;
rommem[ 9436] <= 12'h08D;
rommem[ 9437] <= 12'hFE9;
rommem[ 9438] <= 12'h08D;
rommem[ 9439] <= 12'h00A;
rommem[ 9440] <= 12'h035;
rommem[ 9441] <= 12'h006;
rommem[ 9442] <= 12'h086;
rommem[ 9443] <= 12'h050;
rommem[ 9444] <= 12'h08D;
rommem[ 9445] <= 12'hFE1;
rommem[ 9446] <= 12'h08D;
rommem[ 9447] <= 12'hFBB;
rommem[ 9448] <= 12'h0C5;
rommem[ 9449] <= 12'h080;
rommem[ 9450] <= 12'h026;
rommem[ 9451] <= 12'h033;
rommem[ 9452] <= 12'h0CC;
rommem[ 9453] <= 12'h090;
rommem[ 9454] <= 12'h0DF;
rommem[ 9455] <= 12'h08D;
rommem[ 9456] <= 12'hFB2;
rommem[ 9457] <= 12'h0C5;
rommem[ 9458] <= 12'h080;
rommem[ 9459] <= 12'h026;
rommem[ 9460] <= 12'h02A;
rommem[ 9461] <= 12'h05F;
rommem[ 9462] <= 12'h086;
rommem[ 9463] <= 12'h020;
rommem[ 9464] <= 12'h0A7;
rommem[ 9465] <= 12'h004;
rommem[ 9466] <= 12'h08D;
rommem[ 9467] <= 12'hF9D;
rommem[ 9468] <= 12'h08D;
rommem[ 9469] <= 12'hFC8;
rommem[ 9470] <= 12'h0A6;
rommem[ 9471] <= 12'h004;
rommem[ 9472] <= 12'h085;
rommem[ 9473] <= 12'h080;
rommem[ 9474] <= 12'h026;
rommem[ 9475] <= 12'h01B;
rommem[ 9476] <= 12'h0A6;
rommem[ 9477] <= 12'h003;
rommem[ 9478] <= 12'h0A7;
rommem[ 9479] <= 12'hA07;
rommem[ 9480] <= 12'h05C;
rommem[ 9481] <= 12'h0C1;
rommem[ 9482] <= 12'h05F;
rommem[ 9483] <= 12'h025;
rommem[ 9484] <= 12'hFE9;
rommem[ 9485] <= 12'h086;
rommem[ 9486] <= 12'h068;
rommem[ 9487] <= 12'h0A7;
rommem[ 9488] <= 12'h004;
rommem[ 9489] <= 12'h08D;
rommem[ 9490] <= 12'hF86;
rommem[ 9491] <= 12'h0A6;
rommem[ 9492] <= 12'h004;
rommem[ 9493] <= 12'h085;
rommem[ 9447] <= 12'h002;
rommem[ 9448] <= 12'h035;
rommem[ 9449] <= 12'h086;
rommem[ 9450] <= 12'h034;
rommem[ 9451] <= 12'h004;
rommem[ 9452] <= 12'h0E6;
rommem[ 9453] <= 12'h004;
rommem[ 9454] <= 12'h0C5;
rommem[ 9455] <= 12'h080;
rommem[ 9456] <= 12'h026;
rommem[ 9457] <= 12'hFFA;
rommem[ 9458] <= 12'h035;
rommem[ 9459] <= 12'h084;
rommem[ 9460] <= 12'h08E;
rommem[ 9461] <= 12'hE30;
rommem[ 9462] <= 12'h500;
rommem[ 9463] <= 12'h18E;
rommem[ 9464] <= 12'h007;
rommem[ 9465] <= 12'hFC0;
rommem[ 9466] <= 12'h0C6;
rommem[ 9467] <= 12'h080;
rommem[ 9468] <= 12'h0E7;
rommem[ 9469] <= 12'h002;
rommem[ 9470] <= 12'h0CC;
rommem[ 9471] <= 12'h090;
rommem[ 9472] <= 12'h0DE;
rommem[ 9473] <= 12'h08D;
rommem[ 9474] <= 12'hFC4;
rommem[ 9475] <= 12'h0C5;
rommem[ 9476] <= 12'h080;
rommem[ 9477] <= 12'h026;
rommem[ 9478] <= 12'h03C;
rommem[ 9479] <= 12'h0CC;
rommem[ 9480] <= 12'h010;
rommem[ 9481] <= 12'h000;
rommem[ 9482] <= 12'h08D;
rommem[ 9483] <= 12'hFBB;
rommem[ 9484] <= 12'h0C5;
rommem[ 9485] <= 12'h080;
rommem[ 9486] <= 12'h026;
rommem[ 9487] <= 12'h033;
rommem[ 9488] <= 12'h0CC;
rommem[ 9489] <= 12'h090;
rommem[ 9490] <= 12'h0DF;
rommem[ 9491] <= 12'h08D;
rommem[ 9492] <= 12'hFB2;
rommem[ 9493] <= 12'h0C5;
rommem[ 9494] <= 12'h080;
rommem[ 9495] <= 12'h026;
rommem[ 9496] <= 12'h006;
rommem[ 9497] <= 12'h0A6;
rommem[ 9498] <= 12'h003;
rommem[ 9499] <= 12'h0A7;
rommem[ 9500] <= 12'hA07;
rommem[ 9501] <= 12'h04F;
rommem[ 9502] <= 12'h05F;
rommem[ 9503] <= 12'h06F;
rommem[ 9504] <= 12'h002;
rommem[ 9505] <= 12'h04F;
rommem[ 9506] <= 12'h039;
rommem[ 9507] <= 12'h08E;
rommem[ 9508] <= 12'hE30;
rommem[ 9509] <= 12'h500;
rommem[ 9510] <= 12'h18E;
rommem[ 9511] <= 12'h007;
rommem[ 9512] <= 12'hFC0;
rommem[ 9513] <= 12'h0C6;
rommem[ 9514] <= 12'h080;
rommem[ 9515] <= 12'h0E7;
rommem[ 9516] <= 12'h002;
rommem[ 9517] <= 12'h0CC;
rommem[ 9518] <= 12'h090;
rommem[ 9519] <= 12'h0DE;
rommem[ 9520] <= 12'h08D;
rommem[ 9521] <= 12'hF71;
rommem[ 9522] <= 12'h0C5;
rommem[ 9523] <= 12'h080;
rommem[ 9524] <= 12'h026;
rommem[ 9525] <= 12'hFE9;
rommem[ 9526] <= 12'h0CC;
rommem[ 9527] <= 12'h010;
rommem[ 9528] <= 12'h000;
rommem[ 9529] <= 12'h08D;
rommem[ 9530] <= 12'hF68;
rommem[ 9531] <= 12'h0C5;
rommem[ 9532] <= 12'h080;
rommem[ 9533] <= 12'h026;
rommem[ 9534] <= 12'hFE0;
rommem[ 9535] <= 12'h0C6;
rommem[ 9536] <= 12'h000;
rommem[ 9537] <= 12'h034;
rommem[ 9538] <= 12'h004;
rommem[ 9539] <= 12'h0E6;
rommem[ 9540] <= 12'hA05;
rommem[ 9541] <= 12'h086;
rommem[ 9542] <= 12'h010;
rommem[ 9543] <= 12'h08D;
rommem[ 9544] <= 12'hF5A;
rommem[ 9545] <= 12'h0C5;
rommem[ 9546] <= 12'h080;
rommem[ 9547] <= 12'h035;
rommem[ 9548] <= 12'h004;
rommem[ 9549] <= 12'h026;
rommem[ 9550] <= 12'hFD0;
rommem[ 9551] <= 12'h05C;
rommem[ 9552] <= 12'h0C1;
rommem[ 9553] <= 12'h05F;
rommem[ 9554] <= 12'h025;
rommem[ 9555] <= 12'hFED;
rommem[ 9556] <= 12'h0E6;
rommem[ 9557] <= 12'hA05;
rommem[ 9558] <= 12'h086;
rommem[ 9559] <= 12'h050;
rommem[ 9560] <= 12'h08D;
rommem[ 9561] <= 12'hF49;
rommem[ 9562] <= 12'h0C5;
rommem[ 9563] <= 12'h080;
rommem[ 9564] <= 12'h026;
rommem[ 9565] <= 12'hFC1;
rommem[ 9566] <= 12'h04F;
rommem[ 9567] <= 12'h05F;
rommem[ 9568] <= 12'h06F;
rommem[ 9569] <= 12'h002;
rommem[ 9570] <= 12'h039;
rommem[ 9600] <= 12'h02E;
rommem[ 9601] <= 12'h0A9;
rommem[ 9602] <= 12'h02E;
rommem[ 9603] <= 12'h0A5;
rommem[ 9604] <= 12'h0A3;
rommem[ 9605] <= 12'h0A1;
rommem[ 9606] <= 12'h0A2;
rommem[ 9607] <= 12'h0AC;
rommem[ 9608] <= 12'h02E;
rommem[ 9609] <= 12'h0AA;
rommem[ 9610] <= 12'h0A8;
rommem[ 9611] <= 12'h0A6;
rommem[ 9612] <= 12'h0A4;
rommem[ 9613] <= 12'h009;
rommem[ 9614] <= 12'h060;
rommem[ 9615] <= 12'h02E;
rommem[ 9616] <= 12'h02E;
rommem[ 9617] <= 12'h02E;
rommem[ 9618] <= 12'h02E;
rommem[ 9619] <= 12'h02E;
rommem[ 9620] <= 12'h02E;
rommem[ 9621] <= 12'h071;
rommem[ 9622] <= 12'h031;
rommem[ 9623] <= 12'h02E;
rommem[ 9624] <= 12'h02E;
rommem[ 9625] <= 12'h02E;
rommem[ 9626] <= 12'h07A;
rommem[ 9627] <= 12'h073;
rommem[ 9628] <= 12'h061;
rommem[ 9629] <= 12'h077;
rommem[ 9630] <= 12'h032;
rommem[ 9631] <= 12'h02E;
rommem[ 9632] <= 12'h02E;
rommem[ 9633] <= 12'h063;
rommem[ 9634] <= 12'h078;
rommem[ 9635] <= 12'h064;
rommem[ 9636] <= 12'h065;
rommem[ 9637] <= 12'h034;
rommem[ 9638] <= 12'h033;
rommem[ 9639] <= 12'h02E;
rommem[ 9640] <= 12'h02E;
rommem[ 9641] <= 12'h020;
rommem[ 9642] <= 12'h076;
rommem[ 9643] <= 12'h066;
rommem[ 9644] <= 12'h074;
rommem[ 9645] <= 12'h072;
rommem[ 9646] <= 12'h035;
rommem[ 9647] <= 12'h02E;
rommem[ 9648] <= 12'h02E;
rommem[ 9649] <= 12'h06E;
rommem[ 9650] <= 12'h062;
rommem[ 9651] <= 12'h068;
rommem[ 9652] <= 12'h067;
rommem[ 9653] <= 12'h079;
rommem[ 9654] <= 12'h036;
rommem[ 9655] <= 12'h02E;
rommem[ 9656] <= 12'h02E;
rommem[ 9657] <= 12'h02E;
rommem[ 9658] <= 12'h06D;
rommem[ 9659] <= 12'h06A;
rommem[ 9660] <= 12'h075;
rommem[ 9661] <= 12'h037;
rommem[ 9662] <= 12'h038;
rommem[ 9663] <= 12'h02E;
rommem[ 9664] <= 12'h02E;
rommem[ 9665] <= 12'h02C;
rommem[ 9666] <= 12'h06B;
rommem[ 9667] <= 12'h069;
rommem[ 9668] <= 12'h06F;
rommem[ 9669] <= 12'h030;
rommem[ 9670] <= 12'h039;
rommem[ 9671] <= 12'h02E;
rommem[ 9672] <= 12'h02E;
rommem[ 9673] <= 12'h02E;
rommem[ 9674] <= 12'h02F;
rommem[ 9675] <= 12'h06C;
rommem[ 9676] <= 12'h03B;
rommem[ 9677] <= 12'h070;
rommem[ 9678] <= 12'h02D;
rommem[ 9679] <= 12'h02E;
rommem[ 9680] <= 12'h02E;
rommem[ 9681] <= 12'h02E;
rommem[ 9682] <= 12'h027;
rommem[ 9683] <= 12'h02E;
rommem[ 9684] <= 12'h05B;
rommem[ 9685] <= 12'h03D;
rommem[ 9686] <= 12'h02E;
rommem[ 9687] <= 12'h02E;
rommem[ 9688] <= 12'h0AD;
rommem[ 9689] <= 12'h02E;
rommem[ 9690] <= 12'h00D;
rommem[ 9691] <= 12'h05D;
rommem[ 9692] <= 12'h02E;
rommem[ 9693] <= 12'h05C;
rommem[ 9694] <= 12'h02E;
rommem[ 9695] <= 12'h02E;
rommem[ 9696] <= 12'h02E;
rommem[ 9697] <= 12'h02E;
rommem[ 9698] <= 12'h02E;
rommem[ 9699] <= 12'h02E;
rommem[ 9700] <= 12'h02E;
rommem[ 9701] <= 12'h02E;
rommem[ 9702] <= 12'h008;
rommem[ 9703] <= 12'h02E;
rommem[ 9704] <= 12'h02E;
rommem[ 9705] <= 12'h095;
rommem[ 9706] <= 12'h02E;
rommem[ 9707] <= 12'h093;
rommem[ 9708] <= 12'h094;
rommem[ 9709] <= 12'h02E;
rommem[ 9710] <= 12'h02E;
rommem[ 9711] <= 12'h02E;
rommem[ 9712] <= 12'h098;
rommem[ 9713] <= 12'h07F;
rommem[ 9714] <= 12'h092;
rommem[ 9715] <= 12'h02E;
rommem[ 9716] <= 12'h091;
rommem[ 9717] <= 12'h090;
rommem[ 9718] <= 12'h01B;
rommem[ 9719] <= 12'h0AF;
rommem[ 9720] <= 12'h0AB;
rommem[ 9721] <= 12'h02E;
rommem[ 9722] <= 12'h097;
rommem[ 9723] <= 12'h02E;
rommem[ 9724] <= 12'h02E;
rommem[ 9725] <= 12'h096;
rommem[ 9726] <= 12'h0AE;
rommem[ 9727] <= 12'h02E;
rommem[ 9496] <= 12'h02A;
rommem[ 9497] <= 12'h05F;
rommem[ 9498] <= 12'h086;
rommem[ 9499] <= 12'h020;
rommem[ 9500] <= 12'h0A7;
rommem[ 9501] <= 12'h004;
rommem[ 9502] <= 12'h08D;
rommem[ 9503] <= 12'hF9D;
rommem[ 9504] <= 12'h08D;
rommem[ 9505] <= 12'hFC8;
rommem[ 9506] <= 12'h0A6;
rommem[ 9507] <= 12'h004;
rommem[ 9508] <= 12'h085;
rommem[ 9509] <= 12'h080;
rommem[ 9510] <= 12'h026;
rommem[ 9511] <= 12'h01B;
rommem[ 9512] <= 12'h0A6;
rommem[ 9513] <= 12'h003;
rommem[ 9514] <= 12'h0A7;
rommem[ 9515] <= 12'hA07;
rommem[ 9516] <= 12'h05C;
rommem[ 9517] <= 12'h0C1;
rommem[ 9518] <= 12'h05F;
rommem[ 9519] <= 12'h025;
rommem[ 9520] <= 12'hFE9;
rommem[ 9521] <= 12'h086;
rommem[ 9522] <= 12'h068;
rommem[ 9523] <= 12'h0A7;
rommem[ 9524] <= 12'h004;
rommem[ 9525] <= 12'h08D;
rommem[ 9526] <= 12'hF86;
rommem[ 9527] <= 12'h0A6;
rommem[ 9528] <= 12'h004;
rommem[ 9529] <= 12'h085;
rommem[ 9530] <= 12'h080;
rommem[ 9531] <= 12'h026;
rommem[ 9532] <= 12'h006;
rommem[ 9533] <= 12'h0A6;
rommem[ 9534] <= 12'h003;
rommem[ 9535] <= 12'h0A7;
rommem[ 9536] <= 12'hA07;
rommem[ 9537] <= 12'h04F;
rommem[ 9538] <= 12'h05F;
rommem[ 9539] <= 12'h06F;
rommem[ 9540] <= 12'h002;
rommem[ 9541] <= 12'h04F;
rommem[ 9542] <= 12'h039;
rommem[ 9543] <= 12'h08E;
rommem[ 9544] <= 12'hE30;
rommem[ 9545] <= 12'h500;
rommem[ 9546] <= 12'h18E;
rommem[ 9547] <= 12'h007;
rommem[ 9548] <= 12'hFC0;
rommem[ 9549] <= 12'h0C6;
rommem[ 9550] <= 12'h080;
rommem[ 9551] <= 12'h0E7;
rommem[ 9552] <= 12'h002;
rommem[ 9553] <= 12'h0CC;
rommem[ 9554] <= 12'h090;
rommem[ 9555] <= 12'h0DE;
rommem[ 9556] <= 12'h08D;
rommem[ 9557] <= 12'hF71;
rommem[ 9558] <= 12'h0C5;
rommem[ 9559] <= 12'h080;
rommem[ 9560] <= 12'h026;
rommem[ 9561] <= 12'hFE9;
rommem[ 9562] <= 12'h0CC;
rommem[ 9563] <= 12'h010;
rommem[ 9564] <= 12'h000;
rommem[ 9565] <= 12'h08D;
rommem[ 9566] <= 12'hF68;
rommem[ 9567] <= 12'h0C5;
rommem[ 9568] <= 12'h080;
rommem[ 9569] <= 12'h026;
rommem[ 9570] <= 12'hFE0;
rommem[ 9571] <= 12'h0C6;
rommem[ 9572] <= 12'h000;
rommem[ 9573] <= 12'h034;
rommem[ 9574] <= 12'h004;
rommem[ 9575] <= 12'h0E6;
rommem[ 9576] <= 12'hA05;
rommem[ 9577] <= 12'h086;
rommem[ 9578] <= 12'h010;
rommem[ 9579] <= 12'h08D;
rommem[ 9580] <= 12'hF5A;
rommem[ 9581] <= 12'h0C5;
rommem[ 9582] <= 12'h080;
rommem[ 9583] <= 12'h035;
rommem[ 9584] <= 12'h004;
rommem[ 9585] <= 12'h026;
rommem[ 9586] <= 12'hFD0;
rommem[ 9587] <= 12'h05C;
rommem[ 9588] <= 12'h0C1;
rommem[ 9589] <= 12'h05F;
rommem[ 9590] <= 12'h025;
rommem[ 9591] <= 12'hFED;
rommem[ 9592] <= 12'h0E6;
rommem[ 9593] <= 12'hA05;
rommem[ 9594] <= 12'h086;
rommem[ 9595] <= 12'h050;
rommem[ 9596] <= 12'h08D;
rommem[ 9597] <= 12'hF49;
rommem[ 9598] <= 12'h0C5;
rommem[ 9599] <= 12'h080;
rommem[ 9600] <= 12'h026;
rommem[ 9601] <= 12'hFC1;
rommem[ 9602] <= 12'h04F;
rommem[ 9603] <= 12'h05F;
rommem[ 9604] <= 12'h06F;
rommem[ 9605] <= 12'h002;
rommem[ 9606] <= 12'h039;
rommem[ 9728] <= 12'h02E;
rommem[ 9729] <= 12'h02E;
rommem[ 9729] <= 12'h0A9;
rommem[ 9730] <= 12'h02E;
rommem[ 9731] <= 12'h0A7;
rommem[ 9732] <= 12'h02E;
rommem[ 9733] <= 12'h02E;
rommem[ 9734] <= 12'h02E;
rommem[ 9735] <= 12'h02E;
rommem[ 9731] <= 12'h0A5;
rommem[ 9732] <= 12'h0A3;
rommem[ 9733] <= 12'h0A1;
rommem[ 9734] <= 12'h0A2;
rommem[ 9735] <= 12'h0AC;
rommem[ 9736] <= 12'h02E;
rommem[ 9737] <= 12'h02E;
rommem[ 9738] <= 12'h02E;
rommem[ 9739] <= 12'h02E;
rommem[ 9740] <= 12'h02E;
rommem[ 9741] <= 12'h02E;
rommem[ 9742] <= 12'h02E;
rommem[ 9737] <= 12'h0AA;
rommem[ 9738] <= 12'h0A8;
rommem[ 9739] <= 12'h0A6;
rommem[ 9740] <= 12'h0A4;
rommem[ 9741] <= 12'h009;
rommem[ 9742] <= 12'h060;
rommem[ 9743] <= 12'h02E;
rommem[ 9744] <= 12'h02E;
rommem[ 9745] <= 12'h02E;
1742,79 → 1555,79
rommem[ 9746] <= 12'h02E;
rommem[ 9747] <= 12'h02E;
rommem[ 9748] <= 12'h02E;
rommem[ 9749] <= 12'h02E;
rommem[ 9750] <= 12'h02E;
rommem[ 9749] <= 12'h071;
rommem[ 9750] <= 12'h031;
rommem[ 9751] <= 12'h02E;
rommem[ 9752] <= 12'h02E;
rommem[ 9753] <= 12'h02E;
rommem[ 9754] <= 12'h02E;
rommem[ 9755] <= 12'h02E;
rommem[ 9756] <= 12'h02E;
rommem[ 9757] <= 12'h02E;
rommem[ 9758] <= 12'h02E;
rommem[ 9754] <= 12'h07A;
rommem[ 9755] <= 12'h073;
rommem[ 9756] <= 12'h061;
rommem[ 9757] <= 12'h077;
rommem[ 9758] <= 12'h032;
rommem[ 9759] <= 12'h02E;
rommem[ 9760] <= 12'h02E;
rommem[ 9761] <= 12'h02E;
rommem[ 9762] <= 12'h02E;
rommem[ 9763] <= 12'h02E;
rommem[ 9764] <= 12'h02E;
rommem[ 9765] <= 12'h02E;
rommem[ 9766] <= 12'h02E;
rommem[ 9761] <= 12'h063;
rommem[ 9762] <= 12'h078;
rommem[ 9763] <= 12'h064;
rommem[ 9764] <= 12'h065;
rommem[ 9765] <= 12'h034;
rommem[ 9766] <= 12'h033;
rommem[ 9767] <= 12'h02E;
rommem[ 9768] <= 12'h02E;
rommem[ 9769] <= 12'h02E;
rommem[ 9770] <= 12'h02E;
rommem[ 9771] <= 12'h02E;
rommem[ 9772] <= 12'h02E;
rommem[ 9773] <= 12'h02E;
rommem[ 9774] <= 12'h02E;
rommem[ 9769] <= 12'h020;
rommem[ 9770] <= 12'h076;
rommem[ 9771] <= 12'h066;
rommem[ 9772] <= 12'h074;
rommem[ 9773] <= 12'h072;
rommem[ 9774] <= 12'h035;
rommem[ 9775] <= 12'h02E;
rommem[ 9776] <= 12'h02E;
rommem[ 9777] <= 12'h02E;
rommem[ 9778] <= 12'h02E;
rommem[ 9779] <= 12'h02E;
rommem[ 9780] <= 12'h02E;
rommem[ 9781] <= 12'h02E;
rommem[ 9782] <= 12'h02E;
rommem[ 9777] <= 12'h06E;
rommem[ 9778] <= 12'h062;
rommem[ 9779] <= 12'h068;
rommem[ 9780] <= 12'h067;
rommem[ 9781] <= 12'h079;
rommem[ 9782] <= 12'h036;
rommem[ 9783] <= 12'h02E;
rommem[ 9784] <= 12'h02E;
rommem[ 9785] <= 12'h02E;
rommem[ 9786] <= 12'h02E;
rommem[ 9787] <= 12'h02E;
rommem[ 9788] <= 12'h02E;
rommem[ 9789] <= 12'h02E;
rommem[ 9790] <= 12'h02E;
rommem[ 9786] <= 12'h06D;
rommem[ 9787] <= 12'h06A;
rommem[ 9788] <= 12'h075;
rommem[ 9789] <= 12'h037;
rommem[ 9790] <= 12'h038;
rommem[ 9791] <= 12'h02E;
rommem[ 9792] <= 12'h02E;
rommem[ 9793] <= 12'h02E;
rommem[ 9794] <= 12'h02E;
rommem[ 9795] <= 12'h02E;
rommem[ 9796] <= 12'h02E;
rommem[ 9797] <= 12'h02E;
rommem[ 9798] <= 12'h02E;
rommem[ 9793] <= 12'h02C;
rommem[ 9794] <= 12'h06B;
rommem[ 9795] <= 12'h069;
rommem[ 9796] <= 12'h06F;
rommem[ 9797] <= 12'h030;
rommem[ 9798] <= 12'h039;
rommem[ 9799] <= 12'h02E;
rommem[ 9800] <= 12'h02E;
rommem[ 9801] <= 12'h02E;
rommem[ 9802] <= 12'h02E;
rommem[ 9803] <= 12'h02E;
rommem[ 9804] <= 12'h02E;
rommem[ 9805] <= 12'h02E;
rommem[ 9806] <= 12'h02E;
rommem[ 9802] <= 12'h02F;
rommem[ 9803] <= 12'h06C;
rommem[ 9804] <= 12'h03B;
rommem[ 9805] <= 12'h070;
rommem[ 9806] <= 12'h02D;
rommem[ 9807] <= 12'h02E;
rommem[ 9808] <= 12'h02E;
rommem[ 9809] <= 12'h02E;
rommem[ 9810] <= 12'h02E;
rommem[ 9810] <= 12'h027;
rommem[ 9811] <= 12'h02E;
rommem[ 9812] <= 12'h02E;
rommem[ 9813] <= 12'h02E;
rommem[ 9812] <= 12'h05B;
rommem[ 9813] <= 12'h03D;
rommem[ 9814] <= 12'h02E;
rommem[ 9815] <= 12'h02E;
rommem[ 9816] <= 12'h02E;
rommem[ 9816] <= 12'h0AD;
rommem[ 9817] <= 12'h02E;
rommem[ 9818] <= 12'h02E;
rommem[ 9819] <= 12'h02E;
rommem[ 9818] <= 12'h00D;
rommem[ 9819] <= 12'h05D;
rommem[ 9820] <= 12'h02E;
rommem[ 9821] <= 12'h02E;
rommem[ 9821] <= 12'h05C;
rommem[ 9822] <= 12'h02E;
rommem[ 9823] <= 12'h02E;
rommem[ 9824] <= 12'h02E;
1823,36 → 1636,36
rommem[ 9827] <= 12'h02E;
rommem[ 9828] <= 12'h02E;
rommem[ 9829] <= 12'h02E;
rommem[ 9830] <= 12'h02E;
rommem[ 9830] <= 12'h008;
rommem[ 9831] <= 12'h02E;
rommem[ 9832] <= 12'h02E;
rommem[ 9833] <= 12'h02E;
rommem[ 9833] <= 12'h095;
rommem[ 9834] <= 12'h02E;
rommem[ 9835] <= 12'h02E;
rommem[ 9836] <= 12'h02E;
rommem[ 9835] <= 12'h093;
rommem[ 9836] <= 12'h094;
rommem[ 9837] <= 12'h02E;
rommem[ 9838] <= 12'h02E;
rommem[ 9839] <= 12'h02E;
rommem[ 9840] <= 12'h02E;
rommem[ 9841] <= 12'h02E;
rommem[ 9842] <= 12'h02E;
rommem[ 9840] <= 12'h098;
rommem[ 9841] <= 12'h07F;
rommem[ 9842] <= 12'h092;
rommem[ 9843] <= 12'h02E;
rommem[ 9844] <= 12'h02E;
rommem[ 9845] <= 12'h02E;
rommem[ 9846] <= 12'h02E;
rommem[ 9847] <= 12'h02E;
rommem[ 9848] <= 12'h02E;
rommem[ 9844] <= 12'h091;
rommem[ 9845] <= 12'h090;
rommem[ 9846] <= 12'h01B;
rommem[ 9847] <= 12'h0AF;
rommem[ 9848] <= 12'h0AB;
rommem[ 9849] <= 12'h02E;
rommem[ 9850] <= 12'h0FA;
rommem[ 9850] <= 12'h097;
rommem[ 9851] <= 12'h02E;
rommem[ 9852] <= 12'h02E;
rommem[ 9853] <= 12'h02E;
rommem[ 9854] <= 12'h02E;
rommem[ 9853] <= 12'h096;
rommem[ 9854] <= 12'h0AE;
rommem[ 9855] <= 12'h02E;
rommem[ 9856] <= 12'h02E;
rommem[ 9857] <= 12'h02E;
rommem[ 9858] <= 12'h02E;
rommem[ 9859] <= 12'h02E;
rommem[ 9859] <= 12'h0A7;
rommem[ 9860] <= 12'h02E;
rommem[ 9861] <= 12'h02E;
rommem[ 9862] <= 12'h02E;
1862,8 → 1675,8
rommem[ 9866] <= 12'h02E;
rommem[ 9867] <= 12'h02E;
rommem[ 9868] <= 12'h02E;
rommem[ 9869] <= 12'h009;
rommem[ 9870] <= 12'h07E;
rommem[ 9869] <= 12'h02E;
rommem[ 9870] <= 12'h02E;
rommem[ 9871] <= 12'h02E;
rommem[ 9872] <= 12'h02E;
rommem[ 9873] <= 12'h02E;
1870,79 → 1683,79
rommem[ 9874] <= 12'h02E;
rommem[ 9875] <= 12'h02E;
rommem[ 9876] <= 12'h02E;
rommem[ 9877] <= 12'h051;
rommem[ 9878] <= 12'h021;
rommem[ 9877] <= 12'h02E;
rommem[ 9878] <= 12'h02E;
rommem[ 9879] <= 12'h02E;
rommem[ 9880] <= 12'h02E;
rommem[ 9881] <= 12'h02E;
rommem[ 9882] <= 12'h05A;
rommem[ 9883] <= 12'h053;
rommem[ 9884] <= 12'h041;
rommem[ 9885] <= 12'h057;
rommem[ 9886] <= 12'h040;
rommem[ 9882] <= 12'h02E;
rommem[ 9883] <= 12'h02E;
rommem[ 9884] <= 12'h02E;
rommem[ 9885] <= 12'h02E;
rommem[ 9886] <= 12'h02E;
rommem[ 9887] <= 12'h02E;
rommem[ 9888] <= 12'h02E;
rommem[ 9889] <= 12'h043;
rommem[ 9890] <= 12'h058;
rommem[ 9891] <= 12'h044;
rommem[ 9892] <= 12'h045;
rommem[ 9893] <= 12'h024;
rommem[ 9894] <= 12'h023;
rommem[ 9889] <= 12'h02E;
rommem[ 9890] <= 12'h02E;
rommem[ 9891] <= 12'h02E;
rommem[ 9892] <= 12'h02E;
rommem[ 9893] <= 12'h02E;
rommem[ 9894] <= 12'h02E;
rommem[ 9895] <= 12'h02E;
rommem[ 9896] <= 12'h02E;
rommem[ 9897] <= 12'h020;
rommem[ 9898] <= 12'h056;
rommem[ 9899] <= 12'h046;
rommem[ 9900] <= 12'h054;
rommem[ 9901] <= 12'h052;
rommem[ 9902] <= 12'h025;
rommem[ 9897] <= 12'h02E;
rommem[ 9898] <= 12'h02E;
rommem[ 9899] <= 12'h02E;
rommem[ 9900] <= 12'h02E;
rommem[ 9901] <= 12'h02E;
rommem[ 9902] <= 12'h02E;
rommem[ 9903] <= 12'h02E;
rommem[ 9904] <= 12'h02E;
rommem[ 9905] <= 12'h04E;
rommem[ 9906] <= 12'h042;
rommem[ 9907] <= 12'h048;
rommem[ 9908] <= 12'h047;
rommem[ 9909] <= 12'h059;
rommem[ 9910] <= 12'h05E;
rommem[ 9905] <= 12'h02E;
rommem[ 9906] <= 12'h02E;
rommem[ 9907] <= 12'h02E;
rommem[ 9908] <= 12'h02E;
rommem[ 9909] <= 12'h02E;
rommem[ 9910] <= 12'h02E;
rommem[ 9911] <= 12'h02E;
rommem[ 9912] <= 12'h02E;
rommem[ 9913] <= 12'h02E;
rommem[ 9914] <= 12'h04D;
rommem[ 9915] <= 12'h04A;
rommem[ 9916] <= 12'h055;
rommem[ 9917] <= 12'h026;
rommem[ 9918] <= 12'h02A;
rommem[ 9914] <= 12'h02E;
rommem[ 9915] <= 12'h02E;
rommem[ 9916] <= 12'h02E;
rommem[ 9917] <= 12'h02E;
rommem[ 9918] <= 12'h02E;
rommem[ 9919] <= 12'h02E;
rommem[ 9920] <= 12'h02E;
rommem[ 9921] <= 12'h03C;
rommem[ 9922] <= 12'h04B;
rommem[ 9923] <= 12'h049;
rommem[ 9924] <= 12'h04F;
rommem[ 9925] <= 12'h029;
rommem[ 9926] <= 12'h028;
rommem[ 9921] <= 12'h02E;
rommem[ 9922] <= 12'h02E;
rommem[ 9923] <= 12'h02E;
rommem[ 9924] <= 12'h02E;
rommem[ 9925] <= 12'h02E;
rommem[ 9926] <= 12'h02E;
rommem[ 9927] <= 12'h02E;
rommem[ 9928] <= 12'h02E;
rommem[ 9929] <= 12'h03E;
rommem[ 9930] <= 12'h03F;
rommem[ 9931] <= 12'h04C;
rommem[ 9932] <= 12'h03A;
rommem[ 9933] <= 12'h050;
rommem[ 9934] <= 12'h05F;
rommem[ 9929] <= 12'h02E;
rommem[ 9930] <= 12'h02E;
rommem[ 9931] <= 12'h02E;
rommem[ 9932] <= 12'h02E;
rommem[ 9933] <= 12'h02E;
rommem[ 9934] <= 12'h02E;
rommem[ 9935] <= 12'h02E;
rommem[ 9936] <= 12'h02E;
rommem[ 9937] <= 12'h02E;
rommem[ 9938] <= 12'h022;
rommem[ 9938] <= 12'h02E;
rommem[ 9939] <= 12'h02E;
rommem[ 9940] <= 12'h07B;
rommem[ 9941] <= 12'h02B;
rommem[ 9940] <= 12'h02E;
rommem[ 9941] <= 12'h02E;
rommem[ 9942] <= 12'h02E;
rommem[ 9943] <= 12'h02E;
rommem[ 9944] <= 12'h02E;
rommem[ 9945] <= 12'h02E;
rommem[ 9946] <= 12'h00D;
rommem[ 9947] <= 12'h07D;
rommem[ 9946] <= 12'h02E;
rommem[ 9947] <= 12'h02E;
rommem[ 9948] <= 12'h02E;
rommem[ 9949] <= 12'h07C;
rommem[ 9949] <= 12'h02E;
rommem[ 9950] <= 12'h02E;
rommem[ 9951] <= 12'h02E;
rommem[ 9952] <= 12'h02E;
1951,7 → 1764,7
rommem[ 9955] <= 12'h02E;
rommem[ 9956] <= 12'h02E;
rommem[ 9957] <= 12'h02E;
rommem[ 9958] <= 12'h008;
rommem[ 9958] <= 12'h02E;
rommem[ 9959] <= 12'h02E;
rommem[ 9960] <= 12'h02E;
rommem[ 9961] <= 12'h02E;
1962,16 → 1775,16
rommem[ 9966] <= 12'h02E;
rommem[ 9967] <= 12'h02E;
rommem[ 9968] <= 12'h02E;
rommem[ 9969] <= 12'h07F;
rommem[ 9969] <= 12'h02E;
rommem[ 9970] <= 12'h02E;
rommem[ 9971] <= 12'h02E;
rommem[ 9972] <= 12'h02E;
rommem[ 9973] <= 12'h02E;
rommem[ 9974] <= 12'h01B;
rommem[ 9974] <= 12'h02E;
rommem[ 9975] <= 12'h02E;
rommem[ 9976] <= 12'h02E;
rommem[ 9977] <= 12'h02E;
rommem[ 9978] <= 12'h02E;
rommem[ 9978] <= 12'h0FA;
rommem[ 9979] <= 12'h02E;
rommem[ 9980] <= 12'h02E;
rommem[ 9981] <= 12'h02E;
1990,8 → 1803,8
rommem[ 9994] <= 12'h02E;
rommem[ 9995] <= 12'h02E;
rommem[ 9996] <= 12'h02E;
rommem[ 9997] <= 12'h02E;
rommem[ 9998] <= 12'h02E;
rommem[ 9997] <= 12'h009;
rommem[ 9998] <= 12'h07E;
rommem[ 9999] <= 12'h02E;
rommem[10000] <= 12'h02E;
rommem[10001] <= 12'h02E;
1998,79 → 1811,79
rommem[10002] <= 12'h02E;
rommem[10003] <= 12'h02E;
rommem[10004] <= 12'h02E;
rommem[10005] <= 12'h02E;
rommem[10006] <= 12'h02E;
rommem[10005] <= 12'h051;
rommem[10006] <= 12'h021;
rommem[10007] <= 12'h02E;
rommem[10008] <= 12'h02E;
rommem[10009] <= 12'h02E;
rommem[10010] <= 12'h02E;
rommem[10011] <= 12'h02E;
rommem[10012] <= 12'h02E;
rommem[10013] <= 12'h02E;
rommem[10014] <= 12'h02E;
rommem[10010] <= 12'h05A;
rommem[10011] <= 12'h053;
rommem[10012] <= 12'h041;
rommem[10013] <= 12'h057;
rommem[10014] <= 12'h040;
rommem[10015] <= 12'h02E;
rommem[10016] <= 12'h02E;
rommem[10017] <= 12'h02E;
rommem[10018] <= 12'h02E;
rommem[10019] <= 12'h02E;
rommem[10020] <= 12'h02E;
rommem[10021] <= 12'h02E;
rommem[10022] <= 12'h02E;
rommem[10017] <= 12'h043;
rommem[10018] <= 12'h058;
rommem[10019] <= 12'h044;
rommem[10020] <= 12'h045;
rommem[10021] <= 12'h024;
rommem[10022] <= 12'h023;
rommem[10023] <= 12'h02E;
rommem[10024] <= 12'h02E;
rommem[10025] <= 12'h02E;
rommem[10026] <= 12'h02E;
rommem[10027] <= 12'h02E;
rommem[10028] <= 12'h02E;
rommem[10029] <= 12'h02E;
rommem[10030] <= 12'h02E;
rommem[10025] <= 12'h020;
rommem[10026] <= 12'h056;
rommem[10027] <= 12'h046;
rommem[10028] <= 12'h054;
rommem[10029] <= 12'h052;
rommem[10030] <= 12'h025;
rommem[10031] <= 12'h02E;
rommem[10032] <= 12'h02E;
rommem[10033] <= 12'h02E;
rommem[10034] <= 12'h02E;
rommem[10035] <= 12'h02E;
rommem[10036] <= 12'h02E;
rommem[10037] <= 12'h02E;
rommem[10038] <= 12'h02E;
rommem[10033] <= 12'h04E;
rommem[10034] <= 12'h042;
rommem[10035] <= 12'h048;
rommem[10036] <= 12'h047;
rommem[10037] <= 12'h059;
rommem[10038] <= 12'h05E;
rommem[10039] <= 12'h02E;
rommem[10040] <= 12'h02E;
rommem[10041] <= 12'h02E;
rommem[10042] <= 12'h02E;
rommem[10043] <= 12'h02E;
rommem[10044] <= 12'h02E;
rommem[10045] <= 12'h02E;
rommem[10046] <= 12'h02E;
rommem[10042] <= 12'h04D;
rommem[10043] <= 12'h04A;
rommem[10044] <= 12'h055;
rommem[10045] <= 12'h026;
rommem[10046] <= 12'h02A;
rommem[10047] <= 12'h02E;
rommem[10048] <= 12'h02E;
rommem[10049] <= 12'h02E;
rommem[10050] <= 12'h02E;
rommem[10051] <= 12'h02E;
rommem[10052] <= 12'h02E;
rommem[10053] <= 12'h02E;
rommem[10054] <= 12'h02E;
rommem[10049] <= 12'h03C;
rommem[10050] <= 12'h04B;
rommem[10051] <= 12'h049;
rommem[10052] <= 12'h04F;
rommem[10053] <= 12'h029;
rommem[10054] <= 12'h028;
rommem[10055] <= 12'h02E;
rommem[10056] <= 12'h02E;
rommem[10057] <= 12'h02E;
rommem[10058] <= 12'h02E;
rommem[10059] <= 12'h02E;
rommem[10060] <= 12'h02E;
rommem[10061] <= 12'h02E;
rommem[10062] <= 12'h02E;
rommem[10057] <= 12'h03E;
rommem[10058] <= 12'h03F;
rommem[10059] <= 12'h04C;
rommem[10060] <= 12'h03A;
rommem[10061] <= 12'h050;
rommem[10062] <= 12'h05F;
rommem[10063] <= 12'h02E;
rommem[10064] <= 12'h02E;
rommem[10065] <= 12'h02E;
rommem[10066] <= 12'h02E;
rommem[10066] <= 12'h022;
rommem[10067] <= 12'h02E;
rommem[10068] <= 12'h02E;
rommem[10069] <= 12'h02E;
rommem[10068] <= 12'h07B;
rommem[10069] <= 12'h02B;
rommem[10070] <= 12'h02E;
rommem[10071] <= 12'h02E;
rommem[10072] <= 12'h02E;
rommem[10073] <= 12'h02E;
rommem[10074] <= 12'h02E;
rommem[10075] <= 12'h02E;
rommem[10074] <= 12'h00D;
rommem[10075] <= 12'h07D;
rommem[10076] <= 12'h02E;
rommem[10077] <= 12'h02E;
rommem[10077] <= 12'h07C;
rommem[10078] <= 12'h02E;
rommem[10079] <= 12'h02E;
rommem[10080] <= 12'h02E;
2079,7 → 1892,7
rommem[10083] <= 12'h02E;
rommem[10084] <= 12'h02E;
rommem[10085] <= 12'h02E;
rommem[10086] <= 12'h02E;
rommem[10086] <= 12'h008;
rommem[10087] <= 12'h02E;
rommem[10088] <= 12'h02E;
rommem[10089] <= 12'h02E;
2090,12 → 1903,12
rommem[10094] <= 12'h02E;
rommem[10095] <= 12'h02E;
rommem[10096] <= 12'h02E;
rommem[10097] <= 12'h02E;
rommem[10097] <= 12'h07F;
rommem[10098] <= 12'h02E;
rommem[10099] <= 12'h02E;
rommem[10100] <= 12'h02E;
rommem[10101] <= 12'h02E;
rommem[10102] <= 12'h02E;
rommem[10102] <= 12'h01B;
rommem[10103] <= 12'h02E;
rommem[10104] <= 12'h02E;
rommem[10105] <= 12'h02E;
2118,8 → 1931,8
rommem[10122] <= 12'h02E;
rommem[10123] <= 12'h02E;
rommem[10124] <= 12'h02E;
rommem[10125] <= 12'h009;
rommem[10126] <= 12'h07E;
rommem[10125] <= 12'h02E;
rommem[10126] <= 12'h02E;
rommem[10127] <= 12'h02E;
rommem[10128] <= 12'h02E;
rommem[10129] <= 12'h02E;
2126,79 → 1939,79
rommem[10130] <= 12'h02E;
rommem[10131] <= 12'h02E;
rommem[10132] <= 12'h02E;
rommem[10133] <= 12'h011;
rommem[10134] <= 12'h021;
rommem[10133] <= 12'h02E;
rommem[10134] <= 12'h02E;
rommem[10135] <= 12'h02E;
rommem[10136] <= 12'h02E;
rommem[10137] <= 12'h02E;
rommem[10138] <= 12'h01A;
rommem[10139] <= 12'h013;
rommem[10140] <= 12'h001;
rommem[10141] <= 12'h017;
rommem[10142] <= 12'h040;
rommem[10138] <= 12'h02E;
rommem[10139] <= 12'h02E;
rommem[10140] <= 12'h02E;
rommem[10141] <= 12'h02E;
rommem[10142] <= 12'h02E;
rommem[10143] <= 12'h02E;
rommem[10144] <= 12'h02E;
rommem[10145] <= 12'h003;
rommem[10146] <= 12'h018;
rommem[10147] <= 12'h004;
rommem[10148] <= 12'h005;
rommem[10149] <= 12'h024;
rommem[10150] <= 12'h023;
rommem[10145] <= 12'h02E;
rommem[10146] <= 12'h02E;
rommem[10147] <= 12'h02E;
rommem[10148] <= 12'h02E;
rommem[10149] <= 12'h02E;
rommem[10150] <= 12'h02E;
rommem[10151] <= 12'h02E;
rommem[10152] <= 12'h02E;
rommem[10153] <= 12'h020;
rommem[10154] <= 12'h016;
rommem[10155] <= 12'h006;
rommem[10156] <= 12'h014;
rommem[10157] <= 12'h012;
rommem[10158] <= 12'h025;
rommem[10153] <= 12'h02E;
rommem[10154] <= 12'h02E;
rommem[10155] <= 12'h02E;
rommem[10156] <= 12'h02E;
rommem[10157] <= 12'h02E;
rommem[10158] <= 12'h02E;
rommem[10159] <= 12'h02E;
rommem[10160] <= 12'h02E;
rommem[10161] <= 12'h00E;
rommem[10162] <= 12'h002;
rommem[10163] <= 12'h008;
rommem[10164] <= 12'h007;
rommem[10165] <= 12'h019;
rommem[10166] <= 12'h05E;
rommem[10161] <= 12'h02E;
rommem[10162] <= 12'h02E;
rommem[10163] <= 12'h02E;
rommem[10164] <= 12'h02E;
rommem[10165] <= 12'h02E;
rommem[10166] <= 12'h02E;
rommem[10167] <= 12'h02E;
rommem[10168] <= 12'h02E;
rommem[10169] <= 12'h02E;
rommem[10170] <= 12'h00D;
rommem[10171] <= 12'h00A;
rommem[10172] <= 12'h015;
rommem[10173] <= 12'h026;
rommem[10174] <= 12'h02A;
rommem[10170] <= 12'h02E;
rommem[10171] <= 12'h02E;
rommem[10172] <= 12'h02E;
rommem[10173] <= 12'h02E;
rommem[10174] <= 12'h02E;
rommem[10175] <= 12'h02E;
rommem[10176] <= 12'h02E;
rommem[10177] <= 12'h03C;
rommem[10178] <= 12'h00B;
rommem[10179] <= 12'h009;
rommem[10180] <= 12'h00F;
rommem[10181] <= 12'h029;
rommem[10182] <= 12'h028;
rommem[10177] <= 12'h02E;
rommem[10178] <= 12'h02E;
rommem[10179] <= 12'h02E;
rommem[10180] <= 12'h02E;
rommem[10181] <= 12'h02E;
rommem[10182] <= 12'h02E;
rommem[10183] <= 12'h02E;
rommem[10184] <= 12'h02E;
rommem[10185] <= 12'h03E;
rommem[10186] <= 12'h03F;
rommem[10187] <= 12'h00C;
rommem[10188] <= 12'h03A;
rommem[10189] <= 12'h010;
rommem[10190] <= 12'h05F;
rommem[10185] <= 12'h02E;
rommem[10186] <= 12'h02E;
rommem[10187] <= 12'h02E;
rommem[10188] <= 12'h02E;
rommem[10189] <= 12'h02E;
rommem[10190] <= 12'h02E;
rommem[10191] <= 12'h02E;
rommem[10192] <= 12'h02E;
rommem[10193] <= 12'h02E;
rommem[10194] <= 12'h022;
rommem[10194] <= 12'h02E;
rommem[10195] <= 12'h02E;
rommem[10196] <= 12'h07B;
rommem[10197] <= 12'h02B;
rommem[10196] <= 12'h02E;
rommem[10197] <= 12'h02E;
rommem[10198] <= 12'h02E;
rommem[10199] <= 12'h02E;
rommem[10200] <= 12'h02E;
rommem[10201] <= 12'h02E;
rommem[10202] <= 12'h00D;
rommem[10203] <= 12'h07D;
rommem[10202] <= 12'h02E;
rommem[10203] <= 12'h02E;
rommem[10204] <= 12'h02E;
rommem[10205] <= 12'h07C;
rommem[10205] <= 12'h02E;
rommem[10206] <= 12'h02E;
rommem[10207] <= 12'h02E;
rommem[10208] <= 12'h02E;
2207,7 → 2020,7
rommem[10211] <= 12'h02E;
rommem[10212] <= 12'h02E;
rommem[10213] <= 12'h02E;
rommem[10214] <= 12'h008;
rommem[10214] <= 12'h02E;
rommem[10215] <= 12'h02E;
rommem[10216] <= 12'h02E;
rommem[10217] <= 12'h02E;
2218,12 → 2031,12
rommem[10222] <= 12'h02E;
rommem[10223] <= 12'h02E;
rommem[10224] <= 12'h02E;
rommem[10225] <= 12'h07F;
rommem[10225] <= 12'h02E;
rommem[10226] <= 12'h02E;
rommem[10227] <= 12'h02E;
rommem[10228] <= 12'h02E;
rommem[10229] <= 12'h02E;
rommem[10230] <= 12'h01B;
rommem[10230] <= 12'h02E;
rommem[10231] <= 12'h02E;
rommem[10232] <= 12'h02E;
rommem[10233] <= 12'h02E;
2237,9 → 2050,9
rommem[10241] <= 12'h02E;
rommem[10242] <= 12'h02E;
rommem[10243] <= 12'h02E;
rommem[10244] <= 12'h0A3;
rommem[10245] <= 12'h0A1;
rommem[10246] <= 12'h0A2;
rommem[10244] <= 12'h02E;
rommem[10245] <= 12'h02E;
rommem[10246] <= 12'h02E;
rommem[10247] <= 12'h02E;
rommem[10248] <= 12'h02E;
rommem[10249] <= 12'h02E;
2246,8 → 2059,8
rommem[10250] <= 12'h02E;
rommem[10251] <= 12'h02E;
rommem[10252] <= 12'h02E;
rommem[10253] <= 12'h02E;
rommem[10254] <= 12'h02E;
rommem[10253] <= 12'h009;
rommem[10254] <= 12'h07E;
rommem[10255] <= 12'h02E;
rommem[10256] <= 12'h02E;
rommem[10257] <= 12'h02E;
2254,79 → 2067,79
rommem[10258] <= 12'h02E;
rommem[10259] <= 12'h02E;
rommem[10260] <= 12'h02E;
rommem[10261] <= 12'h02E;
rommem[10262] <= 12'h02E;
rommem[10261] <= 12'h011;
rommem[10262] <= 12'h021;
rommem[10263] <= 12'h02E;
rommem[10264] <= 12'h02E;
rommem[10265] <= 12'h02E;
rommem[10266] <= 12'h02E;
rommem[10267] <= 12'h02E;
rommem[10268] <= 12'h02E;
rommem[10269] <= 12'h02E;
rommem[10270] <= 12'h02E;
rommem[10266] <= 12'h01A;
rommem[10267] <= 12'h013;
rommem[10268] <= 12'h001;
rommem[10269] <= 12'h017;
rommem[10270] <= 12'h040;
rommem[10271] <= 12'h02E;
rommem[10272] <= 12'h02E;
rommem[10273] <= 12'h02E;
rommem[10274] <= 12'h02E;
rommem[10275] <= 12'h02E;
rommem[10276] <= 12'h02E;
rommem[10277] <= 12'h02E;
rommem[10278] <= 12'h02E;
rommem[10273] <= 12'h003;
rommem[10274] <= 12'h018;
rommem[10275] <= 12'h004;
rommem[10276] <= 12'h005;
rommem[10277] <= 12'h024;
rommem[10278] <= 12'h023;
rommem[10279] <= 12'h02E;
rommem[10280] <= 12'h02E;
rommem[10281] <= 12'h02E;
rommem[10282] <= 12'h02E;
rommem[10283] <= 12'h02E;
rommem[10284] <= 12'h02E;
rommem[10285] <= 12'h02E;
rommem[10286] <= 12'h02E;
rommem[10281] <= 12'h020;
rommem[10282] <= 12'h016;
rommem[10283] <= 12'h006;
rommem[10284] <= 12'h014;
rommem[10285] <= 12'h012;
rommem[10286] <= 12'h025;
rommem[10287] <= 12'h02E;
rommem[10288] <= 12'h02E;
rommem[10289] <= 12'h02E;
rommem[10290] <= 12'h02E;
rommem[10291] <= 12'h02E;
rommem[10292] <= 12'h02E;
rommem[10293] <= 12'h02E;
rommem[10294] <= 12'h02E;
rommem[10289] <= 12'h00E;
rommem[10290] <= 12'h002;
rommem[10291] <= 12'h008;
rommem[10292] <= 12'h007;
rommem[10293] <= 12'h019;
rommem[10294] <= 12'h05E;
rommem[10295] <= 12'h02E;
rommem[10296] <= 12'h02E;
rommem[10297] <= 12'h02E;
rommem[10298] <= 12'h02E;
rommem[10299] <= 12'h02E;
rommem[10300] <= 12'h02E;
rommem[10301] <= 12'h02E;
rommem[10302] <= 12'h02E;
rommem[10298] <= 12'h00D;
rommem[10299] <= 12'h00A;
rommem[10300] <= 12'h015;
rommem[10301] <= 12'h026;
rommem[10302] <= 12'h02A;
rommem[10303] <= 12'h02E;
rommem[10304] <= 12'h02E;
rommem[10305] <= 12'h02E;
rommem[10306] <= 12'h02E;
rommem[10307] <= 12'h02E;
rommem[10308] <= 12'h02E;
rommem[10309] <= 12'h02E;
rommem[10310] <= 12'h02E;
rommem[10305] <= 12'h03C;
rommem[10306] <= 12'h00B;
rommem[10307] <= 12'h009;
rommem[10308] <= 12'h00F;
rommem[10309] <= 12'h029;
rommem[10310] <= 12'h028;
rommem[10311] <= 12'h02E;
rommem[10312] <= 12'h02E;
rommem[10313] <= 12'h02E;
rommem[10314] <= 12'h02E;
rommem[10315] <= 12'h02E;
rommem[10316] <= 12'h02E;
rommem[10317] <= 12'h02E;
rommem[10318] <= 12'h02E;
rommem[10313] <= 12'h03E;
rommem[10314] <= 12'h03F;
rommem[10315] <= 12'h00C;
rommem[10316] <= 12'h03A;
rommem[10317] <= 12'h010;
rommem[10318] <= 12'h05F;
rommem[10319] <= 12'h02E;
rommem[10320] <= 12'h02E;
rommem[10321] <= 12'h02E;
rommem[10322] <= 12'h02E;
rommem[10322] <= 12'h022;
rommem[10323] <= 12'h02E;
rommem[10324] <= 12'h02E;
rommem[10325] <= 12'h02E;
rommem[10324] <= 12'h07B;
rommem[10325] <= 12'h02B;
rommem[10326] <= 12'h02E;
rommem[10327] <= 12'h02E;
rommem[10328] <= 12'h02E;
rommem[10329] <= 12'h02E;
rommem[10330] <= 12'h02E;
rommem[10331] <= 12'h02E;
rommem[10330] <= 12'h00D;
rommem[10331] <= 12'h07D;
rommem[10332] <= 12'h02E;
rommem[10333] <= 12'h02E;
rommem[10333] <= 12'h07C;
rommem[10334] <= 12'h02E;
rommem[10335] <= 12'h02E;
rommem[10336] <= 12'h02E;
2335,3368 → 2148,4050
rommem[10339] <= 12'h02E;
rommem[10340] <= 12'h02E;
rommem[10341] <= 12'h02E;
rommem[10342] <= 12'h02E;
rommem[10342] <= 12'h008;
rommem[10343] <= 12'h02E;
rommem[10344] <= 12'h02E;
rommem[10345] <= 12'h095;
rommem[10345] <= 12'h02E;
rommem[10346] <= 12'h02E;
rommem[10347] <= 12'h093;
rommem[10348] <= 12'h094;
rommem[10347] <= 12'h02E;
rommem[10348] <= 12'h02E;
rommem[10349] <= 12'h02E;
rommem[10350] <= 12'h02E;
rommem[10351] <= 12'h02E;
rommem[10352] <= 12'h098;
rommem[10353] <= 12'h099;
rommem[10354] <= 12'h092;
rommem[10352] <= 12'h02E;
rommem[10353] <= 12'h07F;
rommem[10354] <= 12'h02E;
rommem[10355] <= 12'h02E;
rommem[10356] <= 12'h091;
rommem[10357] <= 12'h090;
rommem[10358] <= 12'h02E;
rommem[10356] <= 12'h02E;
rommem[10357] <= 12'h02E;
rommem[10358] <= 12'h01B;
rommem[10359] <= 12'h02E;
rommem[10360] <= 12'h02E;
rommem[10361] <= 12'h02E;
rommem[10362] <= 12'h097;
rommem[10362] <= 12'h02E;
rommem[10363] <= 12'h02E;
rommem[10364] <= 12'h02E;
rommem[10365] <= 12'h096;
rommem[10365] <= 12'h02E;
rommem[10366] <= 12'h02E;
rommem[10367] <= 12'h02E;
rommem[10368] <= 12'h034;
rommem[10369] <= 12'h010;
rommem[10370] <= 12'h08E;
rommem[10371] <= 12'h000;
rommem[10372] <= 12'h064;
rommem[10373] <= 12'h08D;
rommem[10374] <= 12'h05A;
rommem[10375] <= 12'h05D;
rommem[10376] <= 12'h02B;
rommem[10377] <= 12'h00B;
rommem[10378] <= 12'h08D;
rommem[10379] <= 12'h02D;
rommem[10380] <= 12'h030;
rommem[10381] <= 12'h1FF;
rommem[10382] <= 12'h026;
rommem[10383] <= 12'hFF5;
rommem[10384] <= 12'h0CC;
rommem[10385] <= 12'hFFF;
rommem[10386] <= 12'hFFF;
rommem[10387] <= 12'h035;
rommem[10388] <= 12'h090;
rommem[10389] <= 12'h08D;
rommem[10390] <= 12'h066;
rommem[10391] <= 12'h035;
rommem[10392] <= 12'h090;
rommem[10393] <= 12'h015;
rommem[10394] <= 12'h0F7;
rommem[10395] <= 12'hFFF;
rommem[10396] <= 12'hE30;
rommem[10397] <= 12'h400;
rommem[10398] <= 12'h039;
rommem[10399] <= 12'h034;
rommem[10400] <= 12'h010;
rommem[10401] <= 12'h08E;
rommem[10402] <= 12'h000;
rommem[10403] <= 12'h064;
rommem[10404] <= 12'h08D;
rommem[10405] <= 12'h03B;
rommem[10406] <= 12'h0C4;
rommem[10407] <= 12'h040;
rommem[10408] <= 12'h026;
rommem[10409] <= 12'h00B;
rommem[10410] <= 12'h08D;
rommem[10411] <= 12'h00D;
rommem[10412] <= 12'h030;
rommem[10413] <= 12'h1FF;
rommem[10414] <= 12'h026;
rommem[10415] <= 12'hFF4;
rommem[10416] <= 12'h0CC;
rommem[10417] <= 12'hFFF;
rommem[10418] <= 12'hFFF;
rommem[10419] <= 12'h035;
rommem[10420] <= 12'h090;
rommem[10421] <= 12'h04F;
rommem[10422] <= 12'h05F;
rommem[10423] <= 12'h035;
rommem[10424] <= 12'h090;
rommem[10425] <= 12'h034;
rommem[10426] <= 12'h006;
rommem[10427] <= 12'h015;
rommem[10428] <= 12'h0B6;
rommem[10429] <= 12'hFFF;
rommem[10430] <= 12'hFFF;
rommem[10431] <= 12'hFE7;
rommem[10432] <= 12'h01F;
rommem[10433] <= 12'h089;
rommem[10434] <= 12'h015;
rommem[10435] <= 12'h0F0;
rommem[10436] <= 12'hFFF;
rommem[10437] <= 12'hFFF;
rommem[10438] <= 12'hFE7;
rommem[10439] <= 12'h0C1;
rommem[10440] <= 12'hFFA;
rommem[10441] <= 12'h022;
rommem[10442] <= 12'hFF5;
rommem[10443] <= 12'h035;
rommem[10444] <= 12'h086;
rommem[10445] <= 12'h034;
rommem[10446] <= 12'h006;
rommem[10447] <= 12'h015;
rommem[10448] <= 12'h0B6;
rommem[10449] <= 12'hFFF;
rommem[10450] <= 12'hFFF;
rommem[10451] <= 12'hFE7;
rommem[10452] <= 12'h01F;
rommem[10453] <= 12'h089;
rommem[10454] <= 12'h015;
rommem[10455] <= 12'h0F0;
rommem[10456] <= 12'hFFF;
rommem[10457] <= 12'hFFF;
rommem[10458] <= 12'hFE7;
rommem[10459] <= 12'h0C1;
rommem[10460] <= 12'hF00;
rommem[10461] <= 12'h022;
rommem[10462] <= 12'hFF5;
rommem[10463] <= 12'h035;
rommem[10464] <= 12'h086;
rommem[10465] <= 12'h015;
rommem[10466] <= 12'h0F6;
rommem[10467] <= 12'hFFF;
rommem[10468] <= 12'hE30;
rommem[10469] <= 12'h401;
rommem[10470] <= 12'h0C5;
rommem[10471] <= 12'h080;
rommem[10472] <= 12'h026;
rommem[10473] <= 12'h00E;
rommem[10474] <= 12'h0C5;
rommem[10475] <= 12'h001;
rommem[10476] <= 12'h026;
rommem[10477] <= 12'h002;
rommem[10478] <= 12'h04F;
rommem[10479] <= 12'h039;
rommem[10480] <= 12'h0C6;
rommem[10481] <= 12'h0FE;
rommem[10482] <= 12'h08D;
rommem[10483] <= 12'hFA5;
rommem[10484] <= 12'h08D;
rommem[10485] <= 12'hFA9;
rommem[10486] <= 12'h020;
rommem[10487] <= 12'hFE9;
rommem[10488] <= 12'h0CA;
rommem[10489] <= 12'hF00;
rommem[10490] <= 12'h086;
rommem[10491] <= 12'hFFF;
rommem[10492] <= 12'h039;
rommem[10493] <= 12'h04F;
rommem[10494] <= 12'h015;
rommem[10495] <= 12'h0F6;
rommem[10496] <= 12'hFFF;
rommem[10497] <= 12'hE30;
rommem[10498] <= 12'h400;
rommem[10499] <= 12'h015;
rommem[10500] <= 12'h07F;
rommem[10501] <= 12'hFFF;
rommem[10502] <= 12'hE30;
rommem[10503] <= 12'h401;
rommem[10504] <= 12'h039;
rommem[10505] <= 12'h034;
rommem[10506] <= 12'h004;
rommem[10507] <= 12'h0C6;
rommem[10508] <= 12'h0ED;
rommem[10509] <= 12'h08D;
rommem[10510] <= 12'hF8A;
rommem[10511] <= 12'h08D;
rommem[10512] <= 12'hF8E;
rommem[10513] <= 12'h08D;
rommem[10514] <= 12'hF6D;
rommem[10368] <= 12'h02E;
rommem[10369] <= 12'h02E;
rommem[10370] <= 12'h02E;
rommem[10371] <= 12'h02E;
rommem[10372] <= 12'h0A3;
rommem[10373] <= 12'h0A1;
rommem[10374] <= 12'h0A2;
rommem[10375] <= 12'h02E;
rommem[10376] <= 12'h02E;
rommem[10377] <= 12'h02E;
rommem[10378] <= 12'h02E;
rommem[10379] <= 12'h02E;
rommem[10380] <= 12'h02E;
rommem[10381] <= 12'h02E;
rommem[10382] <= 12'h02E;
rommem[10383] <= 12'h02E;
rommem[10384] <= 12'h02E;
rommem[10385] <= 12'h02E;
rommem[10386] <= 12'h02E;
rommem[10387] <= 12'h02E;
rommem[10388] <= 12'h02E;
rommem[10389] <= 12'h02E;
rommem[10390] <= 12'h02E;
rommem[10391] <= 12'h02E;
rommem[10392] <= 12'h02E;
rommem[10393] <= 12'h02E;
rommem[10394] <= 12'h02E;
rommem[10395] <= 12'h02E;
rommem[10396] <= 12'h02E;
rommem[10397] <= 12'h02E;
rommem[10398] <= 12'h02E;
rommem[10399] <= 12'h02E;
rommem[10400] <= 12'h02E;
rommem[10401] <= 12'h02E;
rommem[10402] <= 12'h02E;
rommem[10403] <= 12'h02E;
rommem[10404] <= 12'h02E;
rommem[10405] <= 12'h02E;
rommem[10406] <= 12'h02E;
rommem[10407] <= 12'h02E;
rommem[10408] <= 12'h02E;
rommem[10409] <= 12'h02E;
rommem[10410] <= 12'h02E;
rommem[10411] <= 12'h02E;
rommem[10412] <= 12'h02E;
rommem[10413] <= 12'h02E;
rommem[10414] <= 12'h02E;
rommem[10415] <= 12'h02E;
rommem[10416] <= 12'h02E;
rommem[10417] <= 12'h02E;
rommem[10418] <= 12'h02E;
rommem[10419] <= 12'h02E;
rommem[10420] <= 12'h02E;
rommem[10421] <= 12'h02E;
rommem[10422] <= 12'h02E;
rommem[10423] <= 12'h02E;
rommem[10424] <= 12'h02E;
rommem[10425] <= 12'h02E;
rommem[10426] <= 12'h02E;
rommem[10427] <= 12'h02E;
rommem[10428] <= 12'h02E;
rommem[10429] <= 12'h02E;
rommem[10430] <= 12'h02E;
rommem[10431] <= 12'h02E;
rommem[10432] <= 12'h02E;
rommem[10433] <= 12'h02E;
rommem[10434] <= 12'h02E;
rommem[10435] <= 12'h02E;
rommem[10436] <= 12'h02E;
rommem[10437] <= 12'h02E;
rommem[10438] <= 12'h02E;
rommem[10439] <= 12'h02E;
rommem[10440] <= 12'h02E;
rommem[10441] <= 12'h02E;
rommem[10442] <= 12'h02E;
rommem[10443] <= 12'h02E;
rommem[10444] <= 12'h02E;
rommem[10445] <= 12'h02E;
rommem[10446] <= 12'h02E;
rommem[10447] <= 12'h02E;
rommem[10448] <= 12'h02E;
rommem[10449] <= 12'h02E;
rommem[10450] <= 12'h02E;
rommem[10451] <= 12'h02E;
rommem[10452] <= 12'h02E;
rommem[10453] <= 12'h02E;
rommem[10454] <= 12'h02E;
rommem[10455] <= 12'h02E;
rommem[10456] <= 12'h02E;
rommem[10457] <= 12'h02E;
rommem[10458] <= 12'h02E;
rommem[10459] <= 12'h02E;
rommem[10460] <= 12'h02E;
rommem[10461] <= 12'h02E;
rommem[10462] <= 12'h02E;
rommem[10463] <= 12'h02E;
rommem[10464] <= 12'h02E;
rommem[10465] <= 12'h02E;
rommem[10466] <= 12'h02E;
rommem[10467] <= 12'h02E;
rommem[10468] <= 12'h02E;
rommem[10469] <= 12'h02E;
rommem[10470] <= 12'h02E;
rommem[10471] <= 12'h02E;
rommem[10472] <= 12'h02E;
rommem[10473] <= 12'h095;
rommem[10474] <= 12'h02E;
rommem[10475] <= 12'h093;
rommem[10476] <= 12'h094;
rommem[10477] <= 12'h02E;
rommem[10478] <= 12'h02E;
rommem[10479] <= 12'h02E;
rommem[10480] <= 12'h098;
rommem[10481] <= 12'h099;
rommem[10482] <= 12'h092;
rommem[10483] <= 12'h02E;
rommem[10484] <= 12'h091;
rommem[10485] <= 12'h090;
rommem[10486] <= 12'h02E;
rommem[10487] <= 12'h02E;
rommem[10488] <= 12'h02E;
rommem[10489] <= 12'h02E;
rommem[10490] <= 12'h097;
rommem[10491] <= 12'h02E;
rommem[10492] <= 12'h02E;
rommem[10493] <= 12'h096;
rommem[10494] <= 12'h02E;
rommem[10495] <= 12'h02E;
rommem[10496] <= 12'h034;
rommem[10497] <= 12'h010;
rommem[10498] <= 12'h08E;
rommem[10499] <= 12'h000;
rommem[10500] <= 12'h064;
rommem[10501] <= 12'h08D;
rommem[10502] <= 12'h05A;
rommem[10503] <= 12'h05D;
rommem[10504] <= 12'h02B;
rommem[10505] <= 12'h00B;
rommem[10506] <= 12'h08D;
rommem[10507] <= 12'h02D;
rommem[10508] <= 12'h030;
rommem[10509] <= 12'h1FF;
rommem[10510] <= 12'h026;
rommem[10511] <= 12'hFF5;
rommem[10512] <= 12'h0CC;
rommem[10513] <= 12'hFFF;
rommem[10514] <= 12'hFFF;
rommem[10515] <= 12'h035;
rommem[10516] <= 12'h004;
rommem[10516] <= 12'h090;
rommem[10517] <= 12'h08D;
rommem[10518] <= 12'hF82;
rommem[10519] <= 12'h08D;
rommem[10520] <= 12'hF86;
rommem[10521] <= 12'h08D;
rommem[10522] <= 12'hF65;
rommem[10523] <= 12'h039;
rommem[10524] <= 12'h0C6;
rommem[10525] <= 12'h0F2;
rommem[10526] <= 12'h08D;
rommem[10527] <= 12'hF79;
rommem[10528] <= 12'h08D;
rommem[10529] <= 12'hF7D;
rommem[10530] <= 12'h08D;
rommem[10531] <= 12'hF5C;
rommem[10532] <= 12'h0C5;
rommem[10533] <= 12'h080;
rommem[10534] <= 12'h026;
rommem[10535] <= 12'h014;
rommem[10536] <= 12'h0C1;
rommem[10537] <= 12'h0AB;
rommem[10538] <= 12'h026;
rommem[10539] <= 12'h010;
rommem[10540] <= 12'h08D;
rommem[10541] <= 12'hF52;
rommem[10542] <= 12'h0C5;
rommem[10543] <= 12'h080;
rommem[10544] <= 12'h026;
rommem[10545] <= 12'h00A;
rommem[10546] <= 12'h0C1;
rommem[10547] <= 12'h083;
rommem[10548] <= 12'h026;
rommem[10549] <= 12'h006;
rommem[10550] <= 12'h0CC;
rommem[10551] <= 12'h00A;
rommem[10552] <= 12'hB83;
rommem[10553] <= 12'h0DD;
rommem[10554] <= 12'h124;
rommem[10555] <= 12'h039;
rommem[10556] <= 12'h04F;
rommem[10557] <= 12'h05F;
rommem[10558] <= 12'h020;
rommem[10559] <= 12'hFF9;
rommem[10560] <= 12'h034;
rommem[10561] <= 12'h026;
rommem[10562] <= 12'h18E;
rommem[10563] <= 12'h000;
rommem[10564] <= 12'h005;
rommem[10565] <= 12'h00F;
rommem[10566] <= 12'h120;
rommem[10567] <= 12'h00F;
rommem[10568] <= 12'h121;
rommem[10569] <= 12'h08D;
rommem[10570] <= 12'hF6E;
rommem[10571] <= 12'h015;
rommem[10572] <= 12'h07F;
rommem[10573] <= 12'hFFF;
rommem[10574] <= 12'hE30;
rommem[10575] <= 12'h401;
rommem[10576] <= 12'h0C6;
rommem[10518] <= 12'h066;
rommem[10519] <= 12'h035;
rommem[10520] <= 12'h090;
rommem[10521] <= 12'h015;
rommem[10522] <= 12'h0F7;
rommem[10523] <= 12'hFFF;
rommem[10524] <= 12'hE30;
rommem[10525] <= 12'h400;
rommem[10526] <= 12'h039;
rommem[10527] <= 12'h034;
rommem[10528] <= 12'h010;
rommem[10529] <= 12'h08E;
rommem[10530] <= 12'h000;
rommem[10531] <= 12'h064;
rommem[10532] <= 12'h08D;
rommem[10533] <= 12'h03B;
rommem[10534] <= 12'h0C4;
rommem[10535] <= 12'h040;
rommem[10536] <= 12'h026;
rommem[10537] <= 12'h00B;
rommem[10538] <= 12'h08D;
rommem[10539] <= 12'h00D;
rommem[10540] <= 12'h030;
rommem[10541] <= 12'h1FF;
rommem[10542] <= 12'h026;
rommem[10543] <= 12'hFF4;
rommem[10544] <= 12'h0CC;
rommem[10545] <= 12'hFFF;
rommem[10546] <= 12'hFFF;
rommem[10547] <= 12'h035;
rommem[10548] <= 12'h090;
rommem[10549] <= 12'h04F;
rommem[10550] <= 12'h05F;
rommem[10551] <= 12'h035;
rommem[10552] <= 12'h090;
rommem[10553] <= 12'h034;
rommem[10554] <= 12'h006;
rommem[10555] <= 12'h015;
rommem[10556] <= 12'h0B6;
rommem[10557] <= 12'hFFF;
rommem[10558] <= 12'hFFF;
rommem[10559] <= 12'hFE7;
rommem[10560] <= 12'h01F;
rommem[10561] <= 12'h089;
rommem[10562] <= 12'h015;
rommem[10563] <= 12'h0F0;
rommem[10564] <= 12'hFFF;
rommem[10565] <= 12'hFFF;
rommem[10566] <= 12'hFE7;
rommem[10567] <= 12'h0C1;
rommem[10568] <= 12'hFFA;
rommem[10569] <= 12'h022;
rommem[10570] <= 12'hFF5;
rommem[10571] <= 12'h035;
rommem[10572] <= 12'h086;
rommem[10573] <= 12'h034;
rommem[10574] <= 12'h006;
rommem[10575] <= 12'h015;
rommem[10576] <= 12'h0B6;
rommem[10577] <= 12'hFFF;
rommem[10578] <= 12'h015;
rommem[10579] <= 12'h0F7;
rommem[10580] <= 12'hFFF;
rommem[10581] <= 12'hE30;
rommem[10582] <= 12'h401;
rommem[10583] <= 12'h08D;
rommem[10584] <= 12'hF40;
rommem[10585] <= 12'h08D;
rommem[10586] <= 12'hF44;
rommem[10587] <= 12'h08D;
rommem[10588] <= 12'hF23;
rommem[10589] <= 12'h0C1;
rommem[10590] <= 12'h0FA;
rommem[10591] <= 12'h026;
rommem[10592] <= 12'h021;
rommem[10593] <= 12'h08D;
rommem[10594] <= 12'hF1D;
rommem[10595] <= 12'h0C1;
rommem[10596] <= 12'h0FC;
rommem[10597] <= 12'h027;
rommem[10598] <= 12'h01B;
rommem[10599] <= 12'h0C1;
rommem[10600] <= 12'h0AA;
rommem[10601] <= 12'h026;
rommem[10602] <= 12'h017;
rommem[10603] <= 12'h0C6;
rommem[10604] <= 12'h0F0;
rommem[10605] <= 12'h015;
rommem[10606] <= 12'h0F7;
rommem[10607] <= 12'hFFF;
rommem[10608] <= 12'hE60;
rommem[10609] <= 12'h001;
rommem[10578] <= 12'hFFF;
rommem[10579] <= 12'hFE7;
rommem[10580] <= 12'h01F;
rommem[10581] <= 12'h089;
rommem[10582] <= 12'h015;
rommem[10583] <= 12'h0F0;
rommem[10584] <= 12'hFFF;
rommem[10585] <= 12'hFFF;
rommem[10586] <= 12'hFE7;
rommem[10587] <= 12'h0C1;
rommem[10588] <= 12'hF00;
rommem[10589] <= 12'h022;
rommem[10590] <= 12'hFF5;
rommem[10591] <= 12'h035;
rommem[10592] <= 12'h086;
rommem[10593] <= 12'h015;
rommem[10594] <= 12'h0F6;
rommem[10595] <= 12'hFFF;
rommem[10596] <= 12'hE30;
rommem[10597] <= 12'h401;
rommem[10598] <= 12'h0C5;
rommem[10599] <= 12'h080;
rommem[10600] <= 12'h026;
rommem[10601] <= 12'h00E;
rommem[10602] <= 12'h0C5;
rommem[10603] <= 12'h001;
rommem[10604] <= 12'h026;
rommem[10605] <= 12'h002;
rommem[10606] <= 12'h04F;
rommem[10607] <= 12'h039;
rommem[10608] <= 12'h0C6;
rommem[10609] <= 12'h0FE;
rommem[10610] <= 12'h08D;
rommem[10611] <= 12'hF25;
rommem[10611] <= 12'hFA5;
rommem[10612] <= 12'h08D;
rommem[10613] <= 12'hF29;
rommem[10614] <= 12'h05D;
rommem[10615] <= 12'h02B;
rommem[10616] <= 12'h009;
rommem[10617] <= 12'h08D;
rommem[10618] <= 12'hF05;
rommem[10619] <= 12'h04D;
rommem[10620] <= 12'h02B;
rommem[10621] <= 12'h004;
rommem[10622] <= 12'h0C1;
rommem[10623] <= 12'h0FA;
rommem[10624] <= 12'h027;
rommem[10625] <= 12'h00C;
rommem[10626] <= 12'h031;
rommem[10627] <= 12'h3FF;
rommem[10628] <= 12'h026;
rommem[10629] <= 12'hFC3;
rommem[10630] <= 12'h0CC;
rommem[10631] <= 12'hFFE;
rommem[10632] <= 12'h9AE;
rommem[10633] <= 12'h017;
rommem[10634] <= 12'hFFF;
rommem[10635] <= 12'hA4A;
rommem[10636] <= 12'h020;
rommem[10637] <= 12'h014;
rommem[10638] <= 12'h0C6;
rommem[10639] <= 12'h002;
rommem[10640] <= 12'h08D;
rommem[10641] <= 12'hF07;
rommem[10642] <= 12'h08D;
rommem[10643] <= 12'hF0B;
rommem[10644] <= 12'h05D;
rommem[10645] <= 12'h02B;
rommem[10646] <= 12'hFEB;
rommem[10613] <= 12'hFA9;
rommem[10614] <= 12'h020;
rommem[10615] <= 12'hFE9;
rommem[10616] <= 12'h0CA;
rommem[10617] <= 12'hF00;
rommem[10618] <= 12'h086;
rommem[10619] <= 12'hFFF;
rommem[10620] <= 12'h039;
rommem[10621] <= 12'h04F;
rommem[10622] <= 12'h015;
rommem[10623] <= 12'h0F6;
rommem[10624] <= 12'hFFF;
rommem[10625] <= 12'hE30;
rommem[10626] <= 12'h400;
rommem[10627] <= 12'h015;
rommem[10628] <= 12'h07F;
rommem[10629] <= 12'hFFF;
rommem[10630] <= 12'hE30;
rommem[10631] <= 12'h401;
rommem[10632] <= 12'h039;
rommem[10633] <= 12'h034;
rommem[10634] <= 12'h004;
rommem[10635] <= 12'h0C6;
rommem[10636] <= 12'h0ED;
rommem[10637] <= 12'h08D;
rommem[10638] <= 12'hF8A;
rommem[10639] <= 12'h08D;
rommem[10640] <= 12'hF8E;
rommem[10641] <= 12'h08D;
rommem[10642] <= 12'hF6D;
rommem[10643] <= 12'h035;
rommem[10644] <= 12'h004;
rommem[10645] <= 12'h08D;
rommem[10646] <= 12'hF82;
rommem[10647] <= 12'h08D;
rommem[10648] <= 12'hEE7;
rommem[10649] <= 12'h04D;
rommem[10650] <= 12'h02B;
rommem[10651] <= 12'hFE6;
rommem[10652] <= 12'h0C1;
rommem[10653] <= 12'h0FA;
rommem[10654] <= 12'h026;
rommem[10655] <= 12'hFE2;
rommem[10648] <= 12'hF86;
rommem[10649] <= 12'h08D;
rommem[10650] <= 12'hF65;
rommem[10651] <= 12'h039;
rommem[10652] <= 12'h0C6;
rommem[10653] <= 12'h0F2;
rommem[10654] <= 12'h08D;
rommem[10655] <= 12'hF79;
rommem[10656] <= 12'h08D;
rommem[10657] <= 12'hF7A;
rommem[10658] <= 12'h0C6;
rommem[10659] <= 12'h007;
rommem[10660] <= 12'h08D;
rommem[10661] <= 12'hF63;
rommem[10662] <= 12'h08D;
rommem[10663] <= 12'hF25;
rommem[10664] <= 12'h0C6;
rommem[10665] <= 12'h000;
rommem[10666] <= 12'h08D;
rommem[10667] <= 12'hF5D;
rommem[10668] <= 12'h035;
rommem[10669] <= 12'h0A6;
rommem[10670] <= 12'h04B;
rommem[10671] <= 12'h065;
rommem[10672] <= 12'h079;
rommem[10673] <= 12'h062;
rommem[10674] <= 12'h06F;
rommem[10675] <= 12'h061;
rommem[10676] <= 12'h072;
rommem[10677] <= 12'h064;
rommem[10678] <= 12'h020;
rommem[10679] <= 12'h065;
rommem[10680] <= 12'h072;
rommem[10681] <= 12'h072;
rommem[10682] <= 12'h06F;
rommem[10683] <= 12'h072;
rommem[10684] <= 12'h000;
rommem[10685] <= 12'h04F;
rommem[10686] <= 12'h0E6;
rommem[10687] <= 12'hA08;
rommem[10688] <= 12'h128;
rommem[10689] <= 12'h0E0;
rommem[10690] <= 12'hA08;
rommem[10691] <= 12'h127;
rommem[10692] <= 12'h02C;
rommem[10693] <= 12'h008;
rommem[10694] <= 12'h0C6;
rommem[10695] <= 12'h040;
rommem[10696] <= 12'h0E0;
rommem[10697] <= 12'hA08;
rommem[10698] <= 12'h127;
rommem[10699] <= 12'h0EB;
rommem[10700] <= 12'hA08;
rommem[10701] <= 12'h128;
rommem[10702] <= 12'h039;
rommem[10703] <= 12'h015;
rommem[10704] <= 12'h0B6;
rommem[10657] <= 12'hF7D;
rommem[10658] <= 12'h08D;
rommem[10659] <= 12'hF5C;
rommem[10660] <= 12'h0C5;
rommem[10661] <= 12'h080;
rommem[10662] <= 12'h026;
rommem[10663] <= 12'h014;
rommem[10664] <= 12'h0C1;
rommem[10665] <= 12'h0AB;
rommem[10666] <= 12'h026;
rommem[10667] <= 12'h010;
rommem[10668] <= 12'h08D;
rommem[10669] <= 12'hF52;
rommem[10670] <= 12'h0C5;
rommem[10671] <= 12'h080;
rommem[10672] <= 12'h026;
rommem[10673] <= 12'h00A;
rommem[10674] <= 12'h0C1;
rommem[10675] <= 12'h083;
rommem[10676] <= 12'h026;
rommem[10677] <= 12'h006;
rommem[10678] <= 12'h0CC;
rommem[10679] <= 12'h00A;
rommem[10680] <= 12'hB83;
rommem[10681] <= 12'h0DD;
rommem[10682] <= 12'h124;
rommem[10683] <= 12'h039;
rommem[10684] <= 12'h04F;
rommem[10685] <= 12'h05F;
rommem[10686] <= 12'h020;
rommem[10687] <= 12'hFF9;
rommem[10688] <= 12'h034;
rommem[10689] <= 12'h026;
rommem[10690] <= 12'h18E;
rommem[10691] <= 12'h000;
rommem[10692] <= 12'h005;
rommem[10693] <= 12'h00F;
rommem[10694] <= 12'h120;
rommem[10695] <= 12'h00F;
rommem[10696] <= 12'h121;
rommem[10697] <= 12'h08D;
rommem[10698] <= 12'hF6E;
rommem[10699] <= 12'h015;
rommem[10700] <= 12'h07F;
rommem[10701] <= 12'hFFF;
rommem[10702] <= 12'hE30;
rommem[10703] <= 12'h401;
rommem[10704] <= 12'h0C6;
rommem[10705] <= 12'hFFF;
rommem[10706] <= 12'hE30;
rommem[10707] <= 12'h401;
rommem[10708] <= 12'h085;
rommem[10709] <= 12'h080;
rommem[10710] <= 12'h027;
rommem[10711] <= 12'h034;
rommem[10712] <= 12'h015;
rommem[10713] <= 12'h0F6;
rommem[10714] <= 12'hFFF;
rommem[10715] <= 12'hE30;
rommem[10716] <= 12'h400;
rommem[10717] <= 12'h015;
rommem[10718] <= 12'h07F;
rommem[10719] <= 12'hFFF;
rommem[10720] <= 12'hE30;
rommem[10721] <= 12'h401;
rommem[10722] <= 12'h034;
rommem[10723] <= 12'h004;
rommem[10724] <= 12'h0B6;
rommem[10725] <= 12'hFFC;
rommem[10726] <= 12'h010;
rommem[10727] <= 12'h05F;
rommem[10728] <= 12'h048;
rommem[10729] <= 12'h048;
rommem[10730] <= 12'h048;
rommem[10731] <= 12'h048;
rommem[10732] <= 12'h08A;
rommem[10733] <= 12'hC00;
rommem[10734] <= 12'h01F;
rommem[10735] <= 12'h002;
rommem[10736] <= 12'h08D;
rommem[10737] <= 12'hFCB;
rommem[10738] <= 12'h0C1;
rommem[10739] <= 12'h040;
rommem[10740] <= 12'h024;
rommem[10741] <= 12'h017;
rommem[10742] <= 12'h01F;
rommem[10743] <= 12'h021;
rommem[10744] <= 12'h0E6;
rommem[10745] <= 12'hA08;
rommem[10746] <= 12'h128;
rommem[10747] <= 12'h035;
rommem[10748] <= 12'h002;
rommem[10749] <= 12'h030;
rommem[10750] <= 12'h040;
rommem[10751] <= 12'h0A7;
rommem[10752] <= 12'h845;
rommem[10753] <= 12'h05C;
rommem[10754] <= 12'h0C4;
rommem[10755] <= 12'h03F;
rommem[10756] <= 12'h0E7;
rommem[10757] <= 12'hA08;
rommem[10758] <= 12'h128;
rommem[10759] <= 12'h086;
rommem[10760] <= 12'h01C;
rommem[10761] <= 12'h0B7;
rommem[10762] <= 12'hFFC;
rommem[10763] <= 12'h011;
rommem[10764] <= 12'h039;
rommem[10765] <= 12'h032;
rommem[10766] <= 12'h601;
rommem[10767] <= 12'h039;
rommem[10768] <= 12'h020;
rommem[10769] <= 12'hECF;
rommem[10770] <= 12'h034;
rommem[10771] <= 12'h030;
rommem[10772] <= 12'h0D7;
rommem[10773] <= 12'h126;
rommem[10774] <= 12'h0D6;
rommem[10775] <= 12'h126;
rommem[10776] <= 12'h034;
rommem[10777] <= 12'h004;
rommem[10778] <= 12'h0C5;
rommem[10779] <= 12'h001;
rommem[10780] <= 12'h027;
rommem[10781] <= 12'h01A;
rommem[10782] <= 12'h015;
rommem[10783] <= 12'h0B6;
rommem[10784] <= 12'hFFF;
rommem[10785] <= 12'hFFF;
rommem[10786] <= 12'hFE0;
rommem[10787] <= 12'h05F;
rommem[10788] <= 12'h048;
rommem[10789] <= 12'h048;
rommem[10790] <= 12'h048;
rommem[10791] <= 12'h048;
rommem[10792] <= 12'h08A;
rommem[10793] <= 12'hC00;
rommem[10794] <= 12'h01F;
rommem[10795] <= 12'h002;
rommem[10796] <= 12'h08D;
rommem[10797] <= 12'hF8F;
rommem[10798] <= 12'h05D;
rommem[10799] <= 12'h035;
rommem[10800] <= 12'h004;
rommem[10801] <= 12'h026;
rommem[10802] <= 12'h018;
rommem[10803] <= 12'h05D;
rommem[10804] <= 12'h02B;
rommem[10805] <= 12'hFE0;
rommem[10706] <= 12'h015;
rommem[10707] <= 12'h0F7;
rommem[10708] <= 12'hFFF;
rommem[10709] <= 12'hE30;
rommem[10710] <= 12'h401;
rommem[10711] <= 12'h08D;
rommem[10712] <= 12'hF40;
rommem[10713] <= 12'h08D;
rommem[10714] <= 12'hF44;
rommem[10715] <= 12'h08D;
rommem[10716] <= 12'hF23;
rommem[10717] <= 12'h0C1;
rommem[10718] <= 12'h0FA;
rommem[10719] <= 12'h026;
rommem[10720] <= 12'h021;
rommem[10721] <= 12'h08D;
rommem[10722] <= 12'hF1D;
rommem[10723] <= 12'h0C1;
rommem[10724] <= 12'h0FC;
rommem[10725] <= 12'h027;
rommem[10726] <= 12'h01B;
rommem[10727] <= 12'h0C1;
rommem[10728] <= 12'h0AA;
rommem[10729] <= 12'h026;
rommem[10730] <= 12'h017;
rommem[10731] <= 12'h0C6;
rommem[10732] <= 12'h0F0;
rommem[10733] <= 12'h015;
rommem[10734] <= 12'h0F7;
rommem[10735] <= 12'hFFF;
rommem[10736] <= 12'hE60;
rommem[10737] <= 12'h001;
rommem[10738] <= 12'h08D;
rommem[10739] <= 12'hF25;
rommem[10740] <= 12'h08D;
rommem[10741] <= 12'hF29;
rommem[10742] <= 12'h05D;
rommem[10743] <= 12'h02B;
rommem[10744] <= 12'h009;
rommem[10745] <= 12'h08D;
rommem[10746] <= 12'hF05;
rommem[10747] <= 12'h04D;
rommem[10748] <= 12'h02B;
rommem[10749] <= 12'h004;
rommem[10750] <= 12'h0C1;
rommem[10751] <= 12'h0FA;
rommem[10752] <= 12'h027;
rommem[10753] <= 12'h00C;
rommem[10754] <= 12'h031;
rommem[10755] <= 12'h3FF;
rommem[10756] <= 12'h026;
rommem[10757] <= 12'hFC3;
rommem[10758] <= 12'h0CC;
rommem[10759] <= 12'hFFE;
rommem[10760] <= 12'hA2E;
rommem[10761] <= 12'h017;
rommem[10762] <= 12'hFFF;
rommem[10763] <= 12'h9EE;
rommem[10764] <= 12'h020;
rommem[10765] <= 12'h014;
rommem[10766] <= 12'h0C6;
rommem[10767] <= 12'h002;
rommem[10768] <= 12'h08D;
rommem[10769] <= 12'hF07;
rommem[10770] <= 12'h08D;
rommem[10771] <= 12'hF0B;
rommem[10772] <= 12'h05D;
rommem[10773] <= 12'h02B;
rommem[10774] <= 12'hFEB;
rommem[10775] <= 12'h08D;
rommem[10776] <= 12'hEE7;
rommem[10777] <= 12'h04D;
rommem[10778] <= 12'h02B;
rommem[10779] <= 12'hFE6;
rommem[10780] <= 12'h0C1;
rommem[10781] <= 12'h0FA;
rommem[10782] <= 12'h026;
rommem[10783] <= 12'hFE2;
rommem[10784] <= 12'h08D;
rommem[10785] <= 12'hF7A;
rommem[10786] <= 12'h0C6;
rommem[10787] <= 12'h007;
rommem[10788] <= 12'h08D;
rommem[10789] <= 12'hF63;
rommem[10790] <= 12'h08D;
rommem[10791] <= 12'hF25;
rommem[10792] <= 12'h0C6;
rommem[10793] <= 12'h000;
rommem[10794] <= 12'h08D;
rommem[10795] <= 12'hF5D;
rommem[10796] <= 12'h035;
rommem[10797] <= 12'h0A6;
rommem[10798] <= 12'h04B;
rommem[10799] <= 12'h065;
rommem[10800] <= 12'h079;
rommem[10801] <= 12'h062;
rommem[10802] <= 12'h06F;
rommem[10803] <= 12'h061;
rommem[10804] <= 12'h072;
rommem[10805] <= 12'h064;
rommem[10806] <= 12'h020;
rommem[10807] <= 12'h00E;
rommem[10808] <= 12'h18E;
rommem[10809] <= 12'h000;
rommem[10810] <= 12'h000;
rommem[10811] <= 12'h08D;
rommem[10812] <= 12'hEA4;
rommem[10813] <= 12'h0C4;
rommem[10814] <= 12'h080;
rommem[10815] <= 12'h035;
rommem[10816] <= 12'h004;
rommem[10817] <= 12'h026;
rommem[10818] <= 12'h008;
rommem[10819] <= 12'h05D;
rommem[10820] <= 12'h02B;
rommem[10821] <= 12'hFD0;
rommem[10822] <= 12'h0CC;
rommem[10823] <= 12'hFFF;
rommem[10824] <= 12'hFFF;
rommem[10825] <= 12'h035;
rommem[10826] <= 12'h0B0;
rommem[10827] <= 12'h18C;
rommem[10828] <= 12'h000;
rommem[10829] <= 12'h000;
rommem[10830] <= 12'h026;
rommem[10831] <= 12'h004;
rommem[10832] <= 12'h08D;
rommem[10833] <= 12'hEAB;
rommem[10834] <= 12'h020;
rommem[10835] <= 12'h011;
rommem[10836] <= 12'h01F;
rommem[10837] <= 12'h021;
rommem[10838] <= 12'h030;
rommem[10839] <= 12'h040;
rommem[10840] <= 12'h0E6;
rommem[10841] <= 12'hA08;
rommem[10842] <= 12'h127;
rommem[10843] <= 12'h0A6;
rommem[10844] <= 12'hA0D;
rommem[10845] <= 12'h05C;
rommem[10846] <= 12'h0C4;
rommem[10847] <= 12'h03F;
rommem[10848] <= 12'h0E7;
rommem[10849] <= 12'hA08;
rommem[10850] <= 12'h127;
rommem[10851] <= 12'h01F;
rommem[10852] <= 12'h089;
rommem[10853] <= 12'h08E;
rommem[10854] <= 12'h000;
rommem[10855] <= 12'h014;
rommem[10856] <= 12'h030;
rommem[10857] <= 12'h1FF;
rommem[10858] <= 12'h026;
rommem[10859] <= 12'hFFC;
rommem[10860] <= 12'h0C1;
rommem[10861] <= 12'h0F0;
rommem[10862] <= 12'h026;
rommem[10863] <= 12'h004;
rommem[10864] <= 12'h0D7;
rommem[10865] <= 12'h120;
rommem[10866] <= 12'h020;
rommem[10867] <= 12'hFA2;
rommem[10868] <= 12'h0C1;
rommem[10869] <= 12'h0E0;
rommem[10870] <= 12'h026;
rommem[10871] <= 12'h008;
rommem[10872] <= 12'h096;
rommem[10873] <= 12'h121;
rommem[10874] <= 12'h08A;
rommem[10875] <= 12'h800;
rommem[10876] <= 12'h097;
rommem[10877] <= 12'h121;
rommem[10878] <= 12'h020;
rommem[10879] <= 12'hF96;
rommem[10880] <= 12'h0C1;
rommem[10881] <= 12'h014;
rommem[10882] <= 12'h026;
rommem[10883] <= 12'h016;
rommem[10884] <= 12'h00D;
rommem[10885] <= 12'h120;
rommem[10886] <= 12'h026;
rommem[10887] <= 12'h008;
rommem[10888] <= 12'h096;
rommem[10889] <= 12'h121;
rommem[10890] <= 12'h08A;
rommem[10891] <= 12'h004;
rommem[10892] <= 12'h097;
rommem[10893] <= 12'h121;
rommem[10894] <= 12'h020;
rommem[10895] <= 12'h006;
rommem[10896] <= 12'h096;
rommem[10897] <= 12'h121;
rommem[10898] <= 12'h084;
rommem[10899] <= 12'hFFB;
rommem[10900] <= 12'h097;
rommem[10901] <= 12'h121;
rommem[10902] <= 12'h00F;
rommem[10903] <= 12'h120;
rommem[10904] <= 12'h020;
rommem[10905] <= 12'hF7C;
rommem[10906] <= 12'h0C1;
rommem[10907] <= 12'h059;
rommem[10908] <= 12'h026;
rommem[10909] <= 12'h016;
rommem[10910] <= 12'h00D;
rommem[10911] <= 12'h120;
rommem[10912] <= 12'h026;
rommem[10913] <= 12'h008;
rommem[10914] <= 12'h096;
rommem[10915] <= 12'h121;
rommem[10916] <= 12'h08A;
rommem[10917] <= 12'h001;
rommem[10918] <= 12'h097;
rommem[10919] <= 12'h121;
rommem[10920] <= 12'h020;
rommem[10921] <= 12'h006;
rommem[10922] <= 12'h096;
rommem[10923] <= 12'h121;
rommem[10924] <= 12'h084;
rommem[10925] <= 12'hFFE;
rommem[10926] <= 12'h097;
rommem[10927] <= 12'h121;
rommem[10928] <= 12'h00F;
rommem[10929] <= 12'h120;
rommem[10930] <= 12'h020;
rommem[10931] <= 12'hF62;
rommem[10932] <= 12'h0C1;
rommem[10933] <= 12'h077;
rommem[10934] <= 12'h026;
rommem[10935] <= 12'h013;
rommem[10936] <= 12'h096;
rommem[10937] <= 12'h121;
rommem[10938] <= 12'h088;
rommem[10939] <= 12'h010;
rommem[10940] <= 12'h097;
rommem[10941] <= 12'h121;
rommem[10942] <= 12'h096;
rommem[10943] <= 12'h122;
rommem[10944] <= 12'h088;
rommem[10945] <= 12'h002;
rommem[10946] <= 12'h097;
rommem[10947] <= 12'h122;
rommem[10948] <= 12'h01F;
rommem[10949] <= 12'h089;
rommem[10950] <= 12'h04F;
rommem[10951] <= 12'h08D;
rommem[10952] <= 12'hE40;
rommem[10953] <= 12'h020;
rommem[10954] <= 12'hF4B;
rommem[10955] <= 12'h0C1;
rommem[10956] <= 12'h058;
rommem[10957] <= 12'h026;
rommem[10958] <= 12'h013;
rommem[10959] <= 12'h096;
rommem[10960] <= 12'h121;
rommem[10961] <= 12'h088;
rommem[10807] <= 12'h065;
rommem[10808] <= 12'h072;
rommem[10809] <= 12'h072;
rommem[10810] <= 12'h06F;
rommem[10811] <= 12'h072;
rommem[10812] <= 12'h000;
rommem[10813] <= 12'h04F;
rommem[10814] <= 12'h0E6;
rommem[10815] <= 12'hA08;
rommem[10816] <= 12'h128;
rommem[10817] <= 12'h0E0;
rommem[10818] <= 12'hA08;
rommem[10819] <= 12'h127;
rommem[10820] <= 12'h02C;
rommem[10821] <= 12'h008;
rommem[10822] <= 12'h0C6;
rommem[10823] <= 12'h040;
rommem[10824] <= 12'h0E0;
rommem[10825] <= 12'hA08;
rommem[10826] <= 12'h127;
rommem[10827] <= 12'h0EB;
rommem[10828] <= 12'hA08;
rommem[10829] <= 12'h128;
rommem[10830] <= 12'h039;
rommem[10831] <= 12'h015;
rommem[10832] <= 12'h0B6;
rommem[10833] <= 12'hFFF;
rommem[10834] <= 12'hE30;
rommem[10835] <= 12'h401;
rommem[10836] <= 12'h085;
rommem[10837] <= 12'h080;
rommem[10838] <= 12'h027;
rommem[10839] <= 12'h034;
rommem[10840] <= 12'h015;
rommem[10841] <= 12'h0F6;
rommem[10842] <= 12'hFFF;
rommem[10843] <= 12'hE30;
rommem[10844] <= 12'h400;
rommem[10845] <= 12'h015;
rommem[10846] <= 12'h07F;
rommem[10847] <= 12'hFFF;
rommem[10848] <= 12'hE30;
rommem[10849] <= 12'h401;
rommem[10850] <= 12'h034;
rommem[10851] <= 12'h004;
rommem[10852] <= 12'h0B6;
rommem[10853] <= 12'hFFC;
rommem[10854] <= 12'h010;
rommem[10855] <= 12'h05F;
rommem[10856] <= 12'h048;
rommem[10857] <= 12'h048;
rommem[10858] <= 12'h048;
rommem[10859] <= 12'h048;
rommem[10860] <= 12'h08A;
rommem[10861] <= 12'hC00;
rommem[10862] <= 12'h01F;
rommem[10863] <= 12'h002;
rommem[10864] <= 12'h08D;
rommem[10865] <= 12'hFCB;
rommem[10866] <= 12'h0C1;
rommem[10867] <= 12'h040;
rommem[10868] <= 12'h024;
rommem[10869] <= 12'h017;
rommem[10870] <= 12'h01F;
rommem[10871] <= 12'h021;
rommem[10872] <= 12'h0E6;
rommem[10873] <= 12'hA08;
rommem[10874] <= 12'h128;
rommem[10875] <= 12'h035;
rommem[10876] <= 12'h002;
rommem[10877] <= 12'h030;
rommem[10878] <= 12'h040;
rommem[10879] <= 12'h0A7;
rommem[10880] <= 12'h845;
rommem[10881] <= 12'h05C;
rommem[10882] <= 12'h0C4;
rommem[10883] <= 12'h03F;
rommem[10884] <= 12'h0E7;
rommem[10885] <= 12'hA08;
rommem[10886] <= 12'h128;
rommem[10887] <= 12'h086;
rommem[10888] <= 12'h01C;
rommem[10889] <= 12'h0B7;
rommem[10890] <= 12'hFFC;
rommem[10891] <= 12'h011;
rommem[10892] <= 12'h039;
rommem[10893] <= 12'h032;
rommem[10894] <= 12'h601;
rommem[10895] <= 12'h039;
rommem[10896] <= 12'h020;
rommem[10897] <= 12'hECF;
rommem[10898] <= 12'h034;
rommem[10899] <= 12'h030;
rommem[10900] <= 12'h0D7;
rommem[10901] <= 12'h126;
rommem[10902] <= 12'h0D6;
rommem[10903] <= 12'h126;
rommem[10904] <= 12'h034;
rommem[10905] <= 12'h004;
rommem[10906] <= 12'h0C5;
rommem[10907] <= 12'h001;
rommem[10908] <= 12'h027;
rommem[10909] <= 12'h01A;
rommem[10910] <= 12'h015;
rommem[10911] <= 12'h0B6;
rommem[10912] <= 12'hFFF;
rommem[10913] <= 12'hFFF;
rommem[10914] <= 12'hFE0;
rommem[10915] <= 12'h05F;
rommem[10916] <= 12'h048;
rommem[10917] <= 12'h048;
rommem[10918] <= 12'h048;
rommem[10919] <= 12'h048;
rommem[10920] <= 12'h08A;
rommem[10921] <= 12'hC00;
rommem[10922] <= 12'h01F;
rommem[10923] <= 12'h002;
rommem[10924] <= 12'h08D;
rommem[10925] <= 12'hF8F;
rommem[10926] <= 12'h05D;
rommem[10927] <= 12'h035;
rommem[10928] <= 12'h004;
rommem[10929] <= 12'h026;
rommem[10930] <= 12'h018;
rommem[10931] <= 12'h05D;
rommem[10932] <= 12'h02B;
rommem[10933] <= 12'hFE0;
rommem[10934] <= 12'h020;
rommem[10935] <= 12'h00E;
rommem[10936] <= 12'h18E;
rommem[10937] <= 12'h000;
rommem[10938] <= 12'h000;
rommem[10939] <= 12'h08D;
rommem[10940] <= 12'hEA4;
rommem[10941] <= 12'h0C4;
rommem[10942] <= 12'h080;
rommem[10943] <= 12'h035;
rommem[10944] <= 12'h004;
rommem[10945] <= 12'h026;
rommem[10946] <= 12'h008;
rommem[10947] <= 12'h05D;
rommem[10948] <= 12'h02B;
rommem[10949] <= 12'hFD0;
rommem[10950] <= 12'h0CC;
rommem[10951] <= 12'hFFF;
rommem[10952] <= 12'hFFF;
rommem[10953] <= 12'h035;
rommem[10954] <= 12'h0B0;
rommem[10955] <= 12'h18C;
rommem[10956] <= 12'h000;
rommem[10957] <= 12'h000;
rommem[10958] <= 12'h026;
rommem[10959] <= 12'h004;
rommem[10960] <= 12'h08D;
rommem[10961] <= 12'hEAB;
rommem[10962] <= 12'h020;
rommem[10963] <= 12'h097;
rommem[10964] <= 12'h121;
rommem[10965] <= 12'h096;
rommem[10966] <= 12'h122;
rommem[10967] <= 12'h088;
rommem[10968] <= 12'h004;
rommem[10969] <= 12'h097;
rommem[10970] <= 12'h122;
rommem[10971] <= 12'h01F;
rommem[10972] <= 12'h089;
rommem[10973] <= 12'h04F;
rommem[10974] <= 12'h08D;
rommem[10975] <= 12'hE29;
rommem[10976] <= 12'h020;
rommem[10977] <= 12'hF34;
rommem[10978] <= 12'h0C1;
rommem[10979] <= 12'h07E;
rommem[10980] <= 12'h026;
rommem[10981] <= 12'h013;
rommem[10982] <= 12'h096;
rommem[10983] <= 12'h121;
rommem[10984] <= 12'h088;
rommem[10985] <= 12'h040;
rommem[10986] <= 12'h097;
rommem[10987] <= 12'h121;
rommem[10988] <= 12'h096;
rommem[10989] <= 12'h122;
rommem[10990] <= 12'h088;
rommem[10991] <= 12'h001;
rommem[10992] <= 12'h097;
rommem[10993] <= 12'h122;
rommem[10994] <= 12'h01F;
rommem[10995] <= 12'h089;
rommem[10996] <= 12'h04F;
rommem[10997] <= 12'h08D;
rommem[10998] <= 12'hE12;
rommem[10999] <= 12'h020;
rommem[11000] <= 12'hF1D;
rommem[11001] <= 12'h0C1;
rommem[11002] <= 12'h011;
rommem[11003] <= 12'h026;
rommem[11004] <= 12'h016;
rommem[11005] <= 12'h00D;
rommem[11006] <= 12'h120;
rommem[11007] <= 12'h026;
rommem[11008] <= 12'h008;
rommem[11009] <= 12'h096;
rommem[11010] <= 12'h121;
rommem[11011] <= 12'h08A;
rommem[11012] <= 12'h002;
rommem[11013] <= 12'h097;
rommem[11014] <= 12'h121;
rommem[11015] <= 12'h020;
rommem[11016] <= 12'h006;
rommem[11017] <= 12'h096;
rommem[11018] <= 12'h121;
rommem[11019] <= 12'h084;
rommem[11020] <= 12'hFFD;
rommem[11021] <= 12'h097;
rommem[11022] <= 12'h121;
rommem[11023] <= 12'h00F;
rommem[11024] <= 12'h120;
rommem[11025] <= 12'h020;
rommem[11026] <= 12'hF03;
rommem[11027] <= 12'h00D;
rommem[11028] <= 12'h120;
rommem[11029] <= 12'h027;
rommem[11030] <= 12'h004;
rommem[11031] <= 12'h00F;
rommem[11032] <= 12'h120;
rommem[11033] <= 12'h020;
rommem[11034] <= 12'hEFB;
rommem[11035] <= 12'h096;
rommem[11036] <= 12'h121;
rommem[11037] <= 12'h084;
rommem[11038] <= 12'h006;
rommem[11039] <= 12'h081;
rommem[11040] <= 12'h006;
rommem[11041] <= 12'h026;
rommem[11042] <= 12'h008;
rommem[11043] <= 12'h0C1;
rommem[11044] <= 12'h071;
rommem[11045] <= 12'h026;
rommem[11046] <= 12'h004;
rommem[11047] <= 12'h06E;
rommem[11048] <= 12'h90F;
rommem[11049] <= 12'hFFF;
rommem[11050] <= 12'hFFC;
rommem[11051] <= 12'h00D;
rommem[11052] <= 12'h121;
rommem[11053] <= 12'h02A;
rommem[11054] <= 12'h00B;
rommem[11055] <= 12'h096;
rommem[11056] <= 12'h121;
rommem[11057] <= 12'h084;
rommem[11058] <= 12'h7FF;
rommem[11059] <= 12'h097;
rommem[11060] <= 12'h121;
rommem[11061] <= 12'h08E;
rommem[11062] <= 12'hFFE;
rommem[11063] <= 12'h800;
rommem[11064] <= 12'h020;
rommem[11065] <= 12'h017;
rommem[11066] <= 12'h096;
rommem[11067] <= 12'h121;
rommem[11068] <= 12'h085;
rommem[11069] <= 12'h004;
rommem[11070] <= 12'h027;
rommem[11071] <= 12'h005;
rommem[11072] <= 12'h08E;
rommem[11073] <= 12'hFFE;
rommem[11074] <= 12'h780;
rommem[11075] <= 12'h020;
rommem[11076] <= 12'h00C;
rommem[11077] <= 12'h085;
rommem[11078] <= 12'h001;
rommem[11079] <= 12'h027;
rommem[11080] <= 12'h005;
rommem[11081] <= 12'h08E;
rommem[11082] <= 12'hFFE;
rommem[11083] <= 12'h680;
rommem[11084] <= 12'h020;
rommem[11085] <= 12'h003;
rommem[11086] <= 12'h08E;
rommem[11087] <= 12'hFFE;
rommem[11088] <= 12'h580;
rommem[11089] <= 12'h0E6;
rommem[11090] <= 12'h90F;
rommem[11091] <= 12'hFFE;
rommem[11092] <= 12'h580;
rommem[11093] <= 12'h04F;
rommem[11094] <= 12'h035;
rommem[11095] <= 12'h0B0;
rommem[11096] <= 12'h04B;
rommem[11097] <= 12'h045;
rommem[11098] <= 12'h059;
rommem[11099] <= 12'h042;
rommem[11100] <= 12'h04F;
rommem[11101] <= 12'h041;
rommem[11102] <= 12'h052;
rommem[11103] <= 12'h044;
rommem[11104] <= 12'hFFE;
rommem[11105] <= 12'hB6A;
rommem[11106] <= 12'hFFE;
rommem[11107] <= 12'hB6B;
rommem[11108] <= 12'hFFE;
rommem[11109] <= 12'hB6C;
rommem[11110] <= 12'hFFE;
rommem[11111] <= 12'hB6D;
rommem[11112] <= 12'hFFE;
rommem[11113] <= 12'hB6E;
rommem[11114] <= 12'h039;
rommem[11115] <= 12'h039;
rommem[11116] <= 12'h039;
rommem[11117] <= 12'h039;
rommem[11118] <= 12'h039;
rommem[11119] <= 12'h04F;
rommem[11120] <= 12'h05F;
rommem[11121] <= 12'h0DD;
rommem[11122] <= 12'h130;
rommem[11123] <= 12'h0DD;
rommem[11124] <= 12'h132;
rommem[11125] <= 12'h0DD;
rommem[11126] <= 12'h135;
rommem[11127] <= 12'h0DD;
rommem[11128] <= 12'h137;
rommem[11129] <= 12'h00F;
rommem[11130] <= 12'h139;
rommem[11131] <= 12'h00F;
rommem[11132] <= 12'h140;
rommem[11133] <= 12'h015;
rommem[11134] <= 12'h0B6;
rommem[11135] <= 12'hFFF;
rommem[11136] <= 12'hFFF;
rommem[11137] <= 12'hFE0;
rommem[11138] <= 12'h0B1;
rommem[11139] <= 12'hFFC;
rommem[11140] <= 12'h010;
rommem[11141] <= 12'h026;
rommem[11142] <= 12'hFFB;
rommem[11143] <= 12'h0C6;
rommem[11144] <= 12'h009;
rommem[11145] <= 12'h015;
rommem[11146] <= 12'h0F7;
rommem[11147] <= 12'hFFF;
rommem[11148] <= 12'hE30;
rommem[11149] <= 12'h102;
rommem[11150] <= 12'h0C6;
rommem[11151] <= 12'h01F;
rommem[11152] <= 12'h015;
rommem[11153] <= 12'h0F7;
rommem[11154] <= 12'hFFF;
rommem[11155] <= 12'hE30;
rommem[11156] <= 12'h103;
rommem[11157] <= 12'h0C6;
rommem[11158] <= 12'h0A6;
rommem[11159] <= 12'h015;
rommem[11160] <= 12'h0F7;
rommem[11161] <= 12'hFFF;
rommem[11162] <= 12'hE30;
rommem[11163] <= 12'h10B;
rommem[11164] <= 12'h039;
rommem[11165] <= 12'h034;
rommem[11166] <= 12'h030;
rommem[11167] <= 12'h18E;
rommem[11168] <= 12'h000;
rommem[11169] <= 12'h000;
rommem[11170] <= 12'h01A;
rommem[11171] <= 12'h010;
rommem[11172] <= 12'h08D;
rommem[11173] <= 12'h082;
rommem[11174] <= 12'h0C1;
rommem[11175] <= 12'h008;
rommem[11176] <= 12'h022;
rommem[11177] <= 12'h00C;
rommem[11178] <= 12'h0D6;
rommem[11179] <= 12'h139;
rommem[11180] <= 12'h026;
rommem[11181] <= 12'h008;
rommem[11182] <= 12'h0C6;
rommem[11183] <= 12'h011;
rommem[11184] <= 12'h00F;
rommem[11185] <= 12'h140;
rommem[11186] <= 12'h0D7;
rommem[11187] <= 12'h139;
rommem[11188] <= 12'h08D;
rommem[11189] <= 12'h052;
rommem[11190] <= 12'h0D6;
rommem[11191] <= 12'h131;
rommem[11192] <= 12'h0D1;
rommem[11193] <= 12'h133;
rommem[11194] <= 12'h027;
rommem[11195] <= 12'h00A;
rommem[11196] <= 12'h08E;
rommem[11197] <= 12'hBFF;
rommem[11198] <= 12'h000;
rommem[11199] <= 12'h04F;
rommem[11200] <= 12'h0E6;
rommem[11201] <= 12'h835;
rommem[11202] <= 12'h00C;
rommem[11203] <= 12'h131;
rommem[11204] <= 12'h020;
rommem[11205] <= 12'h003;
rommem[11206] <= 12'h0CC;
rommem[11207] <= 12'hFFF;
rommem[11208] <= 12'hFFF;
rommem[11209] <= 12'h01C;
rommem[11210] <= 12'h0EF;
rommem[11211] <= 12'h035;
rommem[11212] <= 12'h0B0;
rommem[11213] <= 12'h034;
rommem[11214] <= 12'h011;
rommem[11215] <= 12'h01A;
rommem[11216] <= 12'h010;
rommem[11217] <= 12'h0D6;
rommem[11218] <= 12'h131;
rommem[11219] <= 12'h0D1;
rommem[11220] <= 12'h133;
rommem[11221] <= 12'h027;
rommem[11222] <= 12'h008;
rommem[11223] <= 12'h08E;
rommem[11224] <= 12'hBFF;
rommem[11225] <= 12'h000;
rommem[11226] <= 12'h04F;
rommem[11227] <= 12'h0E6;
rommem[11228] <= 12'h815;
rommem[11229] <= 12'h020;
rommem[11230] <= 12'h003;
rommem[11231] <= 12'h0CC;
rommem[11232] <= 12'hFFF;
rommem[11233] <= 12'hFFF;
rommem[11234] <= 12'h035;
rommem[11235] <= 12'h091;
rommem[11236] <= 12'h015;
rommem[11237] <= 12'h0B6;
rommem[11238] <= 12'hFFF;
rommem[11239] <= 12'hFFF;
rommem[11240] <= 12'hFE0;
rommem[11241] <= 12'h0B1;
rommem[11242] <= 12'hFFC;
rommem[11243] <= 12'h010;
rommem[11244] <= 12'h026;
rommem[11245] <= 12'h014;
rommem[11246] <= 12'h01A;
rommem[11247] <= 12'h010;
rommem[11248] <= 12'h015;
rommem[11249] <= 12'h0F6;
rommem[11250] <= 12'hFFF;
rommem[11251] <= 12'hE30;
rommem[11252] <= 12'h101;
rommem[11253] <= 12'h0C5;
rommem[11254] <= 12'h008;
rommem[11255] <= 12'h027;
rommem[11256] <= 12'h009;
rommem[11257] <= 12'h04F;
rommem[11258] <= 12'h015;
rommem[11259] <= 12'h0F6;
rommem[11260] <= 12'hFFF;
rommem[11261] <= 12'hE30;
rommem[11262] <= 12'h100;
rommem[11263] <= 12'h01C;
rommem[11264] <= 12'h0EF;
rommem[11265] <= 12'h039;
rommem[11266] <= 12'h0CC;
rommem[11267] <= 12'hFFF;
rommem[11268] <= 12'hFFF;
rommem[11269] <= 12'h01C;
rommem[11270] <= 12'h0EF;
rommem[11271] <= 12'h039;
rommem[11272] <= 12'h034;
rommem[11273] <= 12'h003;
rommem[11274] <= 12'h015;
rommem[11275] <= 12'h0B6;
rommem[11276] <= 12'hFFF;
rommem[11277] <= 12'hFFF;
rommem[11278] <= 12'hFE0;
rommem[11279] <= 12'h0B1;
rommem[11280] <= 12'hFFC;
rommem[11281] <= 12'h010;
rommem[11282] <= 12'h026;
rommem[11283] <= 12'hFF6;
rommem[11284] <= 12'h01C;
rommem[11285] <= 12'h0EF;
rommem[11286] <= 12'h01A;
rommem[11287] <= 12'h010;
rommem[11288] <= 12'h015;
rommem[11289] <= 12'h0B6;
rommem[11290] <= 12'hFFF;
rommem[11291] <= 12'hE30;
rommem[11292] <= 12'h101;
rommem[11293] <= 12'h085;
rommem[11294] <= 12'h010;
rommem[11295] <= 12'h027;
rommem[11296] <= 12'hFE9;
rommem[11297] <= 12'h015;
rommem[11298] <= 12'h0F7;
rommem[11299] <= 12'hFFF;
rommem[11300] <= 12'hE30;
rommem[11301] <= 12'h100;
rommem[11302] <= 12'h035;
rommem[11303] <= 12'h083;
rommem[11304] <= 12'h04F;
rommem[11305] <= 12'h0E6;
rommem[11306] <= 12'hA08;
rommem[11307] <= 12'h133;
rommem[11308] <= 12'h0E0;
rommem[11309] <= 12'hA08;
rommem[11310] <= 12'h131;
rommem[11311] <= 12'h02C;
rommem[11312] <= 12'h009;
rommem[11313] <= 12'h0CC;
rommem[11314] <= 12'h001;
rommem[11315] <= 12'h000;
rommem[11316] <= 12'h0A3;
rommem[11317] <= 12'hA08;
rommem[11318] <= 12'h131;
rommem[11319] <= 12'h0E3;
rommem[11320] <= 12'hA08;
rommem[10963] <= 12'h011;
rommem[10964] <= 12'h01F;
rommem[10965] <= 12'h021;
rommem[10966] <= 12'h030;
rommem[10967] <= 12'h040;
rommem[10968] <= 12'h0E6;
rommem[10969] <= 12'hA08;
rommem[10970] <= 12'h127;
rommem[10971] <= 12'h0A6;
rommem[10972] <= 12'hA0D;
rommem[10973] <= 12'h05C;
rommem[10974] <= 12'h0C4;
rommem[10975] <= 12'h03F;
rommem[10976] <= 12'h0E7;
rommem[10977] <= 12'hA08;
rommem[10978] <= 12'h127;
rommem[10979] <= 12'h01F;
rommem[10980] <= 12'h089;
rommem[10981] <= 12'h08E;
rommem[10982] <= 12'h000;
rommem[10983] <= 12'h014;
rommem[10984] <= 12'h030;
rommem[10985] <= 12'h1FF;
rommem[10986] <= 12'h026;
rommem[10987] <= 12'hFFC;
rommem[10988] <= 12'h0C1;
rommem[10989] <= 12'h0F0;
rommem[10990] <= 12'h026;
rommem[10991] <= 12'h004;
rommem[10992] <= 12'h0D7;
rommem[10993] <= 12'h120;
rommem[10994] <= 12'h020;
rommem[10995] <= 12'hFA2;
rommem[10996] <= 12'h0C1;
rommem[10997] <= 12'h0E0;
rommem[10998] <= 12'h026;
rommem[10999] <= 12'h008;
rommem[11000] <= 12'h096;
rommem[11001] <= 12'h121;
rommem[11002] <= 12'h08A;
rommem[11003] <= 12'h800;
rommem[11004] <= 12'h097;
rommem[11005] <= 12'h121;
rommem[11006] <= 12'h020;
rommem[11007] <= 12'hF96;
rommem[11008] <= 12'h0C1;
rommem[11009] <= 12'h014;
rommem[11010] <= 12'h026;
rommem[11011] <= 12'h016;
rommem[11012] <= 12'h00D;
rommem[11013] <= 12'h120;
rommem[11014] <= 12'h026;
rommem[11015] <= 12'h008;
rommem[11016] <= 12'h096;
rommem[11017] <= 12'h121;
rommem[11018] <= 12'h08A;
rommem[11019] <= 12'h004;
rommem[11020] <= 12'h097;
rommem[11021] <= 12'h121;
rommem[11022] <= 12'h020;
rommem[11023] <= 12'h006;
rommem[11024] <= 12'h096;
rommem[11025] <= 12'h121;
rommem[11026] <= 12'h084;
rommem[11027] <= 12'hFFB;
rommem[11028] <= 12'h097;
rommem[11029] <= 12'h121;
rommem[11030] <= 12'h00F;
rommem[11031] <= 12'h120;
rommem[11032] <= 12'h020;
rommem[11033] <= 12'hF7C;
rommem[11034] <= 12'h0C1;
rommem[11035] <= 12'h059;
rommem[11036] <= 12'h026;
rommem[11037] <= 12'h016;
rommem[11038] <= 12'h00D;
rommem[11039] <= 12'h120;
rommem[11040] <= 12'h026;
rommem[11041] <= 12'h008;
rommem[11042] <= 12'h096;
rommem[11043] <= 12'h121;
rommem[11044] <= 12'h08A;
rommem[11045] <= 12'h001;
rommem[11046] <= 12'h097;
rommem[11047] <= 12'h121;
rommem[11048] <= 12'h020;
rommem[11049] <= 12'h006;
rommem[11050] <= 12'h096;
rommem[11051] <= 12'h121;
rommem[11052] <= 12'h084;
rommem[11053] <= 12'hFFE;
rommem[11054] <= 12'h097;
rommem[11055] <= 12'h121;
rommem[11056] <= 12'h00F;
rommem[11057] <= 12'h120;
rommem[11058] <= 12'h020;
rommem[11059] <= 12'hF62;
rommem[11060] <= 12'h0C1;
rommem[11061] <= 12'h077;
rommem[11062] <= 12'h026;
rommem[11063] <= 12'h013;
rommem[11064] <= 12'h096;
rommem[11065] <= 12'h121;
rommem[11066] <= 12'h088;
rommem[11067] <= 12'h010;
rommem[11068] <= 12'h097;
rommem[11069] <= 12'h121;
rommem[11070] <= 12'h096;
rommem[11071] <= 12'h122;
rommem[11072] <= 12'h088;
rommem[11073] <= 12'h002;
rommem[11074] <= 12'h097;
rommem[11075] <= 12'h122;
rommem[11076] <= 12'h01F;
rommem[11077] <= 12'h089;
rommem[11078] <= 12'h04F;
rommem[11079] <= 12'h08D;
rommem[11080] <= 12'hE40;
rommem[11081] <= 12'h020;
rommem[11082] <= 12'hF4B;
rommem[11083] <= 12'h0C1;
rommem[11084] <= 12'h058;
rommem[11085] <= 12'h026;
rommem[11086] <= 12'h013;
rommem[11087] <= 12'h096;
rommem[11088] <= 12'h121;
rommem[11089] <= 12'h088;
rommem[11090] <= 12'h020;
rommem[11091] <= 12'h097;
rommem[11092] <= 12'h121;
rommem[11093] <= 12'h096;
rommem[11094] <= 12'h122;
rommem[11095] <= 12'h088;
rommem[11096] <= 12'h004;
rommem[11097] <= 12'h097;
rommem[11098] <= 12'h122;
rommem[11099] <= 12'h01F;
rommem[11100] <= 12'h089;
rommem[11101] <= 12'h04F;
rommem[11102] <= 12'h08D;
rommem[11103] <= 12'hE29;
rommem[11104] <= 12'h020;
rommem[11105] <= 12'hF34;
rommem[11106] <= 12'h0C1;
rommem[11107] <= 12'h07E;
rommem[11108] <= 12'h026;
rommem[11109] <= 12'h013;
rommem[11110] <= 12'h096;
rommem[11111] <= 12'h121;
rommem[11112] <= 12'h088;
rommem[11113] <= 12'h040;
rommem[11114] <= 12'h097;
rommem[11115] <= 12'h121;
rommem[11116] <= 12'h096;
rommem[11117] <= 12'h122;
rommem[11118] <= 12'h088;
rommem[11119] <= 12'h001;
rommem[11120] <= 12'h097;
rommem[11121] <= 12'h122;
rommem[11122] <= 12'h01F;
rommem[11123] <= 12'h089;
rommem[11124] <= 12'h04F;
rommem[11125] <= 12'h08D;
rommem[11126] <= 12'hE12;
rommem[11127] <= 12'h020;
rommem[11128] <= 12'hF1D;
rommem[11129] <= 12'h0C1;
rommem[11130] <= 12'h011;
rommem[11131] <= 12'h026;
rommem[11132] <= 12'h016;
rommem[11133] <= 12'h00D;
rommem[11134] <= 12'h120;
rommem[11135] <= 12'h026;
rommem[11136] <= 12'h008;
rommem[11137] <= 12'h096;
rommem[11138] <= 12'h121;
rommem[11139] <= 12'h08A;
rommem[11140] <= 12'h002;
rommem[11141] <= 12'h097;
rommem[11142] <= 12'h121;
rommem[11143] <= 12'h020;
rommem[11144] <= 12'h006;
rommem[11145] <= 12'h096;
rommem[11146] <= 12'h121;
rommem[11147] <= 12'h084;
rommem[11148] <= 12'hFFD;
rommem[11149] <= 12'h097;
rommem[11150] <= 12'h121;
rommem[11151] <= 12'h00F;
rommem[11152] <= 12'h120;
rommem[11153] <= 12'h020;
rommem[11154] <= 12'hF03;
rommem[11155] <= 12'h00D;
rommem[11156] <= 12'h120;
rommem[11157] <= 12'h027;
rommem[11158] <= 12'h004;
rommem[11159] <= 12'h00F;
rommem[11160] <= 12'h120;
rommem[11161] <= 12'h020;
rommem[11162] <= 12'hEFB;
rommem[11163] <= 12'h096;
rommem[11164] <= 12'h121;
rommem[11165] <= 12'h084;
rommem[11166] <= 12'h006;
rommem[11167] <= 12'h081;
rommem[11168] <= 12'h006;
rommem[11169] <= 12'h026;
rommem[11170] <= 12'h008;
rommem[11171] <= 12'h0C1;
rommem[11172] <= 12'h071;
rommem[11173] <= 12'h026;
rommem[11174] <= 12'h004;
rommem[11175] <= 12'h06E;
rommem[11176] <= 12'h90F;
rommem[11177] <= 12'hFFF;
rommem[11178] <= 12'hFFC;
rommem[11179] <= 12'h00D;
rommem[11180] <= 12'h121;
rommem[11181] <= 12'h02A;
rommem[11182] <= 12'h00B;
rommem[11183] <= 12'h096;
rommem[11184] <= 12'h121;
rommem[11185] <= 12'h084;
rommem[11186] <= 12'h7FF;
rommem[11187] <= 12'h097;
rommem[11188] <= 12'h121;
rommem[11189] <= 12'h08E;
rommem[11190] <= 12'hFFE;
rommem[11191] <= 12'h880;
rommem[11192] <= 12'h020;
rommem[11193] <= 12'h017;
rommem[11194] <= 12'h096;
rommem[11195] <= 12'h121;
rommem[11196] <= 12'h085;
rommem[11197] <= 12'h004;
rommem[11198] <= 12'h027;
rommem[11199] <= 12'h005;
rommem[11200] <= 12'h08E;
rommem[11201] <= 12'hFFE;
rommem[11202] <= 12'h800;
rommem[11203] <= 12'h020;
rommem[11204] <= 12'h00C;
rommem[11205] <= 12'h085;
rommem[11206] <= 12'h001;
rommem[11207] <= 12'h027;
rommem[11208] <= 12'h005;
rommem[11209] <= 12'h08E;
rommem[11210] <= 12'hFFE;
rommem[11211] <= 12'h700;
rommem[11212] <= 12'h020;
rommem[11213] <= 12'h003;
rommem[11214] <= 12'h08E;
rommem[11215] <= 12'hFFE;
rommem[11216] <= 12'h600;
rommem[11217] <= 12'h0E6;
rommem[11218] <= 12'h90F;
rommem[11219] <= 12'hFFE;
rommem[11220] <= 12'h600;
rommem[11221] <= 12'h04F;
rommem[11222] <= 12'h035;
rommem[11223] <= 12'h0B0;
rommem[11224] <= 12'h04B;
rommem[11225] <= 12'h045;
rommem[11226] <= 12'h059;
rommem[11227] <= 12'h042;
rommem[11228] <= 12'h04F;
rommem[11229] <= 12'h041;
rommem[11230] <= 12'h052;
rommem[11231] <= 12'h044;
rommem[11232] <= 12'hFFE;
rommem[11233] <= 12'hBEA;
rommem[11234] <= 12'hFFE;
rommem[11235] <= 12'hBEB;
rommem[11236] <= 12'hFFE;
rommem[11237] <= 12'hBEC;
rommem[11238] <= 12'hFFE;
rommem[11239] <= 12'hBED;
rommem[11240] <= 12'hFFE;
rommem[11241] <= 12'hBEE;
rommem[11242] <= 12'h039;
rommem[11243] <= 12'h039;
rommem[11244] <= 12'h039;
rommem[11245] <= 12'h039;
rommem[11246] <= 12'h039;
rommem[11247] <= 12'h04F;
rommem[11248] <= 12'h05F;
rommem[11249] <= 12'h0DD;
rommem[11250] <= 12'h130;
rommem[11251] <= 12'h0DD;
rommem[11252] <= 12'h132;
rommem[11253] <= 12'h0DD;
rommem[11254] <= 12'h135;
rommem[11255] <= 12'h0DD;
rommem[11256] <= 12'h137;
rommem[11257] <= 12'h00F;
rommem[11258] <= 12'h139;
rommem[11259] <= 12'h00F;
rommem[11260] <= 12'h140;
rommem[11261] <= 12'h015;
rommem[11262] <= 12'h0B6;
rommem[11263] <= 12'hFFF;
rommem[11264] <= 12'hFFF;
rommem[11265] <= 12'hFE0;
rommem[11266] <= 12'h0B1;
rommem[11267] <= 12'hFFC;
rommem[11268] <= 12'h010;
rommem[11269] <= 12'h026;
rommem[11270] <= 12'hFFB;
rommem[11271] <= 12'h0C6;
rommem[11272] <= 12'h009;
rommem[11273] <= 12'h015;
rommem[11274] <= 12'h0F7;
rommem[11275] <= 12'hFFF;
rommem[11276] <= 12'hE30;
rommem[11277] <= 12'h102;
rommem[11278] <= 12'h0C6;
rommem[11279] <= 12'h01E;
rommem[11280] <= 12'h015;
rommem[11281] <= 12'h0F7;
rommem[11282] <= 12'hFFF;
rommem[11283] <= 12'hE30;
rommem[11284] <= 12'h103;
rommem[11285] <= 12'h0C6;
rommem[11286] <= 12'h0A6;
rommem[11287] <= 12'h015;
rommem[11288] <= 12'h0F7;
rommem[11289] <= 12'hFFF;
rommem[11290] <= 12'hE30;
rommem[11291] <= 12'h10B;
rommem[11292] <= 12'h039;
rommem[11293] <= 12'h034;
rommem[11294] <= 12'h030;
rommem[11295] <= 12'h18E;
rommem[11296] <= 12'h000;
rommem[11297] <= 12'h000;
rommem[11298] <= 12'h01A;
rommem[11299] <= 12'h010;
rommem[11300] <= 12'h08D;
rommem[11301] <= 12'h082;
rommem[11302] <= 12'h0C1;
rommem[11303] <= 12'h008;
rommem[11304] <= 12'h022;
rommem[11305] <= 12'h00C;
rommem[11306] <= 12'h0D6;
rommem[11307] <= 12'h139;
rommem[11308] <= 12'h026;
rommem[11309] <= 12'h008;
rommem[11310] <= 12'h0C6;
rommem[11311] <= 12'h011;
rommem[11312] <= 12'h00F;
rommem[11313] <= 12'h140;
rommem[11314] <= 12'h0D7;
rommem[11315] <= 12'h139;
rommem[11316] <= 12'h08D;
rommem[11317] <= 12'h052;
rommem[11318] <= 12'h0D6;
rommem[11319] <= 12'h131;
rommem[11320] <= 12'h0D1;
rommem[11321] <= 12'h133;
rommem[11322] <= 12'h039;
rommem[11323] <= 12'h015;
rommem[11324] <= 12'h0F6;
rommem[11325] <= 12'hFFF;
rommem[11326] <= 12'hE30;
rommem[11327] <= 12'h101;
rommem[11328] <= 12'h0C5;
rommem[11329] <= 12'h008;
rommem[11330] <= 12'h027;
rommem[11331] <= 12'h049;
rommem[11332] <= 12'h015;
rommem[11333] <= 12'h0F6;
rommem[11334] <= 12'hFFF;
rommem[11335] <= 12'hE30;
rommem[11336] <= 12'h100;
rommem[11337] <= 12'h0C1;
rommem[11338] <= 12'h014;
rommem[11339] <= 12'h026;
rommem[11340] <= 12'h000;
rommem[11322] <= 12'h027;
rommem[11323] <= 12'h00A;
rommem[11324] <= 12'h08E;
rommem[11325] <= 12'hBFF;
rommem[11326] <= 12'h000;
rommem[11327] <= 12'h04F;
rommem[11328] <= 12'h0E6;
rommem[11329] <= 12'h835;
rommem[11330] <= 12'h00C;
rommem[11331] <= 12'h131;
rommem[11332] <= 12'h020;
rommem[11333] <= 12'h003;
rommem[11334] <= 12'h0CC;
rommem[11335] <= 12'hFFF;
rommem[11336] <= 12'hFFF;
rommem[11337] <= 12'h01C;
rommem[11338] <= 12'h0EF;
rommem[11339] <= 12'h035;
rommem[11340] <= 12'h0B0;
rommem[11341] <= 12'h034;
rommem[11342] <= 12'h004;
rommem[11343] <= 12'h0B6;
rommem[11344] <= 12'hFFC;
rommem[11345] <= 12'h010;
rommem[11346] <= 12'h048;
rommem[11347] <= 12'h048;
rommem[11348] <= 12'h048;
rommem[11349] <= 12'h048;
rommem[11350] <= 12'h08A;
rommem[11351] <= 12'hC00;
rommem[11352] <= 12'h05F;
rommem[11353] <= 12'h01F;
rommem[11354] <= 12'h002;
rommem[11355] <= 12'h035;
rommem[11356] <= 12'h004;
rommem[11357] <= 12'h0A6;
rommem[11358] <= 12'hA08;
rommem[11359] <= 12'h133;
rommem[11360] <= 12'h04C;
rommem[11361] <= 12'h0A1;
rommem[11362] <= 12'hA08;
rommem[11363] <= 12'h131;
rommem[11364] <= 12'h027;
rommem[11365] <= 12'h027;
rommem[11366] <= 12'h0A7;
rommem[11367] <= 12'hA08;
rommem[11368] <= 12'h133;
rommem[11369] <= 12'h04A;
rommem[11370] <= 12'h01E;
rommem[11371] <= 12'h089;
rommem[11372] <= 12'h030;
rommem[11373] <= 12'hA0A;
rommem[11374] <= 12'h000;
rommem[11375] <= 12'hBFF;
rommem[11376] <= 12'h000;
rommem[11377] <= 12'h0A7;
rommem[11378] <= 12'hA0F;
rommem[11379] <= 12'h06D;
rommem[11380] <= 12'hA08;
rommem[11381] <= 12'h140;
rommem[11382] <= 12'h026;
rommem[11383] <= 12'hFC3;
rommem[11384] <= 12'h08D;
rommem[11385] <= 12'hFAE;
rommem[11386] <= 12'h0C1;
rommem[11387] <= 12'hFF0;
rommem[11388] <= 12'h025;
rommem[11389] <= 12'hFBD;
rommem[11390] <= 12'h0C6;
rommem[11391] <= 12'h013;
rommem[11392] <= 12'h06F;
rommem[11393] <= 12'hA08;
rommem[11394] <= 12'h139;
rommem[11395] <= 12'h0E7;
rommem[11396] <= 12'hA08;
rommem[11397] <= 12'h140;
rommem[11398] <= 12'h015;
rommem[11399] <= 12'h0F7;
rommem[11400] <= 12'hFFF;
rommem[11401] <= 12'hE30;
rommem[11402] <= 12'h100;
rommem[11403] <= 12'h020;
rommem[11404] <= 12'hFAE;
rommem[11405] <= 12'h039;
rommem[11406] <= 12'h053;
rommem[11407] <= 12'h065;
rommem[11408] <= 12'h072;
rommem[11409] <= 12'h069;
rommem[11410] <= 12'h061;
rommem[11411] <= 12'h06C;
rommem[11412] <= 12'h000;
rommem[11413] <= 12'h034;
rommem[11414] <= 12'h016;
rommem[11415] <= 12'h01F;
rommem[11416] <= 12'h001;
rommem[11417] <= 12'h0E6;
rommem[11418] <= 12'h804;
rommem[11419] <= 12'h027;
rommem[11420] <= 12'h006;
rommem[11421] <= 12'h030;
rommem[11422] <= 12'h001;
rommem[11423] <= 12'h08D;
rommem[11424] <= 12'hF67;
rommem[11425] <= 12'h020;
rommem[11426] <= 12'hFF6;
rommem[11427] <= 12'h035;
rommem[11428] <= 12'h096;
rommem[11429] <= 12'h034;
rommem[11430] <= 12'h006;
rommem[11431] <= 12'h0CC;
rommem[11432] <= 12'hFFE;
rommem[11433] <= 12'hCC5;
rommem[11434] <= 12'h017;
rommem[11435] <= 12'hFFF;
rommem[11436] <= 12'h712;
rommem[11437] <= 12'h08D;
rommem[11438] <= 12'hEC0;
rommem[11439] <= 12'h0C6;
rommem[11440] <= 12'h011;
rommem[11441] <= 12'h08D;
rommem[11442] <= 12'hF55;
rommem[11443] <= 12'h08D;
rommem[11444] <= 12'hF53;
rommem[11445] <= 12'h08D;
rommem[11446] <= 12'hF51;
rommem[11447] <= 12'h0CC;
rommem[11448] <= 12'hFFE;
rommem[11449] <= 12'hCC5;
rommem[11450] <= 12'h08D;
rommem[11451] <= 12'hFD9;
rommem[11452] <= 12'h017;
rommem[11453] <= 12'h000;
rommem[11454] <= 12'h01B;
rommem[11455] <= 12'h0C1;
rommem[11456] <= 12'h003;
rommem[11457] <= 12'h026;
rommem[11458] <= 12'hFEC;
rommem[11459] <= 12'h035;
rommem[11460] <= 12'h086;
rommem[11461] <= 12'h053;
rommem[11462] <= 12'h065;
rommem[11463] <= 12'h072;
rommem[11464] <= 12'h069;
rommem[11465] <= 12'h061;
rommem[11466] <= 12'h06C;
rommem[11467] <= 12'h020;
rommem[11468] <= 12'h070;
rommem[11469] <= 12'h06F;
rommem[11470] <= 12'h072;
rommem[11471] <= 12'h074;
rommem[11472] <= 12'h020;
rommem[11473] <= 12'h074;
rommem[11474] <= 12'h065;
rommem[11475] <= 12'h073;
rommem[11476] <= 12'h074;
rommem[11477] <= 12'h00D;
rommem[11478] <= 12'h00A;
rommem[11479] <= 12'h000;
rommem[11480] <= 12'h020;
rommem[11481] <= 12'hD36;
rommem[11482] <= 12'h034;
rommem[11483] <= 12'h004;
rommem[11484] <= 12'h015;
rommem[11485] <= 12'h0F6;
rommem[11486] <= 12'hFFF;
rommem[11487] <= 12'hFFF;
rommem[11488] <= 12'hFE0;
rommem[11489] <= 12'h0F1;
rommem[11490] <= 12'hFFC;
rommem[11491] <= 12'h010;
rommem[11492] <= 12'h026;
rommem[11493] <= 12'hFF6;
rommem[11494] <= 12'h017;
rommem[11495] <= 12'hFFF;
rommem[11496] <= 12'hEFB;
rommem[11497] <= 12'h04D;
rommem[11498] <= 12'h02B;
rommem[11499] <= 12'h003;
rommem[11500] <= 12'h032;
rommem[11501] <= 12'h601;
rommem[11502] <= 12'h039;
rommem[11503] <= 12'h035;
rommem[11504] <= 12'h004;
rommem[11505] <= 12'h05D;
rommem[11506] <= 12'h02B;
rommem[11507] <= 12'hFE6;
rommem[11508] <= 12'h0CC;
rommem[11509] <= 12'hFFF;
rommem[11510] <= 12'hFFF;
rommem[11511] <= 12'h039;
rommem[11342] <= 12'h011;
rommem[11343] <= 12'h01A;
rommem[11344] <= 12'h010;
rommem[11345] <= 12'h0D6;
rommem[11346] <= 12'h131;
rommem[11347] <= 12'h0D1;
rommem[11348] <= 12'h133;
rommem[11349] <= 12'h027;
rommem[11350] <= 12'h008;
rommem[11351] <= 12'h08E;
rommem[11352] <= 12'hBFF;
rommem[11353] <= 12'h000;
rommem[11354] <= 12'h04F;
rommem[11355] <= 12'h0E6;
rommem[11356] <= 12'h815;
rommem[11357] <= 12'h020;
rommem[11358] <= 12'h003;
rommem[11359] <= 12'h0CC;
rommem[11360] <= 12'hFFF;
rommem[11361] <= 12'hFFF;
rommem[11362] <= 12'h035;
rommem[11363] <= 12'h091;
rommem[11364] <= 12'h015;
rommem[11365] <= 12'h0B6;
rommem[11366] <= 12'hFFF;
rommem[11367] <= 12'hFFF;
rommem[11368] <= 12'hFE0;
rommem[11369] <= 12'h0B1;
rommem[11370] <= 12'hFFC;
rommem[11371] <= 12'h010;
rommem[11372] <= 12'h026;
rommem[11373] <= 12'h014;
rommem[11374] <= 12'h01A;
rommem[11375] <= 12'h010;
rommem[11376] <= 12'h015;
rommem[11377] <= 12'h0F6;
rommem[11378] <= 12'hFFF;
rommem[11379] <= 12'hE30;
rommem[11380] <= 12'h101;
rommem[11381] <= 12'h0C5;
rommem[11382] <= 12'h008;
rommem[11383] <= 12'h027;
rommem[11384] <= 12'h009;
rommem[11385] <= 12'h04F;
rommem[11386] <= 12'h015;
rommem[11387] <= 12'h0F6;
rommem[11388] <= 12'hFFF;
rommem[11389] <= 12'hE30;
rommem[11390] <= 12'h100;
rommem[11391] <= 12'h01C;
rommem[11392] <= 12'h0EF;
rommem[11393] <= 12'h039;
rommem[11394] <= 12'h0CC;
rommem[11395] <= 12'hFFF;
rommem[11396] <= 12'hFFF;
rommem[11397] <= 12'h01C;
rommem[11398] <= 12'h0EF;
rommem[11399] <= 12'h039;
rommem[11400] <= 12'h034;
rommem[11401] <= 12'h003;
rommem[11402] <= 12'h015;
rommem[11403] <= 12'h0B6;
rommem[11404] <= 12'hFFF;
rommem[11405] <= 12'hFFF;
rommem[11406] <= 12'hFE0;
rommem[11407] <= 12'h0B1;
rommem[11408] <= 12'hFFC;
rommem[11409] <= 12'h010;
rommem[11410] <= 12'h026;
rommem[11411] <= 12'hFF6;
rommem[11412] <= 12'h01C;
rommem[11413] <= 12'h0EF;
rommem[11414] <= 12'h01A;
rommem[11415] <= 12'h010;
rommem[11416] <= 12'h015;
rommem[11417] <= 12'h0B6;
rommem[11418] <= 12'hFFF;
rommem[11419] <= 12'hE30;
rommem[11420] <= 12'h101;
rommem[11421] <= 12'h085;
rommem[11422] <= 12'h010;
rommem[11423] <= 12'h027;
rommem[11424] <= 12'hFE9;
rommem[11425] <= 12'h015;
rommem[11426] <= 12'h0F7;
rommem[11427] <= 12'hFFF;
rommem[11428] <= 12'hE30;
rommem[11429] <= 12'h100;
rommem[11430] <= 12'h035;
rommem[11431] <= 12'h083;
rommem[11432] <= 12'h04F;
rommem[11433] <= 12'h0E6;
rommem[11434] <= 12'hA08;
rommem[11435] <= 12'h133;
rommem[11436] <= 12'h0E0;
rommem[11437] <= 12'hA08;
rommem[11438] <= 12'h131;
rommem[11439] <= 12'h02C;
rommem[11440] <= 12'h009;
rommem[11441] <= 12'h0CC;
rommem[11442] <= 12'h001;
rommem[11443] <= 12'h000;
rommem[11444] <= 12'h0A3;
rommem[11445] <= 12'hA08;
rommem[11446] <= 12'h131;
rommem[11447] <= 12'h0E3;
rommem[11448] <= 12'hA08;
rommem[11449] <= 12'h133;
rommem[11450] <= 12'h039;
rommem[11451] <= 12'h015;
rommem[11452] <= 12'h0F6;
rommem[11453] <= 12'hFFF;
rommem[11454] <= 12'hE30;
rommem[11455] <= 12'h101;
rommem[11456] <= 12'h0C5;
rommem[11457] <= 12'h008;
rommem[11458] <= 12'h027;
rommem[11459] <= 12'h049;
rommem[11460] <= 12'h015;
rommem[11461] <= 12'h0F6;
rommem[11462] <= 12'hFFF;
rommem[11463] <= 12'hE30;
rommem[11464] <= 12'h100;
rommem[11465] <= 12'h0C1;
rommem[11466] <= 12'h014;
rommem[11467] <= 12'h026;
rommem[11468] <= 12'h000;
rommem[11469] <= 12'h034;
rommem[11470] <= 12'h004;
rommem[11471] <= 12'h0B6;
rommem[11472] <= 12'hFFC;
rommem[11473] <= 12'h010;
rommem[11474] <= 12'h048;
rommem[11475] <= 12'h048;
rommem[11476] <= 12'h048;
rommem[11477] <= 12'h048;
rommem[11478] <= 12'h08A;
rommem[11479] <= 12'hC00;
rommem[11480] <= 12'h05F;
rommem[11481] <= 12'h01F;
rommem[11482] <= 12'h002;
rommem[11483] <= 12'h035;
rommem[11484] <= 12'h004;
rommem[11485] <= 12'h0A6;
rommem[11486] <= 12'hA08;
rommem[11487] <= 12'h133;
rommem[11488] <= 12'h04C;
rommem[11489] <= 12'h0A1;
rommem[11490] <= 12'hA08;
rommem[11491] <= 12'h131;
rommem[11492] <= 12'h027;
rommem[11493] <= 12'h027;
rommem[11494] <= 12'h0A7;
rommem[11495] <= 12'hA08;
rommem[11496] <= 12'h133;
rommem[11497] <= 12'h04A;
rommem[11498] <= 12'h01E;
rommem[11499] <= 12'h089;
rommem[11500] <= 12'h030;
rommem[11501] <= 12'hA0A;
rommem[11502] <= 12'h000;
rommem[11503] <= 12'hBFF;
rommem[11504] <= 12'h000;
rommem[11505] <= 12'h0A7;
rommem[11506] <= 12'hA0F;
rommem[11507] <= 12'h06D;
rommem[11508] <= 12'hA08;
rommem[11509] <= 12'h140;
rommem[11510] <= 12'h026;
rommem[11511] <= 12'hFC3;
rommem[11512] <= 12'h08D;
rommem[11513] <= 12'hFE0;
rommem[11514] <= 12'h020;
rommem[11515] <= 12'h009;
rommem[11516] <= 12'h08D;
rommem[11517] <= 12'hFDC;
rommem[11518] <= 12'h015;
rommem[11519] <= 12'h07D;
rommem[11520] <= 12'hFFF;
rommem[11521] <= 12'hFFC;
rommem[11522] <= 12'hA00;
rommem[11523] <= 12'h027;
rommem[11524] <= 12'h00C;
rommem[11525] <= 12'h081;
rommem[11526] <= 12'h00D;
rommem[11527] <= 12'h026;
rommem[11528] <= 12'h005;
rommem[11529] <= 12'h017;
rommem[11530] <= 12'hFFE;
rommem[11531] <= 12'h3C6;
rommem[11532] <= 12'h020;
rommem[11533] <= 12'h003;
rommem[11534] <= 12'h017;
rommem[11535] <= 12'hFFF;
rommem[11536] <= 12'h5ED;
rommem[11537] <= 12'h039;
rommem[11538] <= 12'h06E;
rommem[11539] <= 12'h90F;
rommem[11513] <= 12'hFAE;
rommem[11514] <= 12'h0C1;
rommem[11515] <= 12'hFF0;
rommem[11516] <= 12'h025;
rommem[11517] <= 12'hFBD;
rommem[11518] <= 12'h0C6;
rommem[11519] <= 12'h013;
rommem[11520] <= 12'h06F;
rommem[11521] <= 12'hA08;
rommem[11522] <= 12'h139;
rommem[11523] <= 12'h0E7;
rommem[11524] <= 12'hA08;
rommem[11525] <= 12'h140;
rommem[11526] <= 12'h015;
rommem[11527] <= 12'h0F7;
rommem[11528] <= 12'hFFF;
rommem[11529] <= 12'hE30;
rommem[11530] <= 12'h100;
rommem[11531] <= 12'h020;
rommem[11532] <= 12'hFAE;
rommem[11533] <= 12'h039;
rommem[11534] <= 12'h053;
rommem[11535] <= 12'h065;
rommem[11536] <= 12'h072;
rommem[11537] <= 12'h069;
rommem[11538] <= 12'h061;
rommem[11539] <= 12'h06C;
rommem[11540] <= 12'h000;
rommem[11541] <= 12'h800;
rommem[11542] <= 12'h015;
rommem[11543] <= 12'h0F7;
rommem[11544] <= 12'hFFF;
rommem[11545] <= 12'hFFC;
rommem[11546] <= 12'hA00;
rommem[11547] <= 12'h039;
rommem[11548] <= 12'h015;
rommem[11549] <= 12'h0BF;
rommem[11550] <= 12'hFFF;
rommem[11551] <= 12'hE10;
rommem[11552] <= 12'h3C0;
rommem[11553] <= 12'h015;
rommem[11554] <= 12'h0FD;
rommem[11555] <= 12'hFFF;
rommem[11556] <= 12'hE10;
rommem[11557] <= 12'h3C2;
rommem[11558] <= 12'h039;
rommem[11559] <= 12'h000;
rommem[11560] <= 12'h000;
rommem[11561] <= 12'h000;
rommem[11562] <= 12'h000;
rommem[11563] <= 12'h000;
rommem[11564] <= 12'h000;
rommem[11565] <= 12'h000;
rommem[11566] <= 12'h000;
rommem[11567] <= 12'h000;
rommem[11568] <= 12'h000;
rommem[11569] <= 12'h000;
rommem[11570] <= 12'h000;
rommem[11571] <= 12'h000;
rommem[11572] <= 12'h000;
rommem[11573] <= 12'h000;
rommem[11574] <= 12'h000;
rommem[11575] <= 12'h000;
rommem[11576] <= 12'h000;
rommem[11577] <= 12'h000;
rommem[11578] <= 12'h000;
rommem[11579] <= 12'h000;
rommem[11580] <= 12'h000;
rommem[11541] <= 12'h034;
rommem[11542] <= 12'h016;
rommem[11543] <= 12'h01F;
rommem[11544] <= 12'h001;
rommem[11545] <= 12'h0E6;
rommem[11546] <= 12'h804;
rommem[11547] <= 12'h027;
rommem[11548] <= 12'h006;
rommem[11549] <= 12'h030;
rommem[11550] <= 12'h001;
rommem[11551] <= 12'h08D;
rommem[11552] <= 12'hF67;
rommem[11553] <= 12'h020;
rommem[11554] <= 12'hFF6;
rommem[11555] <= 12'h035;
rommem[11556] <= 12'h096;
rommem[11557] <= 12'h034;
rommem[11558] <= 12'h006;
rommem[11559] <= 12'h0CC;
rommem[11560] <= 12'hFFE;
rommem[11561] <= 12'hD45;
rommem[11562] <= 12'h017;
rommem[11563] <= 12'hFFF;
rommem[11564] <= 12'h6AD;
rommem[11565] <= 12'h08D;
rommem[11566] <= 12'hEC0;
rommem[11567] <= 12'h0C6;
rommem[11568] <= 12'h011;
rommem[11569] <= 12'h08D;
rommem[11570] <= 12'hF55;
rommem[11571] <= 12'h08D;
rommem[11572] <= 12'hF53;
rommem[11573] <= 12'h08D;
rommem[11574] <= 12'hF51;
rommem[11575] <= 12'h0CC;
rommem[11576] <= 12'hFFE;
rommem[11577] <= 12'hD45;
rommem[11578] <= 12'h08D;
rommem[11579] <= 12'hFD9;
rommem[11580] <= 12'h017;
rommem[11581] <= 12'h000;
rommem[11582] <= 12'h000;
rommem[11583] <= 12'h000;
rommem[11584] <= 12'h000;
rommem[11585] <= 12'h000;
rommem[11586] <= 12'h000;
rommem[11587] <= 12'h000;
rommem[11588] <= 12'h000;
rommem[11589] <= 12'h000;
rommem[11590] <= 12'h000;
rommem[11591] <= 12'h000;
rommem[11592] <= 12'h000;
rommem[11593] <= 12'h000;
rommem[11594] <= 12'h000;
rommem[11595] <= 12'h000;
rommem[11596] <= 12'h000;
rommem[11597] <= 12'h000;
rommem[11598] <= 12'h000;
rommem[11599] <= 12'h000;
rommem[11600] <= 12'h000;
rommem[11601] <= 12'h000;
rommem[11602] <= 12'h000;
rommem[11603] <= 12'hFFE;
rommem[11604] <= 12'hD70;
rommem[11605] <= 12'h000;
rommem[11606] <= 12'h000;
rommem[11607] <= 12'hFFE;
rommem[11608] <= 12'hD59;
rommem[11609] <= 12'h015;
rommem[11610] <= 12'h0F6;
rommem[11611] <= 12'hFFF;
rommem[11612] <= 12'hFFF;
rommem[11613] <= 12'hFE0;
rommem[11614] <= 12'h08E;
rommem[11615] <= 12'hFFC;
rommem[11616] <= 12'h000;
rommem[11617] <= 12'h03A;
rommem[11618] <= 12'h0A7;
rommem[11619] <= 12'h804;
rommem[11620] <= 12'h07D;
rommem[11621] <= 12'hFFC;
rommem[11622] <= 12'h010;
rommem[11623] <= 12'h126;
rommem[11624] <= 12'h000;
rommem[11625] <= 12'h6FF;
rommem[11626] <= 12'h0F7;
rommem[11627] <= 12'hFFC;
rommem[11628] <= 12'h010;
rommem[11629] <= 12'h016;
rommem[11630] <= 12'h000;
rommem[11631] <= 12'h6F9;
rommem[11632] <= 12'h015;
rommem[11633] <= 12'h0F6;
rommem[11634] <= 12'hFFF;
rommem[11635] <= 12'hFFF;
rommem[11636] <= 12'hFE0;
rommem[11637] <= 12'h08E;
rommem[11638] <= 12'hFFC;
rommem[11639] <= 12'h000;
rommem[11640] <= 12'h03A;
rommem[11641] <= 12'h06F;
rommem[11642] <= 12'h804;
rommem[11643] <= 12'h017;
rommem[11644] <= 12'hFFF;
rommem[11645] <= 12'h480;
rommem[11646] <= 12'h0F1;
rommem[11647] <= 12'hFFC;
rommem[11648] <= 12'h010;
rommem[11649] <= 12'h126;
rommem[11650] <= 12'h000;
rommem[11651] <= 12'h6E5;
rommem[11652] <= 12'h086;
rommem[11653] <= 12'h00F;
rommem[11654] <= 12'h05C;
rommem[11655] <= 12'h0C4;
rommem[11656] <= 12'h00F;
rommem[11657] <= 12'h03A;
rommem[11658] <= 12'h06D;
rommem[11659] <= 12'h804;
rommem[11660] <= 12'h026;
rommem[11661] <= 12'h009;
rommem[11662] <= 12'h04A;
rommem[11582] <= 12'h16A;
rommem[11583] <= 12'h0C1;
rommem[11584] <= 12'h003;
rommem[11585] <= 12'h026;
rommem[11586] <= 12'hFEC;
rommem[11587] <= 12'h035;
rommem[11588] <= 12'h086;
rommem[11589] <= 12'h053;
rommem[11590] <= 12'h065;
rommem[11591] <= 12'h072;
rommem[11592] <= 12'h069;
rommem[11593] <= 12'h061;
rommem[11594] <= 12'h06C;
rommem[11595] <= 12'h020;
rommem[11596] <= 12'h070;
rommem[11597] <= 12'h06F;
rommem[11598] <= 12'h072;
rommem[11599] <= 12'h074;
rommem[11600] <= 12'h020;
rommem[11601] <= 12'h074;
rommem[11602] <= 12'h065;
rommem[11603] <= 12'h073;
rommem[11604] <= 12'h074;
rommem[11605] <= 12'h00D;
rommem[11606] <= 12'h00A;
rommem[11607] <= 12'h000;
rommem[11608] <= 12'h0CC;
rommem[11609] <= 12'hFFF;
rommem[11610] <= 12'hFFF;
rommem[11611] <= 12'h03F;
rommem[11612] <= 12'h001;
rommem[11613] <= 12'h0C1;
rommem[11614] <= 12'h00A;
rommem[11615] <= 12'h027;
rommem[11616] <= 12'h013;
rommem[11617] <= 12'h0C1;
rommem[11618] <= 12'h003;
rommem[11619] <= 12'h026;
rommem[11620] <= 12'h003;
rommem[11621] <= 12'h0F7;
rommem[11622] <= 12'h000;
rommem[11623] <= 12'h94A;
rommem[11624] <= 12'h0C1;
rommem[11625] <= 12'h01A;
rommem[11626] <= 12'h026;
rommem[11627] <= 12'h003;
rommem[11628] <= 12'h0F7;
rommem[11629] <= 12'h000;
rommem[11630] <= 12'h94A;
rommem[11631] <= 12'h07D;
rommem[11632] <= 12'h000;
rommem[11633] <= 12'h94A;
rommem[11634] <= 12'h027;
rommem[11635] <= 12'hFE4;
rommem[11636] <= 12'h039;
rommem[11637] <= 12'h03F;
rommem[11638] <= 12'h001;
rommem[11639] <= 12'h017;
rommem[11640] <= 12'h000;
rommem[11641] <= 12'h4F6;
rommem[11642] <= 12'h07D;
rommem[11643] <= 12'h000;
rommem[11644] <= 12'h94A;
rommem[11645] <= 12'h027;
rommem[11646] <= 12'h002;
rommem[11647] <= 12'h04F;
rommem[11648] <= 12'h039;
rommem[11649] <= 12'h058;
rommem[11650] <= 12'h058;
rommem[11651] <= 12'h058;
rommem[11652] <= 12'h058;
rommem[11653] <= 12'h034;
rommem[11654] <= 12'h004;
rommem[11655] <= 12'h03F;
rommem[11656] <= 12'h001;
rommem[11657] <= 12'h017;
rommem[11658] <= 12'h000;
rommem[11659] <= 12'h4E4;
rommem[11660] <= 12'h07D;
rommem[11661] <= 12'h000;
rommem[11662] <= 12'h94A;
rommem[11663] <= 12'h026;
rommem[11664] <= 12'hFF5;
rommem[11665] <= 12'h0C6;
rommem[11666] <= 12'h001;
rommem[11667] <= 12'h086;
rommem[11668] <= 12'h018;
rommem[11669] <= 12'h0A7;
rommem[11670] <= 12'h804;
rommem[11671] <= 12'h0F7;
rommem[11672] <= 12'hFFC;
rommem[11673] <= 12'h010;
rommem[11674] <= 12'h017;
rommem[11675] <= 12'hFFF;
rommem[11676] <= 12'h42A;
rommem[11677] <= 12'h016;
rommem[11678] <= 12'h000;
rommem[11679] <= 12'h6C9;
rommem[11680] <= 12'h18E;
rommem[11681] <= 12'h000;
rommem[11682] <= 12'h000;
rommem[11683] <= 12'h015;
rommem[11684] <= 12'h1BF;
rommem[11685] <= 12'hFFF;
rommem[11686] <= 12'hE30;
rommem[11687] <= 12'h604;
rommem[11688] <= 12'h015;
rommem[11664] <= 12'h011;
rommem[11665] <= 12'h0EA;
rommem[11666] <= 12'hE00;
rommem[11667] <= 12'h058;
rommem[11668] <= 12'h058;
rommem[11669] <= 12'h058;
rommem[11670] <= 12'h058;
rommem[11671] <= 12'h034;
rommem[11672] <= 12'h004;
rommem[11673] <= 12'h03F;
rommem[11674] <= 12'h001;
rommem[11675] <= 12'h017;
rommem[11676] <= 12'h000;
rommem[11677] <= 12'h4D2;
rommem[11678] <= 12'h0EA;
rommem[11679] <= 12'hE00;
rommem[11680] <= 12'h04F;
rommem[11681] <= 12'h039;
rommem[11682] <= 12'h032;
rommem[11683] <= 12'h601;
rommem[11684] <= 12'h04F;
rommem[11685] <= 12'h039;
rommem[11686] <= 12'h07F;
rommem[11687] <= 12'h000;
rommem[11688] <= 12'h940;
rommem[11689] <= 12'h07F;
rommem[11690] <= 12'hFFF;
rommem[11691] <= 12'hE30;
rommem[11692] <= 12'h608;
rommem[11693] <= 12'h015;
rommem[11694] <= 12'h07F;
rommem[11695] <= 12'hFFF;
rommem[11696] <= 12'hE30;
rommem[11697] <= 12'h609;
rommem[11698] <= 12'h015;
rommem[11699] <= 12'h0FD;
rommem[11700] <= 12'hFFF;
rommem[11701] <= 12'hE30;
rommem[11702] <= 12'h60A;
rommem[11703] <= 12'h015;
rommem[11704] <= 12'h07F;
rommem[11705] <= 12'hFFF;
rommem[11706] <= 12'hE30;
rommem[11707] <= 12'h60C;
rommem[11708] <= 12'h015;
rommem[11709] <= 12'h07F;
rommem[11710] <= 12'hFFF;
rommem[11711] <= 12'hE30;
rommem[11712] <= 12'h60D;
rommem[11713] <= 12'h015;
rommem[11714] <= 12'h0BF;
rommem[11715] <= 12'hFFF;
rommem[11716] <= 12'hE30;
rommem[11717] <= 12'h60E;
rommem[11718] <= 12'h031;
rommem[11719] <= 12'h201;
rommem[11720] <= 12'h18C;
rommem[11721] <= 12'h000;
rommem[11722] <= 12'h400;
rommem[11723] <= 12'h025;
rommem[11724] <= 12'hFD6;
rommem[11725] <= 12'h039;
rommem[11726] <= 12'h015;
rommem[11727] <= 12'h0FD;
rommem[11728] <= 12'hFFF;
rommem[11729] <= 12'hE30;
rommem[11730] <= 12'h604;
rommem[11731] <= 12'h015;
rommem[11732] <= 12'h0BE;
rommem[11733] <= 12'hFFF;
rommem[11734] <= 12'hE30;
rommem[11735] <= 12'h600;
rommem[11736] <= 12'h015;
rommem[11737] <= 12'h0FC;
rommem[11738] <= 12'hFFF;
rommem[11739] <= 12'hE30;
rommem[11740] <= 12'h602;
rommem[11741] <= 12'h015;
rommem[11742] <= 12'h0F7;
rommem[11743] <= 12'hFFF;
rommem[11744] <= 12'hE30;
rommem[11745] <= 12'h603;
rommem[11746] <= 12'h039;
rommem[11747] <= 12'h03C;
rommem[11748] <= 12'h83E;
rommem[11749] <= 12'h062;
rommem[11750] <= 12'h873;
rommem[11751] <= 12'h062;
rommem[11752] <= 12'h863;
rommem[11753] <= 12'h044;
rommem[11754] <= 12'h852;
rommem[11755] <= 12'h844;
rommem[11756] <= 12'h83A;
rommem[11757] <= 12'h046;
rommem[11758] <= 12'h049;
rommem[11759] <= 12'h847;
rommem[11760] <= 12'h046;
rommem[11761] <= 12'h049;
rommem[11762] <= 12'h84C;
rommem[11763] <= 12'h046;
rommem[11764] <= 12'h84C;
rommem[11765] <= 12'h84A;
rommem[11766] <= 12'h052;
rommem[11767] <= 12'h041;
rommem[11768] <= 12'h04D;
rommem[11769] <= 12'h054;
rommem[11770] <= 12'h045;
rommem[11771] <= 12'h053;
rommem[11772] <= 12'h854;
rommem[11773] <= 12'h053;
rommem[11774] <= 12'h050;
rommem[11775] <= 12'h844;
rommem[11776] <= 12'h054;
rommem[11777] <= 12'h049;
rommem[11778] <= 12'h852;
rommem[11779] <= 12'h855;
rommem[11780] <= 12'h065;
rommem[11781] <= 12'h078;
rommem[11782] <= 12'h069;
rommem[11783] <= 12'h874;
rommem[11784] <= 12'h83F;
rommem[11785] <= 12'h043;
rommem[11786] <= 12'h04C;
rommem[11787] <= 12'h853;
rommem[11788] <= 12'h000;
rommem[11789] <= 12'h000;
rommem[11790] <= 12'hFFE;
rommem[11791] <= 12'hF11;
rommem[11792] <= 12'hFFF;
rommem[11793] <= 12'h4AC;
rommem[11794] <= 12'hFFF;
rommem[11795] <= 12'h4D3;
rommem[11796] <= 12'hFFF;
rommem[11797] <= 12'h2CF;
rommem[11798] <= 12'hFFF;
rommem[11799] <= 12'h209;
rommem[11800] <= 12'hFFF;
rommem[11801] <= 12'h265;
rommem[11802] <= 12'hFE0;
rommem[11803] <= 12'h000;
rommem[11804] <= 12'hFFF;
rommem[11805] <= 12'h2A5;
rommem[11806] <= 12'hFFF;
rommem[11807] <= 12'h390;
rommem[11808] <= 12'hFFF;
rommem[11809] <= 12'h31A;
rommem[11810] <= 12'hFFD;
rommem[11811] <= 12'h443;
rommem[11812] <= 12'hFF8;
rommem[11813] <= 12'h000;
rommem[11814] <= 12'hFFE;
rommem[11815] <= 12'h4D0;
rommem[11816] <= 12'hFF8;
rommem[11817] <= 12'h003;
rommem[11818] <= 12'hFFF;
rommem[11819] <= 12'h451;
rommem[11820] <= 12'hFFE;
rommem[11821] <= 12'hF37;
rommem[11822] <= 12'hFFE;
rommem[11823] <= 12'hF3F;
rommem[11824] <= 12'h017;
rommem[11825] <= 12'hFFE;
rommem[11826] <= 12'h29F;
rommem[11827] <= 12'h0C6;
rommem[11828] <= 12'h024;
rommem[11829] <= 12'h017;
rommem[11830] <= 12'hFFF;
rommem[11831] <= 12'hEDA;
rommem[11832] <= 12'h016;
rommem[11833] <= 12'hFFF;
rommem[11834] <= 12'hED7;
rommem[11835] <= 12'h046;
rommem[11836] <= 12'h065;
rommem[11837] <= 12'h06D;
rommem[11838] <= 12'h074;
rommem[11839] <= 12'h069;
rommem[11840] <= 12'h06B;
rommem[11841] <= 12'h069;
rommem[11842] <= 12'h020;
rommem[11843] <= 12'h046;
rommem[11844] <= 12'h030;
rommem[11845] <= 12'h039;
rommem[11846] <= 12'h020;
rommem[11847] <= 12'h04D;
rommem[11848] <= 12'h075;
rommem[11849] <= 12'h06C;
rommem[11850] <= 12'h074;
rommem[11851] <= 12'h069;
rommem[11852] <= 12'h02D;
rommem[11853] <= 12'h063;
rommem[11854] <= 12'h06F;
rommem[11855] <= 12'h072;
rommem[11856] <= 12'h065;
rommem[11857] <= 12'h020;
rommem[11858] <= 12'h04F;
rommem[11859] <= 12'h053;
rommem[11860] <= 12'h020;
rommem[11861] <= 12'h053;
rommem[11862] <= 12'h074;
rommem[11863] <= 12'h061;
rommem[11864] <= 12'h072;
rommem[11865] <= 12'h074;
rommem[11866] <= 12'h069;
rommem[11867] <= 12'h06E;
rommem[11868] <= 12'h067;
rommem[11869] <= 12'h00D;
rommem[11870] <= 12'h00A;
rommem[11871] <= 12'h000;
rommem[11872] <= 12'h07F;
rommem[11690] <= 12'h000;
rommem[11691] <= 12'h941;
rommem[11692] <= 12'h07F;
rommem[11693] <= 12'h000;
rommem[11694] <= 12'h942;
rommem[11695] <= 12'h07F;
rommem[11696] <= 12'h000;
rommem[11697] <= 12'h943;
rommem[11698] <= 12'h039;
rommem[11699] <= 12'h08D;
rommem[11700] <= 12'hFF1;
rommem[11701] <= 12'h08D;
rommem[11702] <= 12'hFBE;
rommem[11703] <= 12'h0F7;
rommem[11704] <= 12'h000;
rommem[11705] <= 12'h942;
rommem[11706] <= 12'h07D;
rommem[11707] <= 12'h000;
rommem[11708] <= 12'h94A;
rommem[11709] <= 12'h026;
rommem[11710] <= 12'h005;
rommem[11711] <= 12'h08D;
rommem[11712] <= 12'hFB4;
rommem[11713] <= 12'h0F7;
rommem[11714] <= 12'h000;
rommem[11715] <= 12'h943;
rommem[11716] <= 12'h039;
rommem[11717] <= 12'h08D;
rommem[11718] <= 12'hFDF;
rommem[11719] <= 12'h08D;
rommem[11720] <= 12'hFAC;
rommem[11721] <= 12'h0F7;
rommem[11722] <= 12'h000;
rommem[11723] <= 12'h941;
rommem[11724] <= 12'h07D;
rommem[11725] <= 12'h000;
rommem[11726] <= 12'h94A;
rommem[11727] <= 12'h026;
rommem[11728] <= 12'h00F;
rommem[11729] <= 12'h08D;
rommem[11730] <= 12'hFA2;
rommem[11731] <= 12'h0F7;
rommem[11732] <= 12'h000;
rommem[11733] <= 12'h942;
rommem[11734] <= 12'h07D;
rommem[11735] <= 12'h000;
rommem[11736] <= 12'h94A;
rommem[11737] <= 12'h026;
rommem[11738] <= 12'h005;
rommem[11739] <= 12'h08D;
rommem[11740] <= 12'hF98;
rommem[11741] <= 12'h0F7;
rommem[11742] <= 12'h000;
rommem[11743] <= 12'h943;
rommem[11744] <= 12'h039;
rommem[11745] <= 12'h05F;
rommem[11746] <= 12'h034;
rommem[11747] <= 12'h004;
rommem[11748] <= 12'h08D;
rommem[11749] <= 12'hF8F;
rommem[11750] <= 12'h07D;
rommem[11751] <= 12'h000;
rommem[11752] <= 12'h94A;
rommem[11753] <= 12'h026;
rommem[11754] <= 12'h01C;
rommem[11755] <= 12'h015;
rommem[11756] <= 12'h0E7;
rommem[11757] <= 12'h90F;
rommem[11758] <= 12'h000;
rommem[11759] <= 12'h941;
rommem[11760] <= 12'h07C;
rommem[11761] <= 12'h000;
rommem[11762] <= 12'h943;
rommem[11763] <= 12'h026;
rommem[11764] <= 12'h008;
rommem[11765] <= 12'h07C;
rommem[11766] <= 12'h000;
rommem[11767] <= 12'h942;
rommem[11768] <= 12'h026;
rommem[11769] <= 12'h003;
rommem[11770] <= 12'h07C;
rommem[11771] <= 12'h000;
rommem[11772] <= 12'h941;
rommem[11773] <= 12'h035;
rommem[11774] <= 12'h004;
rommem[11775] <= 12'h05C;
rommem[11776] <= 12'h0F1;
rommem[11777] <= 12'h000;
rommem[11778] <= 12'h949;
rommem[11779] <= 12'h025;
rommem[11780] <= 12'hFDD;
rommem[11781] <= 12'h020;
rommem[11782] <= 12'hF6E;
rommem[11783] <= 12'h032;
rommem[11784] <= 12'h601;
rommem[11785] <= 12'h020;
rommem[11786] <= 12'hF6A;
rommem[11787] <= 12'h08D;
rommem[11788] <= 12'hFA6;
rommem[11789] <= 12'h08D;
rommem[11790] <= 12'hFD2;
rommem[11791] <= 12'h020;
rommem[11792] <= 12'h072;
rommem[11793] <= 12'h08D;
rommem[11794] <= 12'hFB2;
rommem[11795] <= 12'h08D;
rommem[11796] <= 12'hFCC;
rommem[11797] <= 12'h020;
rommem[11798] <= 12'h06C;
rommem[11799] <= 12'h08D;
rommem[11800] <= 12'hF9A;
rommem[11801] <= 12'h0FC;
rommem[11802] <= 12'h000;
rommem[11803] <= 12'h942;
rommem[11804] <= 12'h0FD;
rommem[11805] <= 12'h000;
rommem[11806] <= 12'h946;
rommem[11807] <= 12'h0FC;
rommem[11808] <= 12'h000;
rommem[11809] <= 12'h940;
rommem[11810] <= 12'h0FD;
rommem[11811] <= 12'h000;
rommem[11812] <= 12'h944;
rommem[11813] <= 12'h020;
rommem[11814] <= 12'h069;
rommem[11815] <= 12'h08D;
rommem[11816] <= 12'hF9C;
rommem[11817] <= 12'h0FC;
rommem[11818] <= 12'h000;
rommem[11819] <= 12'h942;
rommem[11820] <= 12'h0FD;
rommem[11821] <= 12'h000;
rommem[11822] <= 12'h946;
rommem[11823] <= 12'h0FC;
rommem[11824] <= 12'h000;
rommem[11825] <= 12'h940;
rommem[11826] <= 12'h0FD;
rommem[11827] <= 12'h000;
rommem[11828] <= 12'h944;
rommem[11829] <= 12'h020;
rommem[11830] <= 12'h059;
rommem[11831] <= 12'h07F;
rommem[11832] <= 12'h000;
rommem[11833] <= 12'h94A;
rommem[11834] <= 12'h0CC;
rommem[11835] <= 12'hFFE;
rommem[11836] <= 12'hE93;
rommem[11837] <= 12'h03F;
rommem[11838] <= 12'h004;
rommem[11839] <= 12'h03F;
rommem[11840] <= 12'h001;
rommem[11841] <= 12'h0C1;
rommem[11842] <= 12'h01A;
rommem[11843] <= 12'h027;
rommem[11844] <= 12'h04B;
rommem[11845] <= 12'h0C1;
rommem[11846] <= 12'h053;
rommem[11847] <= 12'h026;
rommem[11848] <= 12'h03A;
rommem[11849] <= 12'h03F;
rommem[11850] <= 12'h001;
rommem[11851] <= 12'h0C1;
rommem[11852] <= 12'h030;
rommem[11853] <= 12'h025;
rommem[11854] <= 12'h034;
rommem[11855] <= 12'h0C1;
rommem[11856] <= 12'h039;
rommem[11857] <= 12'h022;
rommem[11858] <= 12'h030;
rommem[11859] <= 12'h0F7;
rommem[11860] <= 12'h000;
rommem[11861] <= 12'h948;
rommem[11862] <= 12'h08D;
rommem[11863] <= 12'hF1D;
rommem[11864] <= 12'h0F7;
rommem[11865] <= 12'h000;
rommem[11866] <= 12'h949;
rommem[11867] <= 12'h07D;
rommem[11868] <= 12'h000;
rommem[11869] <= 12'h94A;
rommem[11870] <= 12'h026;
rommem[11871] <= 12'h030;
rommem[11872] <= 12'h0F6;
rommem[11873] <= 12'h000;
rommem[11874] <= 12'h810;
rommem[11875] <= 12'h07F;
rommem[11876] <= 12'h000;
rommem[11877] <= 12'h811;
rommem[11878] <= 12'h0CC;
rommem[11879] <= 12'h000;
rommem[11880] <= 12'h07B;
rommem[11881] <= 12'h08E;
rommem[11882] <= 12'h000;
rommem[11883] <= 12'h28E;
rommem[11884] <= 12'h017;
rommem[11885] <= 12'hFFF;
rommem[11886] <= 12'hF31;
rommem[11887] <= 12'h0CC;
rommem[11888] <= 12'hFFE;
rommem[11889] <= 12'hE3B;
rommem[11890] <= 12'h017;
rommem[11891] <= 12'hFFF;
rommem[11892] <= 12'h54A;
rommem[11893] <= 12'h0CC;
rommem[11894] <= 12'hFFF;
rommem[11895] <= 12'h06E;
rommem[11896] <= 12'h017;
rommem[11897] <= 12'hFFF;
rommem[11898] <= 12'h544;
rommem[11899] <= 12'h0CC;
rommem[11900] <= 12'hFFE;
rommem[11901] <= 12'hE30;
rommem[11902] <= 12'h0FD;
rommem[11903] <= 12'h000;
rommem[11904] <= 12'h808;
rommem[11905] <= 12'h0CC;
rommem[11906] <= 12'hFFF;
rommem[11907] <= 12'h055;
rommem[11908] <= 12'h0FD;
rommem[11909] <= 12'h000;
rommem[11910] <= 12'h80C;
rommem[11911] <= 12'h0CC;
rommem[11912] <= 12'h006;
rommem[11913] <= 12'h3FF;
rommem[11914] <= 12'h0FD;
rommem[11915] <= 12'h000;
rommem[11916] <= 12'h908;
rommem[11917] <= 12'h07F;
rommem[11918] <= 12'h000;
rommem[11919] <= 12'h90E;
rommem[11920] <= 12'h01F;
rommem[11921] <= 12'h0A8;
rommem[11922] <= 12'h0B7;
rommem[11923] <= 12'h000;
rommem[11924] <= 12'h90F;
rommem[11925] <= 12'h07F;
rommem[11926] <= 12'h000;
rommem[11927] <= 12'h90A;
rommem[11928] <= 12'h0CC;
rommem[11929] <= 12'hFFE;
rommem[11930] <= 12'hEA7;
rommem[11931] <= 12'h0FD;
rommem[11932] <= 12'h000;
rommem[11933] <= 12'h90B;
rommem[11934] <= 12'h07F;
rommem[11935] <= 12'h000;
rommem[11936] <= 12'h902;
rommem[11937] <= 12'h07F;
rommem[11938] <= 12'h000;
rommem[11939] <= 12'h904;
rommem[11940] <= 12'h07F;
rommem[11941] <= 12'h000;
rommem[11942] <= 12'h906;
rommem[11943] <= 12'h032;
rommem[11944] <= 12'h80F;
rommem[11945] <= 12'h006;
rommem[11946] <= 12'hFFF;
rommem[11947] <= 12'h05F;
rommem[11948] <= 12'h017;
rommem[11874] <= 12'h948;
rommem[11875] <= 12'h0C1;
rommem[11876] <= 12'h030;
rommem[11877] <= 12'h027;
rommem[11878] <= 12'h01C;
rommem[11879] <= 12'h0C1;
rommem[11880] <= 12'h031;
rommem[11881] <= 12'h027;
rommem[11882] <= 12'hFA0;
rommem[11883] <= 12'h0C1;
rommem[11884] <= 12'h032;
rommem[11885] <= 12'h027;
rommem[11886] <= 12'hFA2;
rommem[11887] <= 12'h0C1;
rommem[11888] <= 12'h033;
rommem[11889] <= 12'h027;
rommem[11890] <= 12'h010;
rommem[11891] <= 12'h0C1;
rommem[11892] <= 12'h035;
rommem[11893] <= 12'h027;
rommem[11894] <= 12'h00C;
rommem[11895] <= 12'h0C1;
rommem[11896] <= 12'h037;
rommem[11897] <= 12'h027;
rommem[11898] <= 12'h015;
rommem[11899] <= 12'h0C1;
rommem[11900] <= 12'h038;
rommem[11901] <= 12'h027;
rommem[11902] <= 12'hFA8;
rommem[11903] <= 12'h0C1;
rommem[11904] <= 12'h039;
rommem[11905] <= 12'h027;
rommem[11906] <= 12'hF94;
rommem[11907] <= 12'h0C6;
rommem[11908] <= 12'h02E;
rommem[11909] <= 12'h03F;
rommem[11910] <= 12'h002;
rommem[11911] <= 12'h08D;
rommem[11912] <= 12'hECF;
rommem[11913] <= 12'h07D;
rommem[11914] <= 12'h000;
rommem[11915] <= 12'h94A;
rommem[11916] <= 12'h026;
rommem[11917] <= 12'h002;
rommem[11918] <= 12'h020;
rommem[11919] <= 12'hFAF;
rommem[11920] <= 12'h016;
rommem[11921] <= 12'h000;
rommem[11922] <= 12'h1A6;
rommem[11923] <= 12'h053;
rommem[11924] <= 12'h031;
rommem[11925] <= 12'h039;
rommem[11926] <= 12'h020;
rommem[11927] <= 12'h04C;
rommem[11928] <= 12'h06F;
rommem[11929] <= 12'h061;
rommem[11930] <= 12'h064;
rommem[11931] <= 12'h065;
rommem[11932] <= 12'h072;
rommem[11933] <= 12'h020;
rommem[11934] <= 12'h041;
rommem[11935] <= 12'h063;
rommem[11936] <= 12'h074;
rommem[11937] <= 12'h069;
rommem[11938] <= 12'h076;
rommem[11939] <= 12'h065;
rommem[11940] <= 12'h00D;
rommem[11941] <= 12'h00A;
rommem[11942] <= 12'h000;
rommem[11943] <= 12'h020;
rommem[11944] <= 12'hBE7;
rommem[11945] <= 12'h034;
rommem[11946] <= 12'h004;
rommem[11947] <= 12'h015;
rommem[11948] <= 12'h0F6;
rommem[11949] <= 12'hFFF;
rommem[11950] <= 12'hE67;
rommem[11951] <= 12'h0CC;
rommem[11952] <= 12'hFFE;
rommem[11953] <= 12'hBE4;
rommem[11954] <= 12'h0FD;
rommem[11955] <= 12'h000;
rommem[11956] <= 12'h804;
rommem[11957] <= 12'h0CC;
rommem[11958] <= 12'hFFE;
rommem[11959] <= 12'h2FE;
rommem[11960] <= 12'h0FD;
rommem[11961] <= 12'h000;
rommem[11962] <= 12'h800;
rommem[11963] <= 12'h0CC;
rommem[11964] <= 12'hFFE;
rommem[11965] <= 12'hE30;
rommem[11966] <= 12'h0FD;
rommem[11967] <= 12'h000;
rommem[11968] <= 12'h808;
rommem[11969] <= 12'h0AD;
rommem[11970] <= 12'h90F;
rommem[11971] <= 12'h000;
rommem[11972] <= 12'h808;
rommem[11973] <= 12'h0CC;
rommem[11974] <= 12'hFFF;
rommem[11975] <= 12'hFFF;
rommem[11976] <= 12'h017;
rommem[11977] <= 12'hFFF;
rommem[11978] <= 12'hE0F;
rommem[11979] <= 12'h0C1;
rommem[11980] <= 12'h00D;
rommem[11981] <= 12'h027;
rommem[11982] <= 12'h005;
rommem[11983] <= 12'h017;
rommem[11984] <= 12'hFFF;
rommem[11985] <= 12'hE40;
rommem[11986] <= 12'h020;
rommem[11987] <= 12'hFF1;
rommem[11988] <= 12'h0CC;
rommem[11989] <= 12'h005;
rommem[11990] <= 12'h050;
rommem[11991] <= 12'h015;
rommem[11992] <= 12'h0FD;
rommem[11993] <= 12'hFFF;
rommem[11994] <= 12'hE60;
rommem[11995] <= 12'h001;
rommem[11996] <= 12'h00F;
rommem[11997] <= 12'h111;
rommem[11998] <= 12'h017;
rommem[11999] <= 12'hFFF;
rommem[12000] <= 12'h3FA;
rommem[12001] <= 12'h01F;
rommem[12002] <= 12'h002;
rommem[12003] <= 12'h08D;
rommem[12004] <= 12'h067;
rommem[12005] <= 12'h0C1;
rommem[12006] <= 12'h024;
rommem[12007] <= 12'h027;
rommem[12008] <= 12'hFFA;
rommem[12009] <= 12'h031;
rommem[12010] <= 12'h3FF;
rommem[12011] <= 12'h01F;
rommem[12012] <= 12'h023;
rommem[12013] <= 12'h05F;
rommem[12014] <= 12'h08E;
rommem[12015] <= 12'hFFE;
rommem[12016] <= 12'hDE3;
rommem[12017] <= 12'h0A6;
rommem[12018] <= 12'hA00;
rommem[12019] <= 12'h06D;
rommem[12020] <= 12'h804;
rommem[12021] <= 12'h02B;
rommem[12022] <= 12'h00F;
rommem[12023] <= 12'h0A1;
rommem[12024] <= 12'h800;
rommem[12025] <= 12'h027;
rommem[12026] <= 12'hFF6;
rommem[12027] <= 12'h06D;
rommem[12028] <= 12'h800;
rommem[12029] <= 12'h027;
rommem[12030] <= 12'hFA8;
rommem[12031] <= 12'h02A;
rommem[12032] <= 12'hFFA;
rommem[12033] <= 12'h05C;
rommem[12034] <= 12'h01F;
rommem[12035] <= 12'h032;
rommem[12036] <= 12'h020;
rommem[12037] <= 12'hFEB;
rommem[12038] <= 12'h0A8;
rommem[12039] <= 12'h804;
rommem[12040] <= 12'h048;
rommem[12041] <= 12'h026;
rommem[12042] <= 12'hFF0;
rommem[12043] <= 12'h058;
rommem[12044] <= 12'h08E;
rommem[12045] <= 12'hFFE;
rommem[12046] <= 12'hE0E;
rommem[12047] <= 12'h06E;
rommem[12048] <= 12'h905;
rommem[12049] <= 12'h08D;
rommem[12050] <= 12'h034;
rommem[12051] <= 12'h0C1;
rommem[12052] <= 12'h073;
rommem[12053] <= 12'h026;
rommem[12054] <= 12'h00E;
rommem[12055] <= 12'h0CC;
rommem[12056] <= 12'hFFE;
rommem[12057] <= 12'hBE4;
rommem[12058] <= 12'h0FD;
rommem[11950] <= 12'hFFF;
rommem[11951] <= 12'hFE0;
rommem[11952] <= 12'h0F1;
rommem[11953] <= 12'hFFC;
rommem[11954] <= 12'h010;
rommem[11955] <= 12'h026;
rommem[11956] <= 12'hFF6;
rommem[11957] <= 12'h017;
rommem[11958] <= 12'hFFF;
rommem[11959] <= 12'hDAC;
rommem[11960] <= 12'h04D;
rommem[11961] <= 12'h02B;
rommem[11962] <= 12'h003;
rommem[11963] <= 12'h032;
rommem[11964] <= 12'h601;
rommem[11965] <= 12'h039;
rommem[11966] <= 12'h035;
rommem[11967] <= 12'h004;
rommem[11968] <= 12'h05D;
rommem[11969] <= 12'h02B;
rommem[11970] <= 12'hFE6;
rommem[11971] <= 12'h0CC;
rommem[11972] <= 12'hFFF;
rommem[11973] <= 12'hFFF;
rommem[11974] <= 12'h039;
rommem[11975] <= 12'h08D;
rommem[11976] <= 12'hFE0;
rommem[11977] <= 12'h020;
rommem[11978] <= 12'h009;
rommem[11979] <= 12'h08D;
rommem[11980] <= 12'hFDC;
rommem[11981] <= 12'h015;
rommem[11982] <= 12'h07D;
rommem[11983] <= 12'hFFF;
rommem[11984] <= 12'hFFC;
rommem[11985] <= 12'hA00;
rommem[11986] <= 12'h027;
rommem[11987] <= 12'h00C;
rommem[11988] <= 12'h081;
rommem[11989] <= 12'h00D;
rommem[11990] <= 12'h026;
rommem[11991] <= 12'h005;
rommem[11992] <= 12'h017;
rommem[11993] <= 12'hFFE;
rommem[11994] <= 12'h1F7;
rommem[11995] <= 12'h020;
rommem[11996] <= 12'h003;
rommem[11997] <= 12'h017;
rommem[11998] <= 12'hFFF;
rommem[11999] <= 12'h439;
rommem[12000] <= 12'h039;
rommem[12001] <= 12'h06E;
rommem[12002] <= 12'h90F;
rommem[12003] <= 12'h000;
rommem[12004] <= 12'h800;
rommem[12005] <= 12'h015;
rommem[12006] <= 12'h0F7;
rommem[12007] <= 12'hFFF;
rommem[12008] <= 12'hFFC;
rommem[12009] <= 12'hA00;
rommem[12010] <= 12'h039;
rommem[12011] <= 12'h015;
rommem[12012] <= 12'h0BF;
rommem[12013] <= 12'hFFF;
rommem[12014] <= 12'hE10;
rommem[12015] <= 12'h3C0;
rommem[12016] <= 12'h015;
rommem[12017] <= 12'h0FD;
rommem[12018] <= 12'hFFF;
rommem[12019] <= 12'hE10;
rommem[12020] <= 12'h3C2;
rommem[12021] <= 12'h039;
rommem[12022] <= 12'h000;
rommem[12023] <= 12'h000;
rommem[12024] <= 12'h000;
rommem[12025] <= 12'h000;
rommem[12026] <= 12'h000;
rommem[12027] <= 12'h000;
rommem[12028] <= 12'h000;
rommem[12029] <= 12'h000;
rommem[12030] <= 12'h000;
rommem[12031] <= 12'h000;
rommem[12032] <= 12'h000;
rommem[12033] <= 12'h000;
rommem[12034] <= 12'h000;
rommem[12035] <= 12'h000;
rommem[12036] <= 12'h000;
rommem[12037] <= 12'h000;
rommem[12038] <= 12'h000;
rommem[12039] <= 12'h000;
rommem[12040] <= 12'h000;
rommem[12041] <= 12'h000;
rommem[12042] <= 12'h000;
rommem[12043] <= 12'h000;
rommem[12044] <= 12'h000;
rommem[12045] <= 12'h000;
rommem[12046] <= 12'h000;
rommem[12047] <= 12'h000;
rommem[12048] <= 12'h000;
rommem[12049] <= 12'h000;
rommem[12050] <= 12'h000;
rommem[12051] <= 12'h000;
rommem[12052] <= 12'h000;
rommem[12053] <= 12'h000;
rommem[12054] <= 12'h000;
rommem[12055] <= 12'h000;
rommem[12056] <= 12'h000;
rommem[12057] <= 12'h000;
rommem[12058] <= 12'h000;
rommem[12059] <= 12'h000;
rommem[12060] <= 12'h804;
rommem[12061] <= 12'h0CC;
rommem[12062] <= 12'hFFE;
rommem[12063] <= 12'hC08;
rommem[12064] <= 12'h0FD;
rommem[12060] <= 12'h000;
rommem[12061] <= 12'h000;
rommem[12062] <= 12'h000;
rommem[12063] <= 12'h000;
rommem[12064] <= 12'h000;
rommem[12065] <= 12'h000;
rommem[12066] <= 12'h800;
rommem[12067] <= 12'h020;
rommem[12068] <= 12'hF82;
rommem[12069] <= 12'h0C1;
rommem[12070] <= 12'h063;
rommem[12071] <= 12'h026;
rommem[12072] <= 12'hF7E;
rommem[12073] <= 12'h0CC;
rommem[12074] <= 12'hFFE;
rommem[12075] <= 12'hA12;
rommem[12076] <= 12'h0FD;
rommem[12077] <= 12'h000;
rommem[12078] <= 12'h804;
rommem[12079] <= 12'h0CC;
rommem[12080] <= 12'hFFE;
rommem[12081] <= 12'h2FE;
rommem[12082] <= 12'h0FD;
rommem[12083] <= 12'h000;
rommem[12084] <= 12'h800;
rommem[12085] <= 12'h020;
rommem[12086] <= 12'hF70;
rommem[12087] <= 12'h0CC;
rommem[12088] <= 12'hFFF;
rommem[12089] <= 12'h06E;
rommem[12090] <= 12'h017;
rommem[12091] <= 12'hFFF;
rommem[12092] <= 12'h482;
rommem[12093] <= 12'h020;
rommem[12094] <= 12'hF68;
rommem[12095] <= 12'h017;
rommem[12096] <= 12'hFFF;
rommem[12097] <= 12'h2EC;
rommem[12098] <= 12'h017;
rommem[12099] <= 12'hFFF;
rommem[12100] <= 12'h35C;
rommem[12101] <= 12'h020;
rommem[12102] <= 12'hF60;
rommem[12103] <= 12'h0E6;
rommem[12104] <= 12'hA04;
rommem[12105] <= 12'h031;
rommem[12106] <= 12'h201;
rommem[12107] <= 12'h039;
rommem[12108] <= 12'h08D;
rommem[12109] <= 12'hFF9;
rommem[12110] <= 12'h0C1;
rommem[12111] <= 12'h020;
rommem[12112] <= 12'h027;
rommem[12113] <= 12'hFFA;
rommem[12114] <= 12'h039;
rommem[12115] <= 12'h08D;
rommem[12116] <= 12'hFF2;
rommem[12117] <= 12'h0C1;
rommem[12118] <= 12'h020;
rommem[12119] <= 12'h027;
rommem[12120] <= 12'hFFA;
rommem[12121] <= 12'h031;
rommem[12122] <= 12'h3FF;
rommem[12123] <= 12'h039;
rommem[12124] <= 12'h0FC;
rommem[12125] <= 12'h000;
rommem[12126] <= 12'h910;
rommem[12127] <= 12'h0FD;
rommem[12128] <= 12'h000;
rommem[12129] <= 12'h918;
rommem[12130] <= 12'h0FC;
rommem[12131] <= 12'h000;
rommem[12132] <= 12'h912;
rommem[12133] <= 12'h0FD;
rommem[12134] <= 12'h000;
rommem[12135] <= 12'h91A;
rommem[12136] <= 12'h078;
rommem[12137] <= 12'h000;
rommem[12138] <= 12'h913;
rommem[12139] <= 12'h079;
rommem[12140] <= 12'h000;
rommem[12141] <= 12'h912;
rommem[12142] <= 12'h079;
rommem[12143] <= 12'h000;
rommem[12144] <= 12'h911;
rommem[12145] <= 12'h079;
rommem[12146] <= 12'h000;
rommem[12147] <= 12'h910;
rommem[12148] <= 12'h078;
rommem[12149] <= 12'h000;
rommem[12150] <= 12'h913;
rommem[12151] <= 12'h079;
rommem[12152] <= 12'h000;
rommem[12153] <= 12'h912;
rommem[12154] <= 12'h079;
rommem[12155] <= 12'h000;
rommem[12156] <= 12'h911;
rommem[12157] <= 12'h079;
rommem[12158] <= 12'h000;
rommem[12159] <= 12'h910;
rommem[12160] <= 12'h0FC;
rommem[12161] <= 12'h000;
rommem[12162] <= 12'h912;
rommem[12163] <= 12'h0F3;
rommem[12164] <= 12'h000;
rommem[12165] <= 12'h91A;
rommem[12166] <= 12'h0F6;
rommem[12167] <= 12'h000;
rommem[12168] <= 12'h911;
rommem[12169] <= 12'h0F9;
rommem[12170] <= 12'h000;
rommem[12171] <= 12'h919;
rommem[12172] <= 12'h0F7;
rommem[12173] <= 12'h000;
rommem[12174] <= 12'h911;
rommem[12175] <= 12'h0B6;
rommem[12176] <= 12'h000;
rommem[12177] <= 12'h910;
rommem[12178] <= 12'h0B9;
rommem[12179] <= 12'h000;
rommem[12180] <= 12'h918;
rommem[12181] <= 12'h0B7;
rommem[12182] <= 12'h000;
rommem[12183] <= 12'h910;
rommem[12184] <= 12'h078;
rommem[12185] <= 12'h000;
rommem[12186] <= 12'h913;
rommem[12187] <= 12'h079;
rommem[12188] <= 12'h000;
rommem[12189] <= 12'h912;
rommem[12190] <= 12'h079;
rommem[12191] <= 12'h000;
rommem[12192] <= 12'h911;
rommem[12193] <= 12'h079;
rommem[12194] <= 12'h000;
rommem[12195] <= 12'h910;
rommem[12196] <= 12'h039;
rommem[12197] <= 12'h08D;
rommem[12198] <= 12'hFAC;
rommem[12199] <= 12'h08D;
rommem[12200] <= 12'h046;
rommem[12201] <= 12'h0FC;
rommem[12202] <= 12'h000;
rommem[12203] <= 12'h910;
rommem[12204] <= 12'h0FD;
rommem[12205] <= 12'h000;
rommem[12206] <= 12'h920;
rommem[12207] <= 12'h0FC;
rommem[12208] <= 12'h000;
rommem[12209] <= 12'h912;
rommem[12210] <= 12'h0FD;
rommem[12211] <= 12'h000;
rommem[12212] <= 12'h922;
rommem[12213] <= 12'h08D;
rommem[12214] <= 12'hF9C;
rommem[12215] <= 12'h08D;
rommem[12216] <= 12'h036;
rommem[12217] <= 12'h0FC;
rommem[12218] <= 12'h000;
rommem[12219] <= 12'h910;
rommem[12220] <= 12'h0FD;
rommem[12221] <= 12'h000;
rommem[12222] <= 12'h924;
rommem[12223] <= 12'h0FC;
rommem[12224] <= 12'h000;
rommem[12225] <= 12'h912;
rommem[12226] <= 12'h0FD;
rommem[12227] <= 12'h000;
rommem[12228] <= 12'h926;
rommem[12229] <= 12'h039;
rommem[12230] <= 12'h08D;
rommem[12231] <= 12'hFDD;
rommem[12232] <= 12'h0FC;
rommem[12233] <= 12'h000;
rommem[12234] <= 12'h926;
rommem[12235] <= 12'h0B3;
rommem[12236] <= 12'h000;
rommem[12237] <= 12'h922;
rommem[12238] <= 12'h0FC;
rommem[12239] <= 12'h000;
rommem[12240] <= 12'h924;
rommem[12241] <= 12'h0F2;
rommem[12242] <= 12'h000;
rommem[12243] <= 12'h921;
rommem[12244] <= 12'h0B2;
rommem[12245] <= 12'h000;
rommem[12246] <= 12'h920;
rommem[12247] <= 12'h124;
rommem[12248] <= 12'h000;
rommem[12249] <= 12'h007;
rommem[12250] <= 12'h0AD;
rommem[12251] <= 12'h90F;
rommem[12252] <= 12'h000;
rommem[12253] <= 12'h80C;
rommem[12254] <= 12'h016;
rommem[12255] <= 12'hFFF;
rommem[12256] <= 12'hEC6;
rommem[12257] <= 12'h039;
rommem[12258] <= 12'h078;
rommem[12259] <= 12'h000;
rommem[12260] <= 12'h913;
rommem[12261] <= 12'h079;
rommem[12262] <= 12'h000;
rommem[12263] <= 12'h912;
rommem[12264] <= 12'h079;
rommem[12265] <= 12'h000;
rommem[12266] <= 12'h911;
rommem[12267] <= 12'h079;
rommem[12268] <= 12'h000;
rommem[12269] <= 12'h910;
rommem[12270] <= 12'h039;
rommem[12271] <= 12'h04F;
rommem[12272] <= 12'h05F;
rommem[12273] <= 12'h0FD;
rommem[12274] <= 12'h000;
rommem[12275] <= 12'h910;
rommem[12276] <= 12'h0FD;
rommem[12277] <= 12'h000;
rommem[12278] <= 12'h912;
rommem[12279] <= 12'h034;
rommem[12280] <= 12'h010;
rommem[12281] <= 12'h08E;
rommem[12066] <= 12'hFFE;
rommem[12067] <= 12'hF3F;
rommem[12068] <= 12'h000;
rommem[12069] <= 12'h000;
rommem[12070] <= 12'hFFE;
rommem[12071] <= 12'hF28;
rommem[12072] <= 12'h015;
rommem[12073] <= 12'h0F6;
rommem[12074] <= 12'hFFF;
rommem[12075] <= 12'hFFF;
rommem[12076] <= 12'hFE0;
rommem[12077] <= 12'h08E;
rommem[12078] <= 12'hFFC;
rommem[12079] <= 12'h000;
rommem[12080] <= 12'h03A;
rommem[12081] <= 12'h0A7;
rommem[12082] <= 12'h804;
rommem[12083] <= 12'h07D;
rommem[12084] <= 12'hFFC;
rommem[12085] <= 12'h010;
rommem[12086] <= 12'h126;
rommem[12087] <= 12'h000;
rommem[12088] <= 12'h7D1;
rommem[12089] <= 12'h0F7;
rommem[12090] <= 12'hFFC;
rommem[12091] <= 12'h010;
rommem[12092] <= 12'h016;
rommem[12093] <= 12'h000;
rommem[12094] <= 12'h7CB;
rommem[12095] <= 12'h015;
rommem[12096] <= 12'h0F6;
rommem[12097] <= 12'hFFF;
rommem[12098] <= 12'hFFF;
rommem[12099] <= 12'hFE0;
rommem[12100] <= 12'h08E;
rommem[12101] <= 12'hFFC;
rommem[12102] <= 12'h000;
rommem[12103] <= 12'h03A;
rommem[12104] <= 12'h06F;
rommem[12105] <= 12'h804;
rommem[12106] <= 12'h017;
rommem[12107] <= 12'hFFF;
rommem[12108] <= 12'h2BC;
rommem[12109] <= 12'h0F1;
rommem[12110] <= 12'hFFC;
rommem[12111] <= 12'h010;
rommem[12112] <= 12'h126;
rommem[12113] <= 12'h000;
rommem[12114] <= 12'h7B7;
rommem[12115] <= 12'h086;
rommem[12116] <= 12'h00F;
rommem[12117] <= 12'h05C;
rommem[12118] <= 12'h0C4;
rommem[12119] <= 12'h00F;
rommem[12120] <= 12'h03A;
rommem[12121] <= 12'h06D;
rommem[12122] <= 12'h804;
rommem[12123] <= 12'h026;
rommem[12124] <= 12'h009;
rommem[12125] <= 12'h04A;
rommem[12126] <= 12'h026;
rommem[12127] <= 12'hFF5;
rommem[12128] <= 12'h0C6;
rommem[12129] <= 12'h001;
rommem[12130] <= 12'h086;
rommem[12131] <= 12'h018;
rommem[12132] <= 12'h0A7;
rommem[12133] <= 12'h804;
rommem[12134] <= 12'h0F7;
rommem[12135] <= 12'hFFC;
rommem[12136] <= 12'h010;
rommem[12137] <= 12'h017;
rommem[12138] <= 12'hFFF;
rommem[12139] <= 12'h266;
rommem[12140] <= 12'h016;
rommem[12141] <= 12'h000;
rommem[12142] <= 12'h79B;
rommem[12143] <= 12'h18E;
rommem[12144] <= 12'h000;
rommem[12145] <= 12'h000;
rommem[12146] <= 12'h015;
rommem[12147] <= 12'h1BF;
rommem[12148] <= 12'hFFF;
rommem[12149] <= 12'hE30;
rommem[12150] <= 12'h604;
rommem[12151] <= 12'h015;
rommem[12152] <= 12'h07F;
rommem[12153] <= 12'hFFF;
rommem[12154] <= 12'hE30;
rommem[12155] <= 12'h608;
rommem[12156] <= 12'h015;
rommem[12157] <= 12'h07F;
rommem[12158] <= 12'hFFF;
rommem[12159] <= 12'hE30;
rommem[12160] <= 12'h609;
rommem[12161] <= 12'h015;
rommem[12162] <= 12'h0FD;
rommem[12163] <= 12'hFFF;
rommem[12164] <= 12'hE30;
rommem[12165] <= 12'h60A;
rommem[12166] <= 12'h015;
rommem[12167] <= 12'h07F;
rommem[12168] <= 12'hFFF;
rommem[12169] <= 12'hE30;
rommem[12170] <= 12'h60C;
rommem[12171] <= 12'h015;
rommem[12172] <= 12'h07F;
rommem[12173] <= 12'hFFF;
rommem[12174] <= 12'hE30;
rommem[12175] <= 12'h60D;
rommem[12176] <= 12'h015;
rommem[12177] <= 12'h0BF;
rommem[12178] <= 12'hFFF;
rommem[12179] <= 12'hE30;
rommem[12180] <= 12'h60E;
rommem[12181] <= 12'h031;
rommem[12182] <= 12'h201;
rommem[12183] <= 12'h18C;
rommem[12184] <= 12'h000;
rommem[12185] <= 12'h400;
rommem[12186] <= 12'h025;
rommem[12187] <= 12'hFD6;
rommem[12188] <= 12'h039;
rommem[12189] <= 12'h015;
rommem[12190] <= 12'h0FD;
rommem[12191] <= 12'hFFF;
rommem[12192] <= 12'hE30;
rommem[12193] <= 12'h604;
rommem[12194] <= 12'h015;
rommem[12195] <= 12'h0BE;
rommem[12196] <= 12'hFFF;
rommem[12197] <= 12'hE30;
rommem[12198] <= 12'h600;
rommem[12199] <= 12'h015;
rommem[12200] <= 12'h0FC;
rommem[12201] <= 12'hFFF;
rommem[12202] <= 12'hE30;
rommem[12203] <= 12'h602;
rommem[12204] <= 12'h015;
rommem[12205] <= 12'h0F7;
rommem[12206] <= 12'hFFF;
rommem[12207] <= 12'hE30;
rommem[12208] <= 12'h603;
rommem[12209] <= 12'h039;
rommem[12210] <= 12'h03C;
rommem[12211] <= 12'h83E;
rommem[12212] <= 12'h062;
rommem[12213] <= 12'h873;
rommem[12214] <= 12'h062;
rommem[12215] <= 12'h863;
rommem[12216] <= 12'h044;
rommem[12217] <= 12'h852;
rommem[12218] <= 12'h844;
rommem[12219] <= 12'h83A;
rommem[12220] <= 12'h046;
rommem[12221] <= 12'h049;
rommem[12222] <= 12'h847;
rommem[12223] <= 12'h046;
rommem[12224] <= 12'h049;
rommem[12225] <= 12'h84C;
rommem[12226] <= 12'h046;
rommem[12227] <= 12'h84C;
rommem[12228] <= 12'h84A;
rommem[12229] <= 12'h052;
rommem[12230] <= 12'h041;
rommem[12231] <= 12'h04D;
rommem[12232] <= 12'h054;
rommem[12233] <= 12'h045;
rommem[12234] <= 12'h053;
rommem[12235] <= 12'h854;
rommem[12236] <= 12'h053;
rommem[12237] <= 12'h050;
rommem[12238] <= 12'h844;
rommem[12239] <= 12'h054;
rommem[12240] <= 12'h049;
rommem[12241] <= 12'h852;
rommem[12242] <= 12'h855;
rommem[12243] <= 12'h065;
rommem[12244] <= 12'h078;
rommem[12245] <= 12'h069;
rommem[12246] <= 12'h874;
rommem[12247] <= 12'h83F;
rommem[12248] <= 12'h043;
rommem[12249] <= 12'h04C;
rommem[12250] <= 12'h853;
rommem[12251] <= 12'h053;
rommem[12252] <= 12'h031;
rommem[12253] <= 12'h839;
rommem[12254] <= 12'h04A;
rommem[12255] <= 12'h044;
rommem[12256] <= 12'h834;
rommem[12257] <= 12'h000;
rommem[12258] <= 12'h000;
rommem[12259] <= 12'hFFF;
rommem[12260] <= 12'h0F8;
rommem[12261] <= 12'hFFF;
rommem[12262] <= 12'h13A;
rommem[12263] <= 12'hFFF;
rommem[12264] <= 12'h145;
rommem[12265] <= 12'hFFF;
rommem[12266] <= 12'h54A;
rommem[12267] <= 12'hFFF;
rommem[12268] <= 12'h484;
rommem[12269] <= 12'hFFF;
rommem[12270] <= 12'h4E0;
rommem[12271] <= 12'hFE0;
rommem[12272] <= 12'h000;
rommem[12273] <= 12'hFFF;
rommem[12274] <= 12'h520;
rommem[12275] <= 12'hFFF;
rommem[12276] <= 12'h60B;
rommem[12277] <= 12'hFFF;
rommem[12278] <= 12'h595;
rommem[12279] <= 12'hFFD;
rommem[12280] <= 12'h400;
rommem[12281] <= 12'hFF8;
rommem[12282] <= 12'h000;
rommem[12283] <= 12'h000;
rommem[12284] <= 12'h08D;
rommem[12285] <= 12'hF49;
rommem[12286] <= 12'h08D;
rommem[12287] <= 12'h01F;
rommem[12288] <= 12'h0C1;
rommem[12283] <= 12'hFFE;
rommem[12284] <= 12'h4F4;
rommem[12285] <= 12'hFF8;
rommem[12286] <= 12'h003;
rommem[12287] <= 12'hFFF;
rommem[12288] <= 12'h6F3;
rommem[12289] <= 12'hFFF;
rommem[12290] <= 12'h027;
rommem[12291] <= 12'h017;
rommem[12292] <= 12'h08D;
rommem[12293] <= 12'hFDC;
rommem[12294] <= 12'h08D;
rommem[12295] <= 12'hFDA;
rommem[12296] <= 12'h08D;
rommem[12297] <= 12'hFD8;
rommem[12298] <= 12'h08D;
rommem[12299] <= 12'hFD6;
rommem[12300] <= 12'h0C4;
rommem[12301] <= 12'h00F;
rommem[12302] <= 12'h0FA;
rommem[12303] <= 12'h000;
rommem[12304] <= 12'h913;
rommem[12305] <= 12'h0F7;
rommem[12306] <= 12'h000;
rommem[12307] <= 12'h913;
rommem[12308] <= 12'h030;
rommem[12309] <= 12'h001;
rommem[12310] <= 12'h08C;
rommem[12311] <= 12'h000;
rommem[12312] <= 12'h00C;
rommem[12313] <= 12'h025;
rommem[12314] <= 12'hFE1;
rommem[12315] <= 12'h01F;
rommem[12316] <= 12'h010;
rommem[12317] <= 12'h035;
rommem[12318] <= 12'h090;
rommem[12319] <= 12'h0C1;
rommem[12320] <= 12'h030;
rommem[12321] <= 12'h025;
rommem[12322] <= 12'h021;
rommem[12323] <= 12'h0C1;
rommem[12324] <= 12'h039;
rommem[12325] <= 12'h022;
rommem[12326] <= 12'h003;
rommem[12327] <= 12'h0C0;
rommem[12328] <= 12'h030;
rommem[12329] <= 12'h039;
rommem[12330] <= 12'h0C1;
rommem[12331] <= 12'h041;
rommem[12332] <= 12'h025;
rommem[12333] <= 12'h016;
rommem[12334] <= 12'h0C1;
rommem[12335] <= 12'h046;
rommem[12336] <= 12'h022;
rommem[12337] <= 12'h005;
rommem[12338] <= 12'h0C0;
rommem[12339] <= 12'h041;
rommem[12340] <= 12'h0CB;
rommem[12341] <= 12'h00A;
rommem[12342] <= 12'h039;
rommem[12343] <= 12'h0C1;
rommem[12344] <= 12'h061;
rommem[12345] <= 12'h025;
rommem[12346] <= 12'h009;
rommem[12347] <= 12'h0C1;
rommem[12348] <= 12'h07A;
rommem[12349] <= 12'h022;
rommem[12350] <= 12'h005;
rommem[12351] <= 12'h0C0;
rommem[12352] <= 12'h061;
rommem[12353] <= 12'h0CB;
rommem[12354] <= 12'h00A;
rommem[12355] <= 12'h039;
rommem[12356] <= 12'h0C6;
rommem[12357] <= 12'hFFF;
rommem[12358] <= 12'h039;
rommem[12359] <= 12'h0C1;
rommem[12360] <= 12'h030;
rommem[12361] <= 12'h024;
rommem[12362] <= 12'h007;
rommem[12363] <= 12'h0C1;
rommem[12364] <= 12'h03A;
rommem[12365] <= 12'h025;
rommem[12366] <= 12'h003;
rommem[12367] <= 12'h0C0;
rommem[12368] <= 12'h030;
rommem[12369] <= 12'h039;
rommem[12370] <= 12'h0C6;
rommem[12371] <= 12'hFFF;
rommem[12372] <= 12'h039;
rommem[12373] <= 12'h0CC;
rommem[12374] <= 12'hFFF;
rommem[12375] <= 12'h066;
rommem[12376] <= 12'h017;
rommem[12377] <= 12'hFFF;
rommem[12378] <= 12'h364;
rommem[12379] <= 12'h07E;
rommem[12380] <= 12'hFFE;
rommem[12381] <= 12'hEA7;
rommem[12382] <= 12'h0DD;
rommem[12383] <= 12'h024;
rommem[12384] <= 12'h09F;
rommem[12385] <= 12'h026;
rommem[12386] <= 12'h0BD;
rommem[12387] <= 12'hFFE;
rommem[12388] <= 12'h3BF;
rommem[12389] <= 12'h039;
rommem[12390] <= 12'h02A;
rommem[12391] <= 12'h02A;
rommem[12392] <= 12'h045;
rommem[12393] <= 12'h072;
rommem[12394] <= 12'h072;
rommem[12395] <= 12'h00D;
rommem[12396] <= 12'h00A;
rommem[12397] <= 12'h000;
rommem[12398] <= 12'h03F;
rommem[12399] <= 12'h020;
rommem[12400] <= 12'h03D;
rommem[12401] <= 12'h020;
rommem[12402] <= 12'h044;
rommem[12403] <= 12'h069;
rommem[12404] <= 12'h073;
rommem[12405] <= 12'h070;
rommem[12406] <= 12'h06C;
rommem[12407] <= 12'h061;
rommem[12408] <= 12'h079;
rommem[12409] <= 12'h020;
rommem[12410] <= 12'h068;
rommem[12411] <= 12'h065;
rommem[12412] <= 12'h06C;
rommem[12413] <= 12'h070;
rommem[12414] <= 12'h00D;
rommem[12415] <= 12'h00A;
rommem[12416] <= 12'h043;
rommem[12417] <= 12'h04C;
rommem[12418] <= 12'h053;
rommem[12419] <= 12'h020;
rommem[12420] <= 12'h03D;
rommem[12421] <= 12'h020;
rommem[12422] <= 12'h063;
rommem[12423] <= 12'h06C;
rommem[12424] <= 12'h065;
rommem[12425] <= 12'h061;
rommem[12426] <= 12'h072;
rommem[12427] <= 12'h020;
rommem[12428] <= 12'h073;
rommem[12429] <= 12'h063;
rommem[12430] <= 12'h072;
rommem[12431] <= 12'h065;
rommem[12432] <= 12'h065;
rommem[12433] <= 12'h06E;
rommem[12434] <= 12'h00D;
rommem[12435] <= 12'h00A;
rommem[12436] <= 12'h062;
rommem[12437] <= 12'h073;
rommem[12438] <= 12'h020;
rommem[12439] <= 12'h03D;
rommem[12440] <= 12'h020;
rommem[12441] <= 12'h073;
rommem[12442] <= 12'h065;
rommem[12443] <= 12'h074;
rommem[12444] <= 12'h020;
rommem[12445] <= 12'h062;
rommem[12446] <= 12'h072;
rommem[12447] <= 12'h065;
rommem[12448] <= 12'h061;
rommem[12449] <= 12'h06B;
rommem[12450] <= 12'h070;
rommem[12451] <= 12'h06F;
rommem[12452] <= 12'h069;
rommem[12453] <= 12'h06E;
rommem[12454] <= 12'h074;
rommem[12455] <= 12'h00D;
rommem[12456] <= 12'h00A;
rommem[12457] <= 12'h062;
rommem[12458] <= 12'h063;
rommem[12459] <= 12'h020;
rommem[12460] <= 12'h03D;
rommem[12461] <= 12'h020;
rommem[12462] <= 12'h063;
rommem[12463] <= 12'h06C;
rommem[12464] <= 12'h065;
rommem[12465] <= 12'h061;
rommem[12466] <= 12'h072;
rommem[12467] <= 12'h020;
rommem[12468] <= 12'h062;
rommem[12469] <= 12'h072;
rommem[12470] <= 12'h065;
rommem[12471] <= 12'h061;
rommem[12472] <= 12'h06B;
rommem[12473] <= 12'h070;
rommem[12474] <= 12'h06F;
rommem[12475] <= 12'h069;
rommem[12476] <= 12'h06E;
rommem[12477] <= 12'h074;
rommem[12478] <= 12'h00D;
rommem[12479] <= 12'h00A;
rommem[12480] <= 12'h03A;
rommem[12481] <= 12'h020;
rommem[12482] <= 12'h03D;
rommem[12483] <= 12'h020;
rommem[12484] <= 12'h045;
rommem[12485] <= 12'h064;
rommem[12486] <= 12'h069;
rommem[12487] <= 12'h074;
rommem[12488] <= 12'h020;
rommem[12489] <= 12'h06D;
rommem[12490] <= 12'h065;
rommem[12491] <= 12'h06D;
rommem[12492] <= 12'h06F;
rommem[12493] <= 12'h072;
rommem[12494] <= 12'h079;
rommem[12495] <= 12'h020;
rommem[12496] <= 12'h062;
rommem[12497] <= 12'h079;
rommem[12498] <= 12'h074;
rommem[12499] <= 12'h065;
rommem[12500] <= 12'h073;
rommem[12501] <= 12'h00D;
rommem[12502] <= 12'h00A;
rommem[12503] <= 12'h044;
rommem[12504] <= 12'h052;
rommem[12505] <= 12'h020;
rommem[12506] <= 12'h03D;
rommem[12507] <= 12'h020;
rommem[12508] <= 12'h044;
rommem[12509] <= 12'h075;
rommem[12510] <= 12'h06D;
rommem[12511] <= 12'h070;
rommem[12512] <= 12'h020;
rommem[12513] <= 12'h072;
rommem[12514] <= 12'h065;
rommem[12515] <= 12'h067;
rommem[12516] <= 12'h069;
rommem[12517] <= 12'h073;
rommem[12518] <= 12'h074;
rommem[12519] <= 12'h065;
rommem[12520] <= 12'h072;
rommem[12521] <= 12'h073;
rommem[12522] <= 12'h00D;
rommem[12523] <= 12'h00A;
rommem[12524] <= 12'h044;
rommem[12525] <= 12'h020;
rommem[12526] <= 12'h03D;
rommem[12527] <= 12'h020;
rommem[12528] <= 12'h044;
rommem[12529] <= 12'h075;
rommem[12530] <= 12'h06D;
rommem[12531] <= 12'h070;
rommem[12532] <= 12'h020;
rommem[12533] <= 12'h06D;
rommem[12534] <= 12'h065;
rommem[12535] <= 12'h06D;
rommem[12536] <= 12'h06F;
rommem[12537] <= 12'h072;
rommem[12538] <= 12'h079;
rommem[12539] <= 12'h00D;
rommem[12540] <= 12'h00A;
rommem[12541] <= 12'h046;
rommem[12542] <= 12'h020;
rommem[12543] <= 12'h03D;
rommem[12544] <= 12'h020;
rommem[12545] <= 12'h046;
rommem[12546] <= 12'h069;
rommem[12547] <= 12'h06C;
rommem[12548] <= 12'h06C;
rommem[12549] <= 12'h020;
rommem[12550] <= 12'h06D;
rommem[12551] <= 12'h065;
rommem[12552] <= 12'h06D;
rommem[12553] <= 12'h06F;
rommem[12554] <= 12'h072;
rommem[12555] <= 12'h079;
rommem[12556] <= 12'h00D;
rommem[12557] <= 12'h00A;
rommem[12558] <= 12'h046;
rommem[12559] <= 12'h04C;
rommem[12560] <= 12'h020;
rommem[12561] <= 12'h03D;
rommem[12562] <= 12'h020;
rommem[12563] <= 12'h044;
rommem[12564] <= 12'h075;
rommem[12565] <= 12'h06D;
rommem[12566] <= 12'h070;
rommem[12567] <= 12'h020;
rommem[12568] <= 12'h049;
rommem[12569] <= 12'h02F;
rommem[12570] <= 12'h04F;
rommem[12571] <= 12'h020;
rommem[12572] <= 12'h046;
rommem[12573] <= 12'h06F;
rommem[12574] <= 12'h063;
rommem[12575] <= 12'h075;
rommem[12576] <= 12'h073;
rommem[12577] <= 12'h020;
rommem[12578] <= 12'h04C;
rommem[12579] <= 12'h069;
rommem[12580] <= 12'h073;
rommem[12581] <= 12'h074;
rommem[12582] <= 12'h00D;
rommem[12583] <= 12'h00A;
rommem[12584] <= 12'h046;
rommem[12585] <= 12'h049;
rommem[12586] <= 12'h047;
rommem[12587] <= 12'h020;
rommem[12588] <= 12'h03D;
rommem[12589] <= 12'h020;
rommem[12590] <= 12'h073;
rommem[12591] <= 12'h074;
rommem[12592] <= 12'h061;
rommem[12593] <= 12'h072;
rommem[12594] <= 12'h074;
rommem[12595] <= 12'h020;
rommem[12596] <= 12'h046;
rommem[12597] <= 12'h049;
rommem[12598] <= 12'h047;
rommem[12599] <= 12'h020;
rommem[12600] <= 12'h046;
rommem[12601] <= 12'h06F;
rommem[12602] <= 12'h072;
rommem[12603] <= 12'h074;
rommem[12604] <= 12'h068;
rommem[12605] <= 12'h00D;
rommem[12606] <= 12'h00A;
rommem[12607] <= 12'h04A;
rommem[12608] <= 12'h020;
rommem[12609] <= 12'h03D;
rommem[12610] <= 12'h020;
rommem[12611] <= 12'h04A;
rommem[12612] <= 12'h075;
rommem[12613] <= 12'h06D;
rommem[12614] <= 12'h070;
rommem[12615] <= 12'h020;
rommem[12616] <= 12'h074;
rommem[12617] <= 12'h06F;
rommem[12618] <= 12'h020;
rommem[12619] <= 12'h063;
rommem[12620] <= 12'h06F;
rommem[12621] <= 12'h064;
rommem[12622] <= 12'h065;
rommem[12623] <= 12'h00D;
rommem[12624] <= 12'h00A;
rommem[12625] <= 12'h052;
rommem[12626] <= 12'h041;
rommem[12627] <= 12'h04D;
rommem[12628] <= 12'h020;
rommem[12629] <= 12'h03D;
rommem[12630] <= 12'h020;
rommem[12631] <= 12'h074;
rommem[12632] <= 12'h065;
rommem[12633] <= 12'h073;
rommem[12634] <= 12'h074;
rommem[12635] <= 12'h020;
rommem[12636] <= 12'h052;
rommem[12637] <= 12'h041;
rommem[12638] <= 12'h04D;
rommem[12639] <= 12'h00D;
rommem[12640] <= 12'h00A;
rommem[12641] <= 12'h073;
rommem[12642] <= 12'h020;
rommem[12643] <= 12'h03D;
rommem[12644] <= 12'h020;
rommem[12645] <= 12'h073;
rommem[12646] <= 12'h065;
rommem[12647] <= 12'h072;
rommem[12648] <= 12'h069;
rommem[12649] <= 12'h061;
rommem[12650] <= 12'h06C;
rommem[12651] <= 12'h020;
rommem[12652] <= 12'h06F;
rommem[12653] <= 12'h075;
rommem[12654] <= 12'h074;
rommem[12655] <= 12'h070;
rommem[12656] <= 12'h075;
rommem[12657] <= 12'h074;
rommem[12658] <= 12'h020;
rommem[12659] <= 12'h074;
rommem[12660] <= 12'h065;
rommem[12661] <= 12'h073;
rommem[12662] <= 12'h074;
rommem[12663] <= 12'h00D;
rommem[12664] <= 12'h00A;
rommem[12665] <= 12'h053;
rommem[12666] <= 12'h050;
rommem[12667] <= 12'h020;
rommem[12668] <= 12'h03D;
rommem[12669] <= 12'h020;
rommem[12670] <= 12'h073;
rommem[12671] <= 12'h070;
rommem[12672] <= 12'h072;
rommem[12673] <= 12'h069;
rommem[12674] <= 12'h074;
rommem[12675] <= 12'h065;
rommem[12676] <= 12'h020;
rommem[12677] <= 12'h064;
rommem[12678] <= 12'h065;
rommem[12679] <= 12'h06D;
rommem[12680] <= 12'h06F;
rommem[12681] <= 12'h00D;
rommem[12682] <= 12'h00A;
rommem[12683] <= 12'h054;
rommem[12684] <= 12'h049;
rommem[12685] <= 12'h020;
rommem[12686] <= 12'h03D;
rommem[12687] <= 12'h020;
rommem[12688] <= 12'h064;
rommem[12689] <= 12'h069;
rommem[12690] <= 12'h073;
rommem[12691] <= 12'h070;
rommem[12692] <= 12'h06C;
rommem[12693] <= 12'h061;
rommem[12694] <= 12'h079;
rommem[12695] <= 12'h020;
rommem[12696] <= 12'h064;
rommem[12697] <= 12'h061;
rommem[12698] <= 12'h074;
rommem[12699] <= 12'h065;
rommem[12700] <= 12'h02F;
rommem[12701] <= 12'h074;
rommem[12702] <= 12'h069;
rommem[12703] <= 12'h06D;
rommem[12704] <= 12'h065;
rommem[12705] <= 12'h00D;
rommem[12706] <= 12'h00A;
rommem[12707] <= 12'h055;
rommem[12708] <= 12'h020;
rommem[12709] <= 12'h03D;
rommem[12710] <= 12'h020;
rommem[12711] <= 12'h075;
rommem[12712] <= 12'h06E;
rommem[12713] <= 12'h061;
rommem[12714] <= 12'h073;
rommem[12715] <= 12'h073;
rommem[12716] <= 12'h065;
rommem[12717] <= 12'h06D;
rommem[12718] <= 12'h062;
rommem[12719] <= 12'h06C;
rommem[12720] <= 12'h065;
rommem[12721] <= 12'h00D;
rommem[12722] <= 12'h00A;
rommem[12723] <= 12'h078;
rommem[12724] <= 12'h020;
rommem[12725] <= 12'h03D;
rommem[12726] <= 12'h020;
rommem[12727] <= 12'h065;
rommem[12728] <= 12'h078;
rommem[12729] <= 12'h069;
rommem[12730] <= 12'h074;
rommem[12731] <= 12'h020;
rommem[12732] <= 12'h06D;
rommem[12733] <= 12'h06F;
rommem[12734] <= 12'h06E;
rommem[12735] <= 12'h069;
rommem[12736] <= 12'h074;
rommem[12737] <= 12'h06F;
rommem[12738] <= 12'h072;
rommem[12739] <= 12'h00D;
rommem[12740] <= 12'h00A;
rommem[12741] <= 12'h000;
rommem[12742] <= 12'h00D;
rommem[12743] <= 12'h00A;
rommem[12744] <= 12'h020;
rommem[12745] <= 12'h020;
rommem[12746] <= 12'h044;
rommem[12747] <= 12'h02F;
rommem[12748] <= 12'h041;
rommem[12749] <= 12'h042;
rommem[12750] <= 12'h020;
rommem[12751] <= 12'h020;
rommem[12752] <= 12'h020;
rommem[12753] <= 12'h020;
rommem[12754] <= 12'h020;
rommem[12755] <= 12'h058;
rommem[12756] <= 12'h020;
rommem[12757] <= 12'h020;
rommem[12758] <= 12'h020;
rommem[12759] <= 12'h020;
rommem[12760] <= 12'h020;
rommem[12761] <= 12'h020;
rommem[12762] <= 12'h059;
rommem[12763] <= 12'h020;
rommem[12764] <= 12'h020;
rommem[12765] <= 12'h020;
rommem[12766] <= 12'h020;
rommem[12767] <= 12'h020;
rommem[12768] <= 12'h020;
rommem[12769] <= 12'h055;
rommem[12770] <= 12'h020;
rommem[12771] <= 12'h020;
rommem[12772] <= 12'h020;
rommem[12773] <= 12'h020;
rommem[12774] <= 12'h020;
rommem[12775] <= 12'h020;
rommem[12776] <= 12'h053;
rommem[12777] <= 12'h020;
rommem[12778] <= 12'h020;
rommem[12779] <= 12'h020;
rommem[12780] <= 12'h020;
rommem[12781] <= 12'h020;
rommem[12782] <= 12'h020;
rommem[12783] <= 12'h020;
rommem[12784] <= 12'h050;
rommem[12785] <= 12'h043;
rommem[12786] <= 12'h020;
rommem[12787] <= 12'h020;
rommem[12788] <= 12'h020;
rommem[12789] <= 12'h020;
rommem[12790] <= 12'h044;
rommem[12791] <= 12'h050;
rommem[12792] <= 12'h020;
rommem[12793] <= 12'h020;
rommem[12794] <= 12'h043;
rommem[12795] <= 12'h043;
rommem[12796] <= 12'h052;
rommem[12797] <= 12'h00D;
rommem[12798] <= 12'h00A;
rommem[12290] <= 12'h11E;
rommem[12291] <= 12'hFFF;
rommem[12292] <= 12'h126;
rommem[12293] <= 12'hFFE;
rommem[12294] <= 12'hE37;
rommem[12295] <= 12'hFFD;
rommem[12296] <= 12'h400;
rommem[12297] <= 12'h017;
rommem[12298] <= 12'hFFE;
rommem[12299] <= 12'h0C6;
rommem[12300] <= 12'h0C6;
rommem[12301] <= 12'h024;
rommem[12302] <= 12'h017;
rommem[12303] <= 12'hFFF;
rommem[12304] <= 12'hED0;
rommem[12305] <= 12'h016;
rommem[12306] <= 12'hFFF;
rommem[12307] <= 12'hECD;
rommem[12308] <= 12'h046;
rommem[12309] <= 12'h065;
rommem[12310] <= 12'h06D;
rommem[12311] <= 12'h074;
rommem[12312] <= 12'h069;
rommem[12313] <= 12'h06B;
rommem[12314] <= 12'h069;
rommem[12315] <= 12'h020;
rommem[12316] <= 12'h046;
rommem[12317] <= 12'h030;
rommem[12318] <= 12'h039;
rommem[12319] <= 12'h020;
rommem[12320] <= 12'h04D;
rommem[12321] <= 12'h075;
rommem[12322] <= 12'h06C;
rommem[12323] <= 12'h074;
rommem[12324] <= 12'h069;
rommem[12325] <= 12'h02D;
rommem[12326] <= 12'h063;
rommem[12327] <= 12'h06F;
rommem[12328] <= 12'h072;
rommem[12329] <= 12'h065;
rommem[12330] <= 12'h020;
rommem[12331] <= 12'h04F;
rommem[12332] <= 12'h053;
rommem[12333] <= 12'h020;
rommem[12334] <= 12'h053;
rommem[12335] <= 12'h074;
rommem[12336] <= 12'h061;
rommem[12337] <= 12'h072;
rommem[12338] <= 12'h074;
rommem[12339] <= 12'h069;
rommem[12340] <= 12'h06E;
rommem[12341] <= 12'h067;
rommem[12342] <= 12'h00D;
rommem[12343] <= 12'h00A;
rommem[12344] <= 12'h000;
rommem[12345] <= 12'h0FC;
rommem[12346] <= 12'h000;
rommem[12347] <= 12'h92C;
rommem[12348] <= 12'h183;
rommem[12349] <= 12'h12D;
rommem[12350] <= 12'h687;
rommem[12351] <= 12'h027;
rommem[12352] <= 12'h04D;
rommem[12353] <= 12'h07F;
rommem[12354] <= 12'h000;
rommem[12355] <= 12'h810;
rommem[12356] <= 12'h07F;
rommem[12357] <= 12'h000;
rommem[12358] <= 12'h811;
rommem[12359] <= 12'h0CC;
rommem[12360] <= 12'h000;
rommem[12361] <= 12'h07B;
rommem[12362] <= 12'h08E;
rommem[12363] <= 12'h000;
rommem[12364] <= 12'h28E;
rommem[12365] <= 12'h017;
rommem[12366] <= 12'hFFF;
rommem[12367] <= 12'hF1F;
rommem[12368] <= 12'h0CC;
rommem[12369] <= 12'hFFF;
rommem[12370] <= 12'h014;
rommem[12371] <= 12'h017;
rommem[12372] <= 12'hFFF;
rommem[12373] <= 12'h384;
rommem[12374] <= 12'h0CC;
rommem[12375] <= 12'hFFF;
rommem[12376] <= 12'h2CF;
rommem[12377] <= 12'h017;
rommem[12378] <= 12'hFFF;
rommem[12379] <= 12'h37E;
rommem[12380] <= 12'h0CC;
rommem[12381] <= 12'hFFF;
rommem[12382] <= 12'h009;
rommem[12383] <= 12'h0FD;
rommem[12384] <= 12'h000;
rommem[12385] <= 12'h808;
rommem[12386] <= 12'h0CC;
rommem[12387] <= 12'hFFF;
rommem[12388] <= 12'h2B6;
rommem[12389] <= 12'h0FD;
rommem[12390] <= 12'h000;
rommem[12391] <= 12'h80C;
rommem[12392] <= 12'h0CC;
rommem[12393] <= 12'h006;
rommem[12394] <= 12'h3FF;
rommem[12395] <= 12'h0FD;
rommem[12396] <= 12'h000;
rommem[12397] <= 12'h908;
rommem[12398] <= 12'h07F;
rommem[12399] <= 12'h000;
rommem[12400] <= 12'h90E;
rommem[12401] <= 12'h01F;
rommem[12402] <= 12'h0A8;
rommem[12403] <= 12'h0B7;
rommem[12404] <= 12'h000;
rommem[12405] <= 12'h90F;
rommem[12406] <= 12'h07F;
rommem[12407] <= 12'h000;
rommem[12408] <= 12'h90A;
rommem[12409] <= 12'h0CC;
rommem[12410] <= 12'hFFF;
rommem[12411] <= 12'h039;
rommem[12412] <= 12'h0FD;
rommem[12413] <= 12'h000;
rommem[12414] <= 12'h90B;
rommem[12415] <= 12'h07F;
rommem[12416] <= 12'h000;
rommem[12417] <= 12'h902;
rommem[12418] <= 12'h07F;
rommem[12419] <= 12'h000;
rommem[12420] <= 12'h904;
rommem[12421] <= 12'h07F;
rommem[12422] <= 12'h000;
rommem[12423] <= 12'h906;
rommem[12424] <= 12'h0CC;
rommem[12425] <= 12'h12D;
rommem[12426] <= 12'h687;
rommem[12427] <= 12'h0FD;
rommem[12428] <= 12'h000;
rommem[12429] <= 12'h92C;
rommem[12430] <= 12'h032;
rommem[12431] <= 12'h80F;
rommem[12432] <= 12'h006;
rommem[12433] <= 12'hFFF;
rommem[12434] <= 12'h05F;
rommem[12435] <= 12'h017;
rommem[12436] <= 12'hFFF;
rommem[12437] <= 12'hE4F;
rommem[12438] <= 12'h0CC;
rommem[12439] <= 12'hFFE;
rommem[12440] <= 12'hC64;
rommem[12441] <= 12'h0FD;
rommem[12442] <= 12'h000;
rommem[12443] <= 12'h804;
rommem[12444] <= 12'h0CC;
rommem[12445] <= 12'hFFE;
rommem[12446] <= 12'h319;
rommem[12447] <= 12'h0FD;
rommem[12448] <= 12'h000;
rommem[12449] <= 12'h800;
rommem[12450] <= 12'h0CC;
rommem[12451] <= 12'hFFF;
rommem[12452] <= 12'h009;
rommem[12453] <= 12'h0FD;
rommem[12454] <= 12'h000;
rommem[12455] <= 12'h808;
rommem[12456] <= 12'h0AD;
rommem[12457] <= 12'h90F;
rommem[12458] <= 12'h000;
rommem[12459] <= 12'h808;
rommem[12460] <= 12'h0CC;
rommem[12461] <= 12'hFFF;
rommem[12462] <= 12'hFFF;
rommem[12463] <= 12'h017;
rommem[12464] <= 12'hFFF;
rommem[12465] <= 12'hDF7;
rommem[12466] <= 12'h0C1;
rommem[12467] <= 12'h00D;
rommem[12468] <= 12'h027;
rommem[12469] <= 12'h005;
rommem[12470] <= 12'h017;
rommem[12471] <= 12'hFFF;
rommem[12472] <= 12'hE28;
rommem[12473] <= 12'h020;
rommem[12474] <= 12'hFF1;
rommem[12475] <= 12'h0CC;
rommem[12476] <= 12'h005;
rommem[12477] <= 12'h050;
rommem[12478] <= 12'h015;
rommem[12479] <= 12'h0FD;
rommem[12480] <= 12'hFFF;
rommem[12481] <= 12'hE60;
rommem[12482] <= 12'h001;
rommem[12483] <= 12'h00F;
rommem[12484] <= 12'h111;
rommem[12485] <= 12'h017;
rommem[12486] <= 12'hFFF;
rommem[12487] <= 12'h22A;
rommem[12488] <= 12'h01F;
rommem[12489] <= 12'h002;
rommem[12490] <= 12'h08D;
rommem[12491] <= 12'h067;
rommem[12492] <= 12'h0C1;
rommem[12493] <= 12'h024;
rommem[12494] <= 12'h027;
rommem[12495] <= 12'hFFA;
rommem[12496] <= 12'h031;
rommem[12497] <= 12'h3FF;
rommem[12498] <= 12'h01F;
rommem[12499] <= 12'h023;
rommem[12500] <= 12'h05F;
rommem[12501] <= 12'h08E;
rommem[12502] <= 12'hFFE;
rommem[12503] <= 12'hFB2;
rommem[12504] <= 12'h0A6;
rommem[12505] <= 12'hA00;
rommem[12506] <= 12'h06D;
rommem[12507] <= 12'h804;
rommem[12508] <= 12'h02B;
rommem[12509] <= 12'h00F;
rommem[12510] <= 12'h0A1;
rommem[12511] <= 12'h800;
rommem[12512] <= 12'h027;
rommem[12513] <= 12'hFF6;
rommem[12514] <= 12'h06D;
rommem[12515] <= 12'h800;
rommem[12516] <= 12'h027;
rommem[12517] <= 12'hF53;
rommem[12518] <= 12'h02A;
rommem[12519] <= 12'hFFA;
rommem[12520] <= 12'h05C;
rommem[12521] <= 12'h01F;
rommem[12522] <= 12'h032;
rommem[12523] <= 12'h020;
rommem[12524] <= 12'hFEB;
rommem[12525] <= 12'h0A8;
rommem[12526] <= 12'h804;
rommem[12527] <= 12'h048;
rommem[12528] <= 12'h026;
rommem[12529] <= 12'hFF0;
rommem[12530] <= 12'h058;
rommem[12531] <= 12'h08E;
rommem[12532] <= 12'hFFE;
rommem[12533] <= 12'hFE3;
rommem[12534] <= 12'h06E;
rommem[12535] <= 12'h905;
rommem[12536] <= 12'h08D;
rommem[12537] <= 12'h034;
rommem[12538] <= 12'h0C1;
rommem[12539] <= 12'h073;
rommem[12540] <= 12'h026;
rommem[12541] <= 12'h00E;
rommem[12542] <= 12'h0CC;
rommem[12543] <= 12'hFFE;
rommem[12544] <= 12'hC64;
rommem[12545] <= 12'h0FD;
rommem[12546] <= 12'h000;
rommem[12547] <= 12'h804;
rommem[12548] <= 12'h0CC;
rommem[12549] <= 12'hFFE;
rommem[12550] <= 12'hC88;
rommem[12551] <= 12'h0FD;
rommem[12552] <= 12'h000;
rommem[12553] <= 12'h800;
rommem[12554] <= 12'h020;
rommem[12555] <= 12'hF2D;
rommem[12556] <= 12'h0C1;
rommem[12557] <= 12'h063;
rommem[12558] <= 12'h026;
rommem[12559] <= 12'hF29;
rommem[12560] <= 12'h0CC;
rommem[12561] <= 12'hFFE;
rommem[12562] <= 12'hA92;
rommem[12563] <= 12'h0FD;
rommem[12564] <= 12'h000;
rommem[12565] <= 12'h804;
rommem[12566] <= 12'h0CC;
rommem[12567] <= 12'hFFE;
rommem[12568] <= 12'h319;
rommem[12569] <= 12'h0FD;
rommem[12570] <= 12'h000;
rommem[12571] <= 12'h800;
rommem[12572] <= 12'h020;
rommem[12573] <= 12'hF1B;
rommem[12574] <= 12'h0CC;
rommem[12575] <= 12'hFFF;
rommem[12576] <= 12'h2CF;
rommem[12577] <= 12'h017;
rommem[12578] <= 12'hFFF;
rommem[12579] <= 12'h2B6;
rommem[12580] <= 12'h020;
rommem[12581] <= 12'hF13;
rommem[12582] <= 12'h017;
rommem[12583] <= 12'hFFF;
rommem[12584] <= 12'h110;
rommem[12585] <= 12'h017;
rommem[12586] <= 12'hFFF;
rommem[12587] <= 12'h184;
rommem[12588] <= 12'h020;
rommem[12589] <= 12'hF0B;
rommem[12590] <= 12'h0E6;
rommem[12591] <= 12'hA04;
rommem[12592] <= 12'h031;
rommem[12593] <= 12'h201;
rommem[12594] <= 12'h039;
rommem[12595] <= 12'h08D;
rommem[12596] <= 12'hFF9;
rommem[12597] <= 12'h0C1;
rommem[12598] <= 12'h020;
rommem[12599] <= 12'h027;
rommem[12600] <= 12'hFFA;
rommem[12601] <= 12'h039;
rommem[12602] <= 12'h017;
rommem[12603] <= 12'h000;
rommem[12604] <= 12'h611;
rommem[12605] <= 12'h0C6;
rommem[12606] <= 12'hFFF;
rommem[12607] <= 12'h0F7;
rommem[12608] <= 12'h000;
rommem[12609] <= 12'h810;
rommem[12610] <= 12'h016;
rommem[12611] <= 12'hFFF;
rommem[12612] <= 12'hEF4;
rommem[12613] <= 12'h017;
rommem[12614] <= 12'h000;
rommem[12615] <= 12'h632;
rommem[12616] <= 12'h016;
rommem[12617] <= 12'hFFF;
rommem[12618] <= 12'hEEE;
rommem[12619] <= 12'h08D;
rommem[12620] <= 12'hFE1;
rommem[12621] <= 12'h0C1;
rommem[12622] <= 12'h020;
rommem[12623] <= 12'h027;
rommem[12624] <= 12'hFFA;
rommem[12625] <= 12'h031;
rommem[12626] <= 12'h3FF;
rommem[12627] <= 12'h039;
rommem[12628] <= 12'h034;
rommem[12629] <= 12'h006;
rommem[12630] <= 12'h0FC;
rommem[12631] <= 12'h000;
rommem[12632] <= 12'h910;
rommem[12633] <= 12'h0FD;
rommem[12634] <= 12'h000;
rommem[12635] <= 12'h918;
rommem[12636] <= 12'h0FC;
rommem[12637] <= 12'h000;
rommem[12638] <= 12'h912;
rommem[12639] <= 12'h0FD;
rommem[12640] <= 12'h000;
rommem[12641] <= 12'h91A;
rommem[12642] <= 12'h08D;
rommem[12643] <= 12'h05B;
rommem[12644] <= 12'h08D;
rommem[12645] <= 12'h059;
rommem[12646] <= 12'h0FC;
rommem[12647] <= 12'h000;
rommem[12648] <= 12'h912;
rommem[12649] <= 12'h0F3;
rommem[12650] <= 12'h000;
rommem[12651] <= 12'h91A;
rommem[12652] <= 12'h0F6;
rommem[12653] <= 12'h000;
rommem[12654] <= 12'h911;
rommem[12655] <= 12'h0F9;
rommem[12656] <= 12'h000;
rommem[12657] <= 12'h919;
rommem[12658] <= 12'h0F7;
rommem[12659] <= 12'h000;
rommem[12660] <= 12'h911;
rommem[12661] <= 12'h0B6;
rommem[12662] <= 12'h000;
rommem[12663] <= 12'h910;
rommem[12664] <= 12'h0B9;
rommem[12665] <= 12'h000;
rommem[12666] <= 12'h918;
rommem[12667] <= 12'h0B7;
rommem[12668] <= 12'h000;
rommem[12669] <= 12'h910;
rommem[12670] <= 12'h08D;
rommem[12671] <= 12'h03F;
rommem[12672] <= 12'h035;
rommem[12673] <= 12'h086;
rommem[12674] <= 12'h08D;
rommem[12675] <= 12'hFC7;
rommem[12676] <= 12'h08D;
rommem[12677] <= 12'h0DC;
rommem[12678] <= 12'h0FC;
rommem[12679] <= 12'h000;
rommem[12680] <= 12'h910;
rommem[12681] <= 12'h0FD;
rommem[12682] <= 12'h000;
rommem[12683] <= 12'h920;
rommem[12684] <= 12'h0FC;
rommem[12685] <= 12'h000;
rommem[12686] <= 12'h912;
rommem[12687] <= 12'h0FD;
rommem[12688] <= 12'h000;
rommem[12689] <= 12'h922;
rommem[12690] <= 12'h08D;
rommem[12691] <= 12'hFB7;
rommem[12692] <= 12'h08D;
rommem[12693] <= 12'h0CC;
rommem[12694] <= 12'h0FC;
rommem[12695] <= 12'h000;
rommem[12696] <= 12'h910;
rommem[12697] <= 12'h0FD;
rommem[12698] <= 12'h000;
rommem[12699] <= 12'h924;
rommem[12700] <= 12'h0FC;
rommem[12701] <= 12'h000;
rommem[12702] <= 12'h912;
rommem[12703] <= 12'h0FD;
rommem[12704] <= 12'h000;
rommem[12705] <= 12'h926;
rommem[12706] <= 12'h039;
rommem[12707] <= 12'h08D;
rommem[12708] <= 12'hFDD;
rommem[12709] <= 12'h0FC;
rommem[12710] <= 12'h000;
rommem[12711] <= 12'h926;
rommem[12712] <= 12'h0B3;
rommem[12713] <= 12'h000;
rommem[12714] <= 12'h922;
rommem[12715] <= 12'h0FC;
rommem[12716] <= 12'h000;
rommem[12717] <= 12'h924;
rommem[12718] <= 12'h0F2;
rommem[12719] <= 12'h000;
rommem[12720] <= 12'h921;
rommem[12721] <= 12'h0B2;
rommem[12722] <= 12'h000;
rommem[12723] <= 12'h920;
rommem[12724] <= 12'h124;
rommem[12725] <= 12'h000;
rommem[12726] <= 12'h007;
rommem[12727] <= 12'h0AD;
rommem[12728] <= 12'h90F;
rommem[12729] <= 12'h000;
rommem[12730] <= 12'h80C;
rommem[12731] <= 12'h016;
rommem[12732] <= 12'hFFF;
rommem[12733] <= 12'hE7B;
rommem[12734] <= 12'h039;
rommem[12735] <= 12'h078;
rommem[12736] <= 12'h000;
rommem[12737] <= 12'h913;
rommem[12738] <= 12'h079;
rommem[12739] <= 12'h000;
rommem[12740] <= 12'h912;
rommem[12741] <= 12'h079;
rommem[12742] <= 12'h000;
rommem[12743] <= 12'h911;
rommem[12744] <= 12'h079;
rommem[12745] <= 12'h000;
rommem[12746] <= 12'h910;
rommem[12747] <= 12'h039;
rommem[12748] <= 12'h04F;
rommem[12749] <= 12'h05F;
rommem[12750] <= 12'h0FD;
rommem[12751] <= 12'h000;
rommem[12752] <= 12'h910;
rommem[12753] <= 12'h0FD;
rommem[12754] <= 12'h000;
rommem[12755] <= 12'h912;
rommem[12756] <= 12'h034;
rommem[12757] <= 12'h010;
rommem[12758] <= 12'h08E;
rommem[12759] <= 12'h000;
rommem[12760] <= 12'h000;
rommem[12761] <= 12'h08D;
rommem[12762] <= 12'hF53;
rommem[12763] <= 12'h08D;
rommem[12764] <= 12'h093;
rommem[12765] <= 12'h0C1;
rommem[12766] <= 12'hFFF;
rommem[12767] <= 12'h027;
rommem[12768] <= 12'h017;
rommem[12769] <= 12'h08D;
rommem[12770] <= 12'hFDC;
rommem[12771] <= 12'h08D;
rommem[12772] <= 12'hFDA;
rommem[12773] <= 12'h08D;
rommem[12774] <= 12'hFD8;
rommem[12775] <= 12'h08D;
rommem[12776] <= 12'hFD6;
rommem[12777] <= 12'h0C4;
rommem[12778] <= 12'h00F;
rommem[12779] <= 12'h0FA;
rommem[12780] <= 12'h000;
rommem[12781] <= 12'h913;
rommem[12782] <= 12'h0F7;
rommem[12783] <= 12'h000;
rommem[12784] <= 12'h913;
rommem[12785] <= 12'h030;
rommem[12786] <= 12'h001;
rommem[12787] <= 12'h08C;
rommem[12788] <= 12'h000;
rommem[12789] <= 12'h00C;
rommem[12790] <= 12'h025;
rommem[12791] <= 12'hFE1;
rommem[12792] <= 12'h01F;
rommem[12793] <= 12'h010;
rommem[12794] <= 12'h035;
rommem[12795] <= 12'h090;
rommem[12796] <= 12'h04F;
rommem[12797] <= 12'h05F;
rommem[12798] <= 12'h0FD;
rommem[12799] <= 12'h000;
rommem[12800] <= 12'h0BD;
rommem[12801] <= 12'hFFD;
rommem[12802] <= 12'h2D2;
rommem[12803] <= 12'h039;
rommem[12804] <= 12'h0C6;
rommem[12805] <= 12'h020;
rommem[12806] <= 12'h016;
rommem[12807] <= 12'hFFF;
rommem[12808] <= 12'hB09;
rommem[12800] <= 12'h910;
rommem[12801] <= 12'h0FD;
rommem[12802] <= 12'h000;
rommem[12803] <= 12'h912;
rommem[12804] <= 12'h034;
rommem[12805] <= 12'h010;
rommem[12806] <= 12'h08E;
rommem[12807] <= 12'h000;
rommem[12808] <= 12'h000;
rommem[12809] <= 12'h08D;
rommem[12810] <= 12'hDBB;
rommem[12811] <= 12'h18E;
rommem[12812] <= 12'h000;
rommem[12813] <= 12'h000;
rommem[12814] <= 12'h1BE;
rommem[12815] <= 12'h000;
rommem[12816] <= 12'h922;
rommem[12817] <= 12'h017;
rommem[12818] <= 12'hFFD;
rommem[12819] <= 12'hEBE;
rommem[12820] <= 12'h0C6;
rommem[12821] <= 12'h03A;
rommem[12822] <= 12'h017;
rommem[12823] <= 12'hFFF;
rommem[12824] <= 12'hAF9;
rommem[12825] <= 12'h01F;
rommem[12826] <= 12'h020;
rommem[12827] <= 12'h017;
rommem[12828] <= 12'hFFF;
rommem[12829] <= 12'h1EC;
rommem[12830] <= 12'h0C6;
rommem[12831] <= 12'h020;
rommem[12832] <= 12'h017;
rommem[12833] <= 12'hFFF;
rommem[12834] <= 12'hAEF;
rommem[12835] <= 12'h08E;
rommem[12836] <= 12'h000;
rommem[12837] <= 12'h008;
rommem[12838] <= 12'h0E6;
rommem[12839] <= 12'hA04;
rommem[12840] <= 12'h031;
rommem[12841] <= 12'h201;
rommem[12842] <= 12'h017;
rommem[12843] <= 12'hFFF;
rommem[12844] <= 12'h1E6;
rommem[12845] <= 12'h0C6;
rommem[12846] <= 12'h020;
rommem[12847] <= 12'h017;
rommem[12848] <= 12'hFFF;
rommem[12849] <= 12'hAE0;
rommem[12850] <= 12'h05F;
rommem[12851] <= 12'h04F;
rommem[12852] <= 12'h017;
rommem[12853] <= 12'hFFF;
rommem[12854] <= 12'hAA3;
rommem[12855] <= 12'h0C1;
rommem[12856] <= 12'h003;
rommem[12857] <= 12'h027;
rommem[12858] <= 12'h024;
rommem[12859] <= 12'h030;
rommem[12860] <= 12'h1FF;
rommem[12861] <= 12'h026;
rommem[12862] <= 12'hFE7;
rommem[12863] <= 12'h0C6;
rommem[12864] <= 12'h020;
rommem[12865] <= 12'h017;
rommem[12866] <= 12'hFFF;
rommem[12867] <= 12'hACE;
rommem[12868] <= 12'h08E;
rommem[12810] <= 12'hF23;
rommem[12811] <= 12'h08D;
rommem[12812] <= 12'h099;
rommem[12813] <= 12'h05D;
rommem[12814] <= 12'h02B;
rommem[12815] <= 12'h00F;
rommem[12816] <= 12'h08D;
rommem[12817] <= 12'hFAD;
rommem[12818] <= 12'h0FA;
rommem[12819] <= 12'h000;
rommem[12820] <= 12'h913;
rommem[12821] <= 12'h0F7;
rommem[12822] <= 12'h000;
rommem[12823] <= 12'h913;
rommem[12824] <= 12'h030;
rommem[12825] <= 12'h001;
rommem[12826] <= 12'h08C;
rommem[12827] <= 12'h000;
rommem[12828] <= 12'h030;
rommem[12829] <= 12'h025;
rommem[12830] <= 12'hFEA;
rommem[12831] <= 12'h01F;
rommem[12832] <= 12'h010;
rommem[12833] <= 12'h035;
rommem[12834] <= 12'h090;
rommem[12835] <= 12'h04F;
rommem[12836] <= 12'h05F;
rommem[12837] <= 12'h0FD;
rommem[12838] <= 12'h000;
rommem[12839] <= 12'h910;
rommem[12840] <= 12'h0FD;
rommem[12841] <= 12'h000;
rommem[12842] <= 12'h912;
rommem[12843] <= 12'h034;
rommem[12844] <= 12'h010;
rommem[12845] <= 12'h08E;
rommem[12846] <= 12'h000;
rommem[12847] <= 12'h000;
rommem[12848] <= 12'h08D;
rommem[12849] <= 12'hEFC;
rommem[12850] <= 12'h08D;
rommem[12851] <= 12'h064;
rommem[12852] <= 12'h05D;
rommem[12853] <= 12'h02B;
rommem[12854] <= 12'h027;
rommem[12855] <= 12'h08D;
rommem[12856] <= 12'hF1B;
rommem[12857] <= 12'h0FB;
rommem[12858] <= 12'h000;
rommem[12859] <= 12'h913;
rommem[12860] <= 12'h0F7;
rommem[12861] <= 12'h000;
rommem[12862] <= 12'h913;
rommem[12863] <= 12'h0F6;
rommem[12864] <= 12'h000;
rommem[12865] <= 12'h912;
rommem[12866] <= 12'h0C9;
rommem[12867] <= 12'h000;
rommem[12868] <= 12'h0F7;
rommem[12869] <= 12'h000;
rommem[12870] <= 12'h008;
rommem[12871] <= 12'h031;
rommem[12872] <= 12'h3F8;
rommem[12873] <= 12'h0E6;
rommem[12874] <= 12'hA04;
rommem[12875] <= 12'h0C1;
rommem[12876] <= 12'h020;
rommem[12877] <= 12'h024;
rommem[12878] <= 12'h002;
rommem[12879] <= 12'h0C6;
rommem[12880] <= 12'h02E;
rommem[12881] <= 12'h017;
rommem[12882] <= 12'hFFF;
rommem[12883] <= 12'hABE;
rommem[12884] <= 12'h031;
rommem[12885] <= 12'h201;
rommem[12886] <= 12'h030;
rommem[12887] <= 12'h1FF;
rommem[12888] <= 12'h026;
rommem[12889] <= 12'hFEF;
rommem[12890] <= 12'h1BC;
rommem[12891] <= 12'h000;
rommem[12892] <= 12'h926;
rommem[12893] <= 12'h025;
rommem[12894] <= 12'hFB2;
rommem[12895] <= 12'h017;
rommem[12896] <= 12'hFFD;
rommem[12897] <= 12'hE70;
rommem[12898] <= 12'h016;
rommem[12899] <= 12'hFFF;
rommem[12900] <= 12'hC42;
rommem[12901] <= 12'h0CE;
rommem[12902] <= 12'h000;
rommem[12903] <= 12'h008;
rommem[12904] <= 12'h017;
rommem[12905] <= 12'hFFF;
rommem[12906] <= 12'hD84;
rommem[12907] <= 12'h0BE;
rommem[12908] <= 12'h000;
rommem[12909] <= 12'h912;
rommem[12910] <= 12'h017;
rommem[12911] <= 12'hFFF;
rommem[12912] <= 12'hCE2;
rommem[12913] <= 12'h017;
rommem[12914] <= 12'hFFF;
rommem[12915] <= 12'hD7B;
rommem[12916] <= 12'h05D;
rommem[12917] <= 12'h027;
rommem[12918] <= 12'h00C;
rommem[12919] <= 12'h0F6;
rommem[12920] <= 12'h000;
rommem[12921] <= 12'h913;
rommem[12922] <= 12'h0E7;
rommem[12923] <= 12'h800;
rommem[12924] <= 12'h033;
rommem[12925] <= 12'h5FF;
rommem[12926] <= 12'h283;
rommem[12927] <= 12'h000;
rommem[12928] <= 12'h000;
rommem[12929] <= 12'h026;
rommem[12930] <= 12'hFEB;
rommem[12931] <= 12'h017;
rommem[12932] <= 12'hFFF;
rommem[12933] <= 12'hCC1;
rommem[12934] <= 12'h0C1;
rommem[12935] <= 12'h022;
rommem[12936] <= 12'h026;
rommem[12937] <= 12'h018;
rommem[12938] <= 12'h0CE;
rommem[12939] <= 12'h000;
rommem[12940] <= 12'h028;
rommem[12941] <= 12'h017;
rommem[12942] <= 12'hFFF;
rommem[12943] <= 12'hCB7;
rommem[12944] <= 12'h0C1;
rommem[12945] <= 12'h022;
rommem[12946] <= 12'h026;
rommem[12947] <= 12'h005;
rommem[12948] <= 12'h0CE;
rommem[12949] <= 12'h000;
rommem[12950] <= 12'h008;
rommem[12951] <= 12'h020;
rommem[12952] <= 12'hFD5;
rommem[12953] <= 12'h0E7;
rommem[12954] <= 12'h800;
rommem[12955] <= 12'h033;
rommem[12956] <= 12'h5FF;
rommem[12957] <= 12'h283;
rommem[12958] <= 12'h000;
rommem[12959] <= 12'h000;
rommem[12960] <= 12'h022;
rommem[12961] <= 12'hFEB;
rommem[12962] <= 12'h016;
rommem[12963] <= 12'hFFF;
rommem[12964] <= 12'hC02;
rommem[12965] <= 12'h017;
rommem[12966] <= 12'hFFF;
rommem[12967] <= 12'hD1E;
rommem[12968] <= 12'h017;
rommem[12969] <= 12'hFFF;
rommem[12970] <= 12'hCA8;
rommem[12971] <= 12'h017;
rommem[12972] <= 12'hFFF;
rommem[12973] <= 12'hD41;
rommem[12974] <= 12'h0F6;
rommem[12975] <= 12'h000;
rommem[12976] <= 12'h913;
rommem[12977] <= 12'h0BE;
rommem[12978] <= 12'h000;
rommem[12979] <= 12'h922;
rommem[12980] <= 12'h04F;
rommem[12981] <= 12'h04D;
rommem[12982] <= 12'h026;
rommem[12983] <= 12'h00D;
rommem[12984] <= 12'h05F;
rommem[12985] <= 12'h04F;
rommem[12986] <= 12'h017;
rommem[12987] <= 12'hFFF;
rommem[12988] <= 12'hA1D;
rommem[12989] <= 12'h0C1;
rommem[12990] <= 12'h003;
rommem[12991] <= 12'h127;
rommem[12992] <= 12'hFFF;
rommem[12993] <= 12'hBE5;
rommem[12994] <= 12'h0F6;
rommem[12995] <= 12'h000;
rommem[12996] <= 12'h913;
rommem[12997] <= 12'h0E7;
rommem[12998] <= 12'h800;
rommem[12999] <= 12'h0BC;
rommem[13000] <= 12'h000;
rommem[13001] <= 12'h926;
rommem[13002] <= 12'h023;
rommem[13003] <= 12'hFE9;
rommem[13004] <= 12'h016;
rommem[13005] <= 12'hFFF;
rommem[13006] <= 12'hBD8;
rommem[13007] <= 12'h0CC;
rommem[13008] <= 12'hFFF;
rommem[13009] <= 12'h1C6;
rommem[13010] <= 12'h017;
rommem[13011] <= 12'hFFF;
rommem[13012] <= 12'h0EA;
rommem[13013] <= 12'h08D;
rommem[13014] <= 12'hF2D;
rommem[13015] <= 12'h0FC;
rommem[13016] <= 12'h000;
rommem[13017] <= 12'h900;
rommem[13018] <= 12'h08D;
rommem[13019] <= 12'hF24;
rommem[13020] <= 12'h08D;
rommem[13021] <= 12'hF26;
rommem[13022] <= 12'h0FC;
rommem[13023] <= 12'h000;
rommem[13024] <= 12'h902;
rommem[13025] <= 12'h08D;
rommem[13026] <= 12'hF1D;
rommem[13027] <= 12'h08D;
rommem[13028] <= 12'hF1F;
rommem[13029] <= 12'h0FC;
rommem[13030] <= 12'h000;
rommem[13031] <= 12'h904;
rommem[13032] <= 12'h08D;
rommem[13033] <= 12'hF16;
rommem[13034] <= 12'h08D;
rommem[13035] <= 12'hF18;
rommem[13036] <= 12'h0FC;
rommem[13037] <= 12'h000;
rommem[13038] <= 12'h906;
rommem[13039] <= 12'h08D;
rommem[13040] <= 12'hF0F;
rommem[13041] <= 12'h08D;
rommem[13042] <= 12'hF11;
rommem[13043] <= 12'h0FC;
rommem[13044] <= 12'h000;
rommem[13045] <= 12'h908;
rommem[13046] <= 12'h08D;
rommem[13047] <= 12'hF08;
rommem[13048] <= 12'h08D;
rommem[13049] <= 12'hF0A;
rommem[13050] <= 12'h0F6;
rommem[13051] <= 12'h000;
rommem[13052] <= 12'h90B;
rommem[13053] <= 12'h017;
rommem[13054] <= 12'hFFF;
rommem[13055] <= 12'h113;
rommem[13056] <= 12'h0FC;
rommem[13057] <= 12'h000;
rommem[13058] <= 12'h90C;
rommem[13059] <= 12'h08D;
rommem[13060] <= 12'hEFB;
rommem[13061] <= 12'h08D;
rommem[13062] <= 12'hEFD;
rommem[13063] <= 12'h0FC;
rommem[13064] <= 12'h000;
rommem[13065] <= 12'h90E;
rommem[13066] <= 12'h0BD;
rommem[13067] <= 12'hFFD;
rommem[13068] <= 12'h2CE;
rommem[13069] <= 12'h08D;
rommem[13070] <= 12'hEF5;
rommem[13071] <= 12'h0B6;
rommem[13072] <= 12'h000;
rommem[13073] <= 12'h90F;
rommem[13074] <= 12'h017;
rommem[13075] <= 12'hFFD;
rommem[13076] <= 12'hFB9;
rommem[13077] <= 12'h08D;
rommem[13078] <= 12'hEED;
rommem[13079] <= 12'h016;
rommem[13080] <= 12'hFFF;
rommem[13081] <= 12'hB8D;
rommem[13082] <= 12'h08D;
rommem[13083] <= 12'hCD3;
rommem[13084] <= 12'h01A;
rommem[13085] <= 12'h010;
rommem[13086] <= 12'h1FE;
rommem[13087] <= 12'h000;
rommem[13088] <= 12'h908;
rommem[13089] <= 12'h0CC;
rommem[13090] <= 12'hFFF;
rommem[13091] <= 12'h355;
rommem[13092] <= 12'h034;
rommem[13093] <= 12'h006;
rommem[13094] <= 12'h0C6;
rommem[13095] <= 12'h000;
rommem[13096] <= 12'h034;
rommem[13097] <= 12'h004;
rommem[13098] <= 12'h0FC;
rommem[13099] <= 12'h000;
rommem[13100] <= 12'h912;
rommem[13101] <= 12'h034;
rommem[13102] <= 12'h006;
rommem[13103] <= 12'h0F6;
rommem[13104] <= 12'h000;
rommem[13105] <= 12'h911;
rommem[13106] <= 12'h034;
rommem[13107] <= 12'h004;
rommem[13108] <= 12'h0FC;
rommem[13109] <= 12'h000;
rommem[13110] <= 12'h906;
rommem[13111] <= 12'h034;
rommem[13112] <= 12'h006;
rommem[13113] <= 12'h0FC;
rommem[13114] <= 12'h000;
rommem[13115] <= 12'h904;
rommem[13116] <= 12'h034;
rommem[13117] <= 12'h006;
rommem[13118] <= 12'h0FC;
rommem[13119] <= 12'h000;
rommem[13120] <= 12'h902;
rommem[13121] <= 12'h034;
rommem[13122] <= 12'h006;
rommem[13123] <= 12'h0B6;
rommem[13124] <= 12'h000;
rommem[13125] <= 12'h90E;
rommem[13126] <= 12'h034;
rommem[13127] <= 12'h002;
rommem[13128] <= 12'h0FC;
rommem[13129] <= 12'h000;
rommem[13130] <= 12'h900;
rommem[13131] <= 12'h034;
rommem[13132] <= 12'h006;
rommem[13133] <= 12'h0B6;
rommem[13134] <= 12'h000;
rommem[13135] <= 12'h90F;
rommem[13136] <= 12'h034;
rommem[13137] <= 12'h002;
rommem[13138] <= 12'h015;
rommem[13139] <= 12'h035;
rommem[13140] <= 12'h0FF;
rommem[13141] <= 12'h1FF;
rommem[13142] <= 12'h000;
rommem[13143] <= 12'h908;
rommem[13144] <= 12'h032;
rommem[13145] <= 12'h80F;
rommem[13146] <= 12'h006;
rommem[13147] <= 12'hFFF;
rommem[13148] <= 12'h034;
rommem[13149] <= 12'h001;
rommem[13150] <= 12'h034;
rommem[13151] <= 12'h002;
rommem[13152] <= 12'h01F;
rommem[13153] <= 12'h0B8;
rommem[13154] <= 12'h0B7;
rommem[13155] <= 12'h000;
rommem[13156] <= 12'h90E;
rommem[13157] <= 12'h04F;
rommem[13158] <= 12'h01F;
rommem[13159] <= 12'h08B;
rommem[13160] <= 12'h035;
rommem[13161] <= 12'h002;
rommem[13162] <= 12'h0FD;
rommem[13163] <= 12'h000;
rommem[13164] <= 12'h900;
rommem[13165] <= 12'h0BF;
rommem[13166] <= 12'h000;
rommem[13167] <= 12'h902;
rommem[13168] <= 12'h1BF;
rommem[13169] <= 12'h000;
rommem[13170] <= 12'h904;
rommem[13171] <= 12'h0FF;
rommem[13172] <= 12'h000;
rommem[13173] <= 12'h906;
rommem[13174] <= 12'h035;
rommem[13175] <= 12'h002;
rommem[13176] <= 12'h0B7;
rommem[13177] <= 12'h000;
rommem[13178] <= 12'h90F;
rommem[13179] <= 12'h0CC;
rommem[13180] <= 12'hFFE;
rommem[13181] <= 12'hBE4;
rommem[13182] <= 12'h0FD;
rommem[13183] <= 12'h000;
rommem[13184] <= 12'h804;
rommem[13185] <= 12'h0CC;
rommem[13186] <= 12'hFFE;
rommem[13187] <= 12'h2FE;
rommem[13188] <= 12'h0FD;
rommem[13189] <= 12'h000;
rommem[13190] <= 12'h800;
rommem[13191] <= 12'h0FC;
rommem[13192] <= 12'hFFF;
rommem[13193] <= 12'h055;
rommem[13194] <= 12'h0FD;
rommem[13195] <= 12'h000;
rommem[13196] <= 12'h80C;
rommem[13197] <= 12'h016;
rommem[13198] <= 12'hFFF;
rommem[13199] <= 12'hF3F;
rommem[13200] <= 12'h08E;
rommem[13201] <= 12'h000;
rommem[13202] <= 12'h000;
rommem[13203] <= 12'h0E6;
rommem[13204] <= 12'h80A;
rommem[13205] <= 12'h000;
rommem[13206] <= 12'hFFC;
rommem[13207] <= 12'h000;
rommem[13208] <= 12'h0C1;
rommem[13209] <= 12'h018;
rommem[13210] <= 12'h026;
rommem[13211] <= 12'h00A;
rommem[13212] <= 12'h01F;
rommem[13213] <= 12'h010;
rommem[13214] <= 12'h017;
rommem[13215] <= 12'hFFF;
rommem[13216] <= 12'h072;
rommem[13217] <= 12'h0C6;
rommem[13218] <= 12'h020;
rommem[13219] <= 12'h017;
rommem[13220] <= 12'hFFF;
rommem[13221] <= 12'h96C;
rommem[13222] <= 12'h030;
rommem[13223] <= 12'h001;
rommem[13224] <= 12'h08C;
rommem[13225] <= 12'h000;
rommem[13226] <= 12'h010;
rommem[13227] <= 12'h025;
rommem[13228] <= 12'hFE6;
rommem[13229] <= 12'h017;
rommem[13230] <= 12'hFFD;
rommem[13231] <= 12'hD22;
rommem[13232] <= 12'h016;
rommem[13233] <= 12'hFFF;
rommem[13234] <= 12'hAF4;
rommem[13235] <= 12'h000;
rommem[13236] <= 12'h006;
rommem[13237] <= 12'hFFF;
rommem[13238] <= 12'h008;
rommem[13239] <= 12'hFFF;
rommem[13240] <= 12'h3B9;
rommem[13241] <= 12'hFFE;
rommem[13242] <= 12'hEA7;
rommem[13243] <= 12'hFFE;
rommem[13244] <= 12'hCDA;
rommem[13245] <= 12'hFFE;
rommem[13246] <= 12'hD12;
rommem[13247] <= 12'hFFD;
rommem[13248] <= 12'h0D2;
rommem[13249] <= 12'hFFE;
rommem[13250] <= 12'h3BF;
rommem[13251] <= 12'hFFE;
rommem[13252] <= 12'h413;
rommem[13253] <= 12'hFFE;
rommem[13254] <= 12'h40A;
rommem[13255] <= 12'hFFE;
rommem[13256] <= 12'hD1C;
rommem[13257] <= 12'hFFE;
rommem[13258] <= 12'hDA0;
rommem[13259] <= 12'hFFE;
rommem[13260] <= 12'hDCE;
rommem[13261] <= 12'h000;
rommem[13262] <= 12'h000;
rommem[13263] <= 12'hFFE;
rommem[13264] <= 12'hFC6;
rommem[13265] <= 12'h0E6;
rommem[13266] <= 12'h80C;
rommem[13267] <= 12'hFDF;
rommem[13268] <= 12'h01F;
rommem[13269] <= 12'h09B;
rommem[13270] <= 12'h0EE;
rommem[13271] <= 12'h60B;
rommem[13272] <= 12'h033;
rommem[13273] <= 12'h5FF;
rommem[13274] <= 12'h07D;
rommem[13275] <= 12'h000;
rommem[13276] <= 12'h810;
rommem[13277] <= 12'h027;
rommem[13278] <= 12'h00F;
rommem[13279] <= 12'h0CE;
rommem[13280] <= 12'h000;
rommem[13281] <= 12'h820;
rommem[13282] <= 12'h0F6;
rommem[13283] <= 12'h000;
rommem[13284] <= 12'h811;
rommem[13285] <= 12'h027;
rommem[13286] <= 12'h007;
rommem[13287] <= 12'h2A3;
rommem[13288] <= 12'hA01;
rommem[13289] <= 12'h027;
rommem[13290] <= 12'h033;
rommem[13291] <= 12'h05A;
rommem[13292] <= 12'h026;
rommem[13293] <= 12'hFF9;
rommem[13294] <= 12'h07F;
rommem[13295] <= 12'h000;
rommem[13296] <= 12'h810;
rommem[13297] <= 12'h037;
rommem[13298] <= 12'h006;
rommem[13299] <= 12'h0C1;
rommem[13300] <= 12'h00D;
rommem[13301] <= 12'h122;
rommem[13302] <= 12'hFFF;
rommem[13303] <= 12'hC5D;
rommem[13304] <= 12'h0EF;
rommem[13305] <= 12'h60B;
rommem[13306] <= 12'h0C1;
rommem[13307] <= 12'h00A;
rommem[13308] <= 12'h027;
rommem[13309] <= 12'h056;
rommem[13310] <= 12'h058;
rommem[13311] <= 12'h0AE;
rommem[13312] <= 12'h80C;
rommem[13313] <= 12'hFB5;
rommem[13314] <= 12'h03A;
rommem[13315] <= 12'h0AE;
rommem[13316] <= 12'h804;
rommem[13317] <= 12'h0BF;
rommem[13318] <= 12'h000;
rommem[13319] <= 12'h928;
rommem[13320] <= 12'h1FF;
rommem[13321] <= 12'h000;
rommem[13322] <= 12'h908;
rommem[13323] <= 12'h0EC;
rommem[13324] <= 12'h601;
rommem[13325] <= 12'h0AE;
rommem[13326] <= 12'h604;
rommem[13327] <= 12'h1AE;
rommem[13328] <= 12'h606;
rommem[13329] <= 12'h0EE;
rommem[13330] <= 12'h608;
rommem[13331] <= 12'h1EE;
rommem[13332] <= 12'h80C;
rommem[13333] <= 12'hF9E;
rommem[13334] <= 12'h0AD;
rommem[13335] <= 12'h90F;
rommem[13336] <= 12'h000;
rommem[13337] <= 12'h928;
rommem[13338] <= 12'h1FE;
rommem[13339] <= 12'h000;
rommem[13340] <= 12'h908;
rommem[13341] <= 12'h03B;
rommem[13342] <= 12'h0A6;
rommem[13343] <= 12'hE04;
rommem[13344] <= 12'h0B7;
rommem[13345] <= 12'h000;
rommem[13346] <= 12'h90F;
rommem[13347] <= 12'h0EC;
rommem[13348] <= 12'h601;
rommem[13349] <= 12'h0FD;
rommem[13350] <= 12'h000;
rommem[13351] <= 12'h900;
rommem[13352] <= 12'h0E6;
rommem[13353] <= 12'h603;
rommem[13354] <= 12'h0F7;
rommem[13355] <= 12'h000;
rommem[13356] <= 12'h90E;
rommem[13357] <= 12'h0EC;
rommem[13358] <= 12'h604;
rommem[13359] <= 12'h0FD;
rommem[13360] <= 12'h000;
rommem[13361] <= 12'h902;
rommem[13362] <= 12'h0EC;
rommem[13363] <= 12'h606;
rommem[13364] <= 12'h0FD;
rommem[13365] <= 12'h000;
rommem[13366] <= 12'h904;
rommem[13367] <= 12'h0EC;
rommem[13368] <= 12'h608;
rommem[13369] <= 12'h0FD;
rommem[13370] <= 12'h000;
rommem[13371] <= 12'h906;
rommem[13372] <= 12'h1FF;
rommem[13373] <= 12'h000;
rommem[13374] <= 12'h908;
rommem[13375] <= 12'h0EC;
rommem[13376] <= 12'h60B;
rommem[13377] <= 12'h0FD;
rommem[13378] <= 12'h000;
rommem[13379] <= 12'h90A;
rommem[13380] <= 12'h1EE;
rommem[13381] <= 12'h80C;
rommem[13382] <= 12'hF6D;
rommem[13383] <= 12'h0CC;
rommem[13384] <= 12'hFFF;
rommem[13385] <= 12'h41A;
rommem[13386] <= 12'h034;
rommem[13387] <= 12'h006;
rommem[13388] <= 12'h08D;
rommem[12870] <= 12'h912;
rommem[12871] <= 12'h0F6;
rommem[12872] <= 12'h000;
rommem[12873] <= 12'h911;
rommem[12874] <= 12'h0C9;
rommem[12875] <= 12'h000;
rommem[12876] <= 12'h0F7;
rommem[12877] <= 12'h000;
rommem[12878] <= 12'h911;
rommem[12879] <= 12'h0F6;
rommem[12880] <= 12'h000;
rommem[12881] <= 12'h910;
rommem[12882] <= 12'h0C9;
rommem[12883] <= 12'h000;
rommem[12884] <= 12'h0F7;
rommem[12885] <= 12'h000;
rommem[12886] <= 12'h910;
rommem[12887] <= 12'h030;
rommem[12888] <= 12'h001;
rommem[12889] <= 12'h08C;
rommem[12890] <= 12'h000;
rommem[12891] <= 12'h00F;
rommem[12892] <= 12'h025;
rommem[12893] <= 12'hFD2;
rommem[12894] <= 12'h01F;
rommem[12895] <= 12'h010;
rommem[12896] <= 12'h035;
rommem[12897] <= 12'h090;
rommem[12898] <= 12'h08D;
rommem[12899] <= 12'hECA;
rommem[12900] <= 12'h0C1;
rommem[12901] <= 12'h02B;
rommem[12902] <= 12'h027;
rommem[12903] <= 12'hFBB;
rommem[12904] <= 12'h0C1;
rommem[12905] <= 12'h025;
rommem[12906] <= 12'h027;
rommem[12907] <= 12'hF90;
rommem[12908] <= 12'h031;
rommem[12909] <= 12'h3FF;
rommem[12910] <= 12'h020;
rommem[12911] <= 12'hF5C;
rommem[12912] <= 12'h0C1;
rommem[12913] <= 12'h030;
rommem[12914] <= 12'h025;
rommem[12915] <= 12'h021;
rommem[12916] <= 12'h0C1;
rommem[12917] <= 12'h039;
rommem[12918] <= 12'h022;
rommem[12919] <= 12'h003;
rommem[12920] <= 12'h0C0;
rommem[12921] <= 12'h030;
rommem[12922] <= 12'h039;
rommem[12923] <= 12'h0C1;
rommem[12924] <= 12'h041;
rommem[12925] <= 12'h025;
rommem[12926] <= 12'h016;
rommem[12927] <= 12'h0C1;
rommem[12928] <= 12'h046;
rommem[12929] <= 12'h022;
rommem[12930] <= 12'h005;
rommem[12931] <= 12'h0C0;
rommem[12932] <= 12'h041;
rommem[12933] <= 12'h0CB;
rommem[12934] <= 12'h00A;
rommem[12935] <= 12'h039;
rommem[12936] <= 12'h0C1;
rommem[12937] <= 12'h061;
rommem[12938] <= 12'h025;
rommem[12939] <= 12'h009;
rommem[12940] <= 12'h0C1;
rommem[12941] <= 12'h07A;
rommem[12942] <= 12'h022;
rommem[12943] <= 12'h005;
rommem[12944] <= 12'h0C0;
rommem[12945] <= 12'h061;
rommem[12946] <= 12'h0CB;
rommem[12947] <= 12'h00A;
rommem[12948] <= 12'h039;
rommem[12949] <= 12'h0C6;
rommem[12950] <= 12'hFFF;
rommem[12951] <= 12'h039;
rommem[12952] <= 12'h0C1;
rommem[12953] <= 12'h030;
rommem[12954] <= 12'h025;
rommem[12955] <= 12'h007;
rommem[12956] <= 12'h0C1;
rommem[12957] <= 12'h039;
rommem[12958] <= 12'h022;
rommem[12959] <= 12'h003;
rommem[12960] <= 12'h0C0;
rommem[12961] <= 12'h030;
rommem[12962] <= 12'h039;
rommem[12963] <= 12'h0C6;
rommem[12964] <= 12'hFFF;
rommem[12965] <= 12'h039;
rommem[12966] <= 12'h0C1;
rommem[12967] <= 12'h030;
rommem[12968] <= 12'h026;
rommem[12969] <= 12'h002;
rommem[12970] <= 12'h05F;
rommem[12971] <= 12'h039;
rommem[12972] <= 12'h0C1;
rommem[12973] <= 12'h031;
rommem[12974] <= 12'h026;
rommem[12975] <= 12'h003;
rommem[12976] <= 12'h0C6;
rommem[12977] <= 12'h001;
rommem[12978] <= 12'h039;
rommem[12979] <= 12'h0C6;
rommem[12980] <= 12'hFFF;
rommem[12981] <= 12'h039;
rommem[12982] <= 12'h0CC;
rommem[12983] <= 12'hFFF;
rommem[12984] <= 12'h2C7;
rommem[12985] <= 12'h017;
rommem[12986] <= 12'hFFF;
rommem[12987] <= 12'h11E;
rommem[12988] <= 12'h07E;
rommem[12989] <= 12'hFFF;
rommem[12990] <= 12'h039;
rommem[12991] <= 12'h0DD;
rommem[12992] <= 12'h024;
rommem[12993] <= 12'h09F;
rommem[12994] <= 12'h026;
rommem[12995] <= 12'h0BD;
rommem[12996] <= 12'hFFE;
rommem[12997] <= 12'h3DA;
rommem[12998] <= 12'h039;
rommem[12999] <= 12'h02A;
rommem[13000] <= 12'h02A;
rommem[13001] <= 12'h045;
rommem[13002] <= 12'h072;
rommem[13003] <= 12'h072;
rommem[13004] <= 12'h00D;
rommem[13005] <= 12'h00A;
rommem[13006] <= 12'h000;
rommem[13007] <= 12'h03F;
rommem[13008] <= 12'h020;
rommem[13009] <= 12'h03D;
rommem[13010] <= 12'h020;
rommem[13011] <= 12'h044;
rommem[13012] <= 12'h069;
rommem[13013] <= 12'h073;
rommem[13014] <= 12'h070;
rommem[13015] <= 12'h06C;
rommem[13016] <= 12'h061;
rommem[13017] <= 12'h079;
rommem[13018] <= 12'h020;
rommem[13019] <= 12'h068;
rommem[13020] <= 12'h065;
rommem[13021] <= 12'h06C;
rommem[13022] <= 12'h070;
rommem[13023] <= 12'h00D;
rommem[13024] <= 12'h00A;
rommem[13025] <= 12'h043;
rommem[13026] <= 12'h04C;
rommem[13027] <= 12'h053;
rommem[13028] <= 12'h020;
rommem[13029] <= 12'h03D;
rommem[13030] <= 12'h020;
rommem[13031] <= 12'h063;
rommem[13032] <= 12'h06C;
rommem[13033] <= 12'h065;
rommem[13034] <= 12'h061;
rommem[13035] <= 12'h072;
rommem[13036] <= 12'h020;
rommem[13037] <= 12'h073;
rommem[13038] <= 12'h063;
rommem[13039] <= 12'h072;
rommem[13040] <= 12'h065;
rommem[13041] <= 12'h065;
rommem[13042] <= 12'h06E;
rommem[13043] <= 12'h00D;
rommem[13044] <= 12'h00A;
rommem[13045] <= 12'h062;
rommem[13046] <= 12'h073;
rommem[13047] <= 12'h020;
rommem[13048] <= 12'h03D;
rommem[13049] <= 12'h020;
rommem[13050] <= 12'h073;
rommem[13051] <= 12'h065;
rommem[13052] <= 12'h074;
rommem[13053] <= 12'h020;
rommem[13054] <= 12'h062;
rommem[13055] <= 12'h072;
rommem[13056] <= 12'h065;
rommem[13057] <= 12'h061;
rommem[13058] <= 12'h06B;
rommem[13059] <= 12'h070;
rommem[13060] <= 12'h06F;
rommem[13061] <= 12'h069;
rommem[13062] <= 12'h06E;
rommem[13063] <= 12'h074;
rommem[13064] <= 12'h00D;
rommem[13065] <= 12'h00A;
rommem[13066] <= 12'h062;
rommem[13067] <= 12'h063;
rommem[13068] <= 12'h020;
rommem[13069] <= 12'h03D;
rommem[13070] <= 12'h020;
rommem[13071] <= 12'h063;
rommem[13072] <= 12'h06C;
rommem[13073] <= 12'h065;
rommem[13074] <= 12'h061;
rommem[13075] <= 12'h072;
rommem[13076] <= 12'h020;
rommem[13077] <= 12'h062;
rommem[13078] <= 12'h072;
rommem[13079] <= 12'h065;
rommem[13080] <= 12'h061;
rommem[13081] <= 12'h06B;
rommem[13082] <= 12'h070;
rommem[13083] <= 12'h06F;
rommem[13084] <= 12'h069;
rommem[13085] <= 12'h06E;
rommem[13086] <= 12'h074;
rommem[13087] <= 12'h00D;
rommem[13088] <= 12'h00A;
rommem[13089] <= 12'h03A;
rommem[13090] <= 12'h020;
rommem[13091] <= 12'h03D;
rommem[13092] <= 12'h020;
rommem[13093] <= 12'h045;
rommem[13094] <= 12'h064;
rommem[13095] <= 12'h069;
rommem[13096] <= 12'h074;
rommem[13097] <= 12'h020;
rommem[13098] <= 12'h06D;
rommem[13099] <= 12'h065;
rommem[13100] <= 12'h06D;
rommem[13101] <= 12'h06F;
rommem[13102] <= 12'h072;
rommem[13103] <= 12'h079;
rommem[13104] <= 12'h020;
rommem[13105] <= 12'h062;
rommem[13106] <= 12'h079;
rommem[13107] <= 12'h074;
rommem[13108] <= 12'h065;
rommem[13109] <= 12'h073;
rommem[13110] <= 12'h00D;
rommem[13111] <= 12'h00A;
rommem[13112] <= 12'h044;
rommem[13113] <= 12'h052;
rommem[13114] <= 12'h020;
rommem[13115] <= 12'h03D;
rommem[13116] <= 12'h020;
rommem[13117] <= 12'h044;
rommem[13118] <= 12'h075;
rommem[13119] <= 12'h06D;
rommem[13120] <= 12'h070;
rommem[13121] <= 12'h020;
rommem[13122] <= 12'h072;
rommem[13123] <= 12'h065;
rommem[13124] <= 12'h067;
rommem[13125] <= 12'h069;
rommem[13126] <= 12'h073;
rommem[13127] <= 12'h074;
rommem[13128] <= 12'h065;
rommem[13129] <= 12'h072;
rommem[13130] <= 12'h073;
rommem[13131] <= 12'h00D;
rommem[13132] <= 12'h00A;
rommem[13133] <= 12'h044;
rommem[13134] <= 12'h020;
rommem[13135] <= 12'h03D;
rommem[13136] <= 12'h020;
rommem[13137] <= 12'h044;
rommem[13138] <= 12'h075;
rommem[13139] <= 12'h06D;
rommem[13140] <= 12'h070;
rommem[13141] <= 12'h020;
rommem[13142] <= 12'h06D;
rommem[13143] <= 12'h065;
rommem[13144] <= 12'h06D;
rommem[13145] <= 12'h06F;
rommem[13146] <= 12'h072;
rommem[13147] <= 12'h079;
rommem[13148] <= 12'h00D;
rommem[13149] <= 12'h00A;
rommem[13150] <= 12'h046;
rommem[13151] <= 12'h020;
rommem[13152] <= 12'h03D;
rommem[13153] <= 12'h020;
rommem[13154] <= 12'h046;
rommem[13155] <= 12'h069;
rommem[13156] <= 12'h06C;
rommem[13157] <= 12'h06C;
rommem[13158] <= 12'h020;
rommem[13159] <= 12'h06D;
rommem[13160] <= 12'h065;
rommem[13161] <= 12'h06D;
rommem[13162] <= 12'h06F;
rommem[13163] <= 12'h072;
rommem[13164] <= 12'h079;
rommem[13165] <= 12'h00D;
rommem[13166] <= 12'h00A;
rommem[13167] <= 12'h046;
rommem[13168] <= 12'h04C;
rommem[13169] <= 12'h020;
rommem[13170] <= 12'h03D;
rommem[13171] <= 12'h020;
rommem[13172] <= 12'h044;
rommem[13173] <= 12'h075;
rommem[13174] <= 12'h06D;
rommem[13175] <= 12'h070;
rommem[13176] <= 12'h020;
rommem[13177] <= 12'h049;
rommem[13178] <= 12'h02F;
rommem[13179] <= 12'h04F;
rommem[13180] <= 12'h020;
rommem[13181] <= 12'h046;
rommem[13182] <= 12'h06F;
rommem[13183] <= 12'h063;
rommem[13184] <= 12'h075;
rommem[13185] <= 12'h073;
rommem[13186] <= 12'h020;
rommem[13187] <= 12'h04C;
rommem[13188] <= 12'h069;
rommem[13189] <= 12'h073;
rommem[13190] <= 12'h074;
rommem[13191] <= 12'h00D;
rommem[13192] <= 12'h00A;
rommem[13193] <= 12'h04A;
rommem[13194] <= 12'h020;
rommem[13195] <= 12'h03D;
rommem[13196] <= 12'h020;
rommem[13197] <= 12'h04A;
rommem[13198] <= 12'h075;
rommem[13199] <= 12'h06D;
rommem[13200] <= 12'h070;
rommem[13201] <= 12'h020;
rommem[13202] <= 12'h074;
rommem[13203] <= 12'h06F;
rommem[13204] <= 12'h020;
rommem[13205] <= 12'h063;
rommem[13206] <= 12'h06F;
rommem[13207] <= 12'h064;
rommem[13208] <= 12'h065;
rommem[13209] <= 12'h00D;
rommem[13210] <= 12'h00A;
rommem[13211] <= 12'h04A;
rommem[13212] <= 12'h044;
rommem[13213] <= 12'h034;
rommem[13214] <= 12'h020;
rommem[13215] <= 12'h03D;
rommem[13216] <= 12'h020;
rommem[13217] <= 12'h04A;
rommem[13218] <= 12'h075;
rommem[13219] <= 12'h06D;
rommem[13220] <= 12'h070;
rommem[13221] <= 12'h020;
rommem[13222] <= 12'h074;
rommem[13223] <= 12'h06F;
rommem[13224] <= 12'h020;
rommem[13225] <= 12'h024;
rommem[13226] <= 12'h046;
rommem[13227] <= 12'h046;
rommem[13228] <= 12'h044;
rommem[13229] <= 12'h034;
rommem[13230] <= 12'h030;
rommem[13231] <= 12'h030;
rommem[13232] <= 12'h00D;
rommem[13233] <= 12'h00A;
rommem[13234] <= 12'h052;
rommem[13235] <= 12'h041;
rommem[13236] <= 12'h04D;
rommem[13237] <= 12'h054;
rommem[13238] <= 12'h045;
rommem[13239] <= 12'h053;
rommem[13240] <= 12'h054;
rommem[13241] <= 12'h020;
rommem[13242] <= 12'h03D;
rommem[13243] <= 12'h020;
rommem[13244] <= 12'h074;
rommem[13245] <= 12'h065;
rommem[13246] <= 12'h073;
rommem[13247] <= 12'h074;
rommem[13248] <= 12'h020;
rommem[13249] <= 12'h052;
rommem[13250] <= 12'h041;
rommem[13251] <= 12'h04D;
rommem[13252] <= 12'h00D;
rommem[13253] <= 12'h00A;
rommem[13254] <= 12'h073;
rommem[13255] <= 12'h020;
rommem[13256] <= 12'h03D;
rommem[13257] <= 12'h020;
rommem[13258] <= 12'h073;
rommem[13259] <= 12'h065;
rommem[13260] <= 12'h072;
rommem[13261] <= 12'h069;
rommem[13262] <= 12'h061;
rommem[13263] <= 12'h06C;
rommem[13264] <= 12'h020;
rommem[13265] <= 12'h06F;
rommem[13266] <= 12'h075;
rommem[13267] <= 12'h074;
rommem[13268] <= 12'h070;
rommem[13269] <= 12'h075;
rommem[13270] <= 12'h074;
rommem[13271] <= 12'h020;
rommem[13272] <= 12'h074;
rommem[13273] <= 12'h065;
rommem[13274] <= 12'h073;
rommem[13275] <= 12'h074;
rommem[13276] <= 12'h00D;
rommem[13277] <= 12'h00A;
rommem[13278] <= 12'h053;
rommem[13279] <= 12'h031;
rommem[13280] <= 12'h039;
rommem[13281] <= 12'h020;
rommem[13282] <= 12'h03D;
rommem[13283] <= 12'h020;
rommem[13284] <= 12'h072;
rommem[13285] <= 12'h075;
rommem[13286] <= 12'h06E;
rommem[13287] <= 12'h020;
rommem[13288] <= 12'h053;
rommem[13289] <= 12'h031;
rommem[13290] <= 12'h039;
rommem[13291] <= 12'h020;
rommem[13292] <= 12'h06C;
rommem[13293] <= 12'h06F;
rommem[13294] <= 12'h061;
rommem[13295] <= 12'h064;
rommem[13296] <= 12'h065;
rommem[13297] <= 12'h072;
rommem[13298] <= 12'h00D;
rommem[13299] <= 12'h00A;
rommem[13300] <= 12'h053;
rommem[13301] <= 12'h050;
rommem[13302] <= 12'h020;
rommem[13303] <= 12'h03D;
rommem[13304] <= 12'h020;
rommem[13305] <= 12'h073;
rommem[13306] <= 12'h070;
rommem[13307] <= 12'h072;
rommem[13308] <= 12'h069;
rommem[13309] <= 12'h074;
rommem[13310] <= 12'h065;
rommem[13311] <= 12'h020;
rommem[13312] <= 12'h064;
rommem[13313] <= 12'h065;
rommem[13314] <= 12'h06D;
rommem[13315] <= 12'h06F;
rommem[13316] <= 12'h00D;
rommem[13317] <= 12'h00A;
rommem[13318] <= 12'h054;
rommem[13319] <= 12'h049;
rommem[13320] <= 12'h020;
rommem[13321] <= 12'h03D;
rommem[13322] <= 12'h020;
rommem[13323] <= 12'h064;
rommem[13324] <= 12'h069;
rommem[13325] <= 12'h073;
rommem[13326] <= 12'h070;
rommem[13327] <= 12'h06C;
rommem[13328] <= 12'h061;
rommem[13329] <= 12'h079;
rommem[13330] <= 12'h020;
rommem[13331] <= 12'h064;
rommem[13332] <= 12'h061;
rommem[13333] <= 12'h074;
rommem[13334] <= 12'h065;
rommem[13335] <= 12'h02F;
rommem[13336] <= 12'h074;
rommem[13337] <= 12'h069;
rommem[13338] <= 12'h06D;
rommem[13339] <= 12'h065;
rommem[13340] <= 12'h00D;
rommem[13341] <= 12'h00A;
rommem[13342] <= 12'h055;
rommem[13343] <= 12'h020;
rommem[13344] <= 12'h03D;
rommem[13345] <= 12'h020;
rommem[13346] <= 12'h075;
rommem[13347] <= 12'h06E;
rommem[13348] <= 12'h061;
rommem[13349] <= 12'h073;
rommem[13350] <= 12'h073;
rommem[13351] <= 12'h065;
rommem[13352] <= 12'h06D;
rommem[13353] <= 12'h062;
rommem[13354] <= 12'h06C;
rommem[13355] <= 12'h065;
rommem[13356] <= 12'h00D;
rommem[13357] <= 12'h00A;
rommem[13358] <= 12'h078;
rommem[13359] <= 12'h020;
rommem[13360] <= 12'h03D;
rommem[13361] <= 12'h020;
rommem[13362] <= 12'h065;
rommem[13363] <= 12'h078;
rommem[13364] <= 12'h069;
rommem[13365] <= 12'h074;
rommem[13366] <= 12'h020;
rommem[13367] <= 12'h06D;
rommem[13368] <= 12'h06F;
rommem[13369] <= 12'h06E;
rommem[13370] <= 12'h069;
rommem[13371] <= 12'h074;
rommem[13372] <= 12'h06F;
rommem[13373] <= 12'h072;
rommem[13374] <= 12'h00D;
rommem[13375] <= 12'h00A;
rommem[13376] <= 12'h000;
rommem[13377] <= 12'h00D;
rommem[13378] <= 12'h00A;
rommem[13379] <= 12'h020;
rommem[13380] <= 12'h020;
rommem[13381] <= 12'h044;
rommem[13382] <= 12'h02F;
rommem[13383] <= 12'h041;
rommem[13384] <= 12'h042;
rommem[13385] <= 12'h020;
rommem[13386] <= 12'h020;
rommem[13387] <= 12'h020;
rommem[13388] <= 12'h020;
rommem[13389] <= 12'h020;
rommem[13390] <= 12'h016;
rommem[13391] <= 12'hFFF;
rommem[13392] <= 12'hE7E;
rommem[13393] <= 12'h08D;
rommem[13394] <= 12'h03A;
rommem[13395] <= 12'h039;
rommem[13396] <= 12'h033;
rommem[13397] <= 12'h401;
rommem[13398] <= 12'h0E6;
rommem[13399] <= 12'hC00;
rommem[13400] <= 12'h0C1;
rommem[13401] <= 12'h019;
rommem[13402] <= 12'h122;
rommem[13403] <= 12'hFFF;
rommem[13404] <= 12'hBF8;
rommem[13405] <= 12'h0EF;
rommem[13406] <= 12'h60B;
rommem[13407] <= 12'h058;
rommem[13408] <= 12'h08E;
rommem[13409] <= 12'hFFE;
rommem[13410] <= 12'hD27;
rommem[13411] <= 12'h06D;
rommem[13412] <= 12'hE0F;
rommem[13413] <= 12'h027;
rommem[13414] <= 12'hFB3;
rommem[13415] <= 12'h0AD;
rommem[13416] <= 12'hF0F;
rommem[13417] <= 12'h07F;
rommem[13418] <= 12'hEF0;
rommem[13419] <= 12'h011;
rommem[13420] <= 12'h020;
rommem[13421] <= 12'hFAC;
rommem[13422] <= 12'h034;
rommem[13423] <= 12'h036;
rommem[13424] <= 12'h18E;
rommem[13425] <= 12'h000;
rommem[13426] <= 12'h000;
rommem[13427] <= 12'h05F;
rommem[13428] <= 12'h08E;
rommem[13429] <= 12'h000;
rommem[13430] <= 12'h830;
rommem[13431] <= 12'h0C1;
rommem[13432] <= 12'h3B6;
rommem[13433] <= 12'h024;
rommem[13434] <= 12'h010;
rommem[13435] <= 12'h0F1;
rommem[13436] <= 12'h000;
rommem[13437] <= 12'h811;
rommem[13438] <= 12'h024;
rommem[13439] <= 12'h00B;
rommem[13440] <= 12'h0A6;
rommem[13441] <= 12'h837;
rommem[13442] <= 12'h0A7;
rommem[13443] <= 12'hB09;
rommem[13444] <= 12'h000;
rommem[13445] <= 12'h820;
rommem[13446] <= 12'h031;
rommem[13447] <= 12'h202;
rommem[13448] <= 12'h05C;
rommem[13449] <= 12'h020;
rommem[13450] <= 12'hFEC;
rommem[13451] <= 12'h035;
rommem[13452] <= 12'h0B6;
rommem[13453] <= 12'h034;
rommem[13454] <= 12'h036;
rommem[13455] <= 12'h18E;
rommem[13456] <= 12'h000;
rommem[13457] <= 12'h000;
rommem[13458] <= 12'h05F;
rommem[13459] <= 12'h08E;
rommem[13460] <= 12'h000;
rommem[13461] <= 12'h830;
rommem[13462] <= 12'h0C1;
rommem[13463] <= 12'h3B6;
rommem[13464] <= 12'h024;
rommem[13465] <= 12'h010;
rommem[13466] <= 12'h0F1;
rommem[13467] <= 12'h000;
rommem[13468] <= 12'h811;
rommem[13469] <= 12'h024;
rommem[13470] <= 12'h00B;
rommem[13471] <= 12'h0A6;
rommem[13472] <= 12'hB09;
rommem[13473] <= 12'h000;
rommem[13474] <= 12'h820;
rommem[13475] <= 12'h0A7;
rommem[13476] <= 12'hB0D;
rommem[13477] <= 12'h031;
rommem[13478] <= 12'h202;
rommem[13479] <= 12'h05C;
rommem[13480] <= 12'h020;
rommem[13481] <= 12'hFEC;
rommem[13482] <= 12'h035;
rommem[13483] <= 12'h0B6;
rommem[13484] <= 12'h034;
rommem[13485] <= 12'h036;
rommem[13486] <= 12'h0B6;
rommem[13487] <= 12'h000;
rommem[13488] <= 12'h811;
rommem[13489] <= 12'h081;
rommem[13490] <= 12'h3B6;
rommem[13491] <= 12'h124;
rommem[13492] <= 12'hFFF;
rommem[13493] <= 12'hB9F;
rommem[13494] <= 12'h017;
rommem[13495] <= 12'hFFF;
rommem[13496] <= 12'hB36;
rommem[13497] <= 12'h0F6;
rommem[13498] <= 12'h000;
rommem[13499] <= 12'h811;
rommem[13500] <= 12'h1BE;
rommem[13501] <= 12'h000;
rommem[13502] <= 12'h912;
rommem[13503] <= 12'h0A6;
rommem[13504] <= 12'hA04;
rommem[13505] <= 12'h08E;
rommem[13506] <= 12'h000;
rommem[13507] <= 12'h830;
rommem[13508] <= 12'h0A7;
rommem[13509] <= 12'hA05;
rommem[13510] <= 12'h08E;
rommem[13511] <= 12'h000;
rommem[13512] <= 12'h820;
rommem[13513] <= 12'h058;
rommem[13514] <= 12'h1AF;
rommem[13515] <= 12'hA05;
rommem[13516] <= 12'h054;
rommem[13517] <= 12'h05C;
rommem[13518] <= 12'h0F7;
rommem[13519] <= 12'h000;
rommem[13520] <= 12'h811;
rommem[13521] <= 12'h035;
rommem[13522] <= 12'h0B6;
rommem[13523] <= 12'h034;
rommem[13524] <= 12'h076;
rommem[13525] <= 12'h017;
rommem[13526] <= 12'hFFF;
rommem[13527] <= 12'hB17;
rommem[13528] <= 12'h05F;
rommem[13529] <= 12'h05F;
rommem[13530] <= 12'h01F;
rommem[13531] <= 12'h001;
rommem[13532] <= 12'h0C1;
rommem[13533] <= 12'h3B6;
rommem[13534] <= 12'h024;
rommem[13535] <= 12'h03F;
rommem[13536] <= 12'h0F1;
rommem[13390] <= 12'h058;
rommem[13391] <= 12'h020;
rommem[13392] <= 12'h020;
rommem[13393] <= 12'h020;
rommem[13394] <= 12'h020;
rommem[13395] <= 12'h020;
rommem[13396] <= 12'h020;
rommem[13397] <= 12'h059;
rommem[13398] <= 12'h020;
rommem[13399] <= 12'h020;
rommem[13400] <= 12'h020;
rommem[13401] <= 12'h020;
rommem[13402] <= 12'h020;
rommem[13403] <= 12'h020;
rommem[13404] <= 12'h055;
rommem[13405] <= 12'h020;
rommem[13406] <= 12'h020;
rommem[13407] <= 12'h020;
rommem[13408] <= 12'h020;
rommem[13409] <= 12'h020;
rommem[13410] <= 12'h020;
rommem[13411] <= 12'h053;
rommem[13412] <= 12'h020;
rommem[13413] <= 12'h020;
rommem[13414] <= 12'h020;
rommem[13415] <= 12'h020;
rommem[13416] <= 12'h020;
rommem[13417] <= 12'h020;
rommem[13418] <= 12'h020;
rommem[13419] <= 12'h050;
rommem[13420] <= 12'h043;
rommem[13421] <= 12'h020;
rommem[13422] <= 12'h020;
rommem[13423] <= 12'h020;
rommem[13424] <= 12'h020;
rommem[13425] <= 12'h044;
rommem[13426] <= 12'h050;
rommem[13427] <= 12'h020;
rommem[13428] <= 12'h020;
rommem[13429] <= 12'h043;
rommem[13430] <= 12'h043;
rommem[13431] <= 12'h052;
rommem[13432] <= 12'h00D;
rommem[13433] <= 12'h00A;
rommem[13434] <= 12'h000;
rommem[13435] <= 12'h0BD;
rommem[13436] <= 12'hFFD;
rommem[13437] <= 12'h2D2;
rommem[13438] <= 12'h039;
rommem[13439] <= 12'h0C6;
rommem[13440] <= 12'h020;
rommem[13441] <= 12'h016;
rommem[13442] <= 12'hFFF;
rommem[13443] <= 12'hA5D;
rommem[13444] <= 12'h08D;
rommem[13445] <= 12'hD1D;
rommem[13446] <= 12'h18E;
rommem[13447] <= 12'h000;
rommem[13448] <= 12'h000;
rommem[13449] <= 12'h1BE;
rommem[13450] <= 12'h000;
rommem[13451] <= 12'h922;
rommem[13452] <= 12'h017;
rommem[13453] <= 12'hFFD;
rommem[13454] <= 12'hC43;
rommem[13455] <= 12'h0C6;
rommem[13456] <= 12'h03A;
rommem[13457] <= 12'h017;
rommem[13458] <= 12'hFFF;
rommem[13459] <= 12'hA4D;
rommem[13460] <= 12'h01F;
rommem[13461] <= 12'h020;
rommem[13462] <= 12'h017;
rommem[13463] <= 12'hFFE;
rommem[13464] <= 12'hF95;
rommem[13465] <= 12'h0C6;
rommem[13466] <= 12'h020;
rommem[13467] <= 12'h017;
rommem[13468] <= 12'hFFF;
rommem[13469] <= 12'hA43;
rommem[13470] <= 12'h08E;
rommem[13471] <= 12'h000;
rommem[13472] <= 12'h008;
rommem[13473] <= 12'h0E6;
rommem[13474] <= 12'hA04;
rommem[13475] <= 12'h031;
rommem[13476] <= 12'h201;
rommem[13477] <= 12'h017;
rommem[13478] <= 12'hFFE;
rommem[13479] <= 12'hF8F;
rommem[13480] <= 12'h0C6;
rommem[13481] <= 12'h020;
rommem[13482] <= 12'h017;
rommem[13483] <= 12'hFFF;
rommem[13484] <= 12'hA34;
rommem[13485] <= 12'h05F;
rommem[13486] <= 12'h04F;
rommem[13487] <= 12'h017;
rommem[13488] <= 12'hFFF;
rommem[13489] <= 12'h9F7;
rommem[13490] <= 12'h0C1;
rommem[13491] <= 12'h003;
rommem[13492] <= 12'h027;
rommem[13493] <= 12'h024;
rommem[13494] <= 12'h030;
rommem[13495] <= 12'h1FF;
rommem[13496] <= 12'h026;
rommem[13497] <= 12'hFE7;
rommem[13498] <= 12'h0C6;
rommem[13499] <= 12'h020;
rommem[13500] <= 12'h017;
rommem[13501] <= 12'hFFF;
rommem[13502] <= 12'hA22;
rommem[13503] <= 12'h08E;
rommem[13504] <= 12'h000;
rommem[13505] <= 12'h008;
rommem[13506] <= 12'h031;
rommem[13507] <= 12'h3F8;
rommem[13508] <= 12'h0E6;
rommem[13509] <= 12'hA04;
rommem[13510] <= 12'h0C1;
rommem[13511] <= 12'h020;
rommem[13512] <= 12'h024;
rommem[13513] <= 12'h002;
rommem[13514] <= 12'h0C6;
rommem[13515] <= 12'h02E;
rommem[13516] <= 12'h017;
rommem[13517] <= 12'hFFF;
rommem[13518] <= 12'hA12;
rommem[13519] <= 12'h031;
rommem[13520] <= 12'h201;
rommem[13521] <= 12'h030;
rommem[13522] <= 12'h1FF;
rommem[13523] <= 12'h026;
rommem[13524] <= 12'hFEF;
rommem[13525] <= 12'h1BC;
rommem[13526] <= 12'h000;
rommem[13527] <= 12'h926;
rommem[13528] <= 12'h025;
rommem[13529] <= 12'hFB2;
rommem[13530] <= 12'h017;
rommem[13531] <= 12'hFFD;
rommem[13532] <= 12'hBF5;
rommem[13533] <= 12'h016;
rommem[13534] <= 12'hFFF;
rommem[13535] <= 12'hB59;
rommem[13536] <= 12'h0CE;
rommem[13537] <= 12'h000;
rommem[13538] <= 12'h811;
rommem[13539] <= 12'h024;
rommem[13540] <= 12'h03A;
rommem[13541] <= 12'h1AE;
rommem[13542] <= 12'h809;
rommem[13538] <= 12'h008;
rommem[13539] <= 12'h017;
rommem[13540] <= 12'hFFF;
rommem[13541] <= 12'hCE6;
rommem[13542] <= 12'h0BE;
rommem[13543] <= 12'h000;
rommem[13544] <= 12'h820;
rommem[13545] <= 12'h1BC;
rommem[13546] <= 12'h000;
rommem[13547] <= 12'h912;
rommem[13548] <= 12'h026;
rommem[13549] <= 12'h02C;
rommem[13550] <= 12'h0BE;
rommem[13551] <= 12'h000;
rommem[13552] <= 12'h912;
rommem[13553] <= 12'h18E;
rommem[13554] <= 12'h000;
rommem[13555] <= 12'h830;
rommem[13556] <= 12'h0A6;
rommem[13557] <= 12'hA0D;
rommem[13558] <= 12'h0A7;
rommem[13559] <= 12'h804;
rommem[13560] <= 12'h07A;
rommem[13561] <= 12'h000;
rommem[13562] <= 12'h811;
rommem[13563] <= 12'h034;
rommem[13564] <= 12'h004;
rommem[13565] <= 12'h05C;
rommem[13566] <= 12'h0A6;
rommem[13567] <= 12'hA05;
rommem[13568] <= 12'h05A;
rommem[13569] <= 12'h0A7;
rommem[13570] <= 12'hA05;
rommem[13571] <= 12'h05C;
rommem[13572] <= 12'h0C1;
rommem[13573] <= 12'h3B6;
rommem[13574] <= 12'h025;
rommem[13575] <= 12'hFF5;
rommem[13576] <= 12'h035;
rommem[13577] <= 12'h004;
rommem[13578] <= 12'h058;
rommem[13579] <= 12'h04F;
rommem[13580] <= 12'h01F;
rommem[13581] <= 12'h002;
rommem[13582] <= 12'h054;
rommem[13583] <= 12'h0EE;
rommem[13584] <= 12'h202;
rommem[13585] <= 12'h0EF;
rommem[13586] <= 12'hA01;
rommem[13587] <= 12'h05C;
rommem[13588] <= 12'h0C1;
rommem[13589] <= 12'h3B6;
rommem[13590] <= 12'h025;
rommem[13591] <= 12'hFF7;
rommem[13592] <= 12'h035;
rommem[13593] <= 12'h0F6;
rommem[13594] <= 12'h030;
rommem[13595] <= 12'h002;
rommem[13596] <= 12'h05C;
rommem[13597] <= 12'h020;
rommem[13598] <= 12'hFBD;
rommem[13599] <= 12'h035;
rommem[13600] <= 12'h0F6;
rommem[13601] <= 12'h01A;
rommem[13602] <= 12'h010;
rommem[13603] <= 12'h0A6;
rommem[13604] <= 12'hE04;
rommem[13605] <= 12'h0B7;
rommem[13606] <= 12'h000;
rommem[13607] <= 12'h90F;
rommem[13608] <= 12'h0EC;
rommem[13609] <= 12'h601;
rommem[13610] <= 12'h0FD;
rommem[13611] <= 12'h000;
rommem[13612] <= 12'h900;
rommem[13613] <= 12'h0E6;
rommem[13614] <= 12'h603;
rommem[13615] <= 12'h0F7;
rommem[13616] <= 12'h000;
rommem[13617] <= 12'h90E;
rommem[13618] <= 12'h0EC;
rommem[13619] <= 12'h604;
rommem[13620] <= 12'h0FD;
rommem[13621] <= 12'h000;
rommem[13622] <= 12'h902;
rommem[13623] <= 12'h0EC;
rommem[13624] <= 12'h606;
rommem[13625] <= 12'h0FD;
rommem[13626] <= 12'h000;
rommem[13627] <= 12'h904;
rommem[13628] <= 12'h0EC;
rommem[13629] <= 12'h608;
rommem[13630] <= 12'h0FD;
rommem[13631] <= 12'h000;
rommem[13632] <= 12'h906;
rommem[13633] <= 12'h1FF;
rommem[13634] <= 12'h000;
rommem[13635] <= 12'h908;
rommem[13636] <= 12'h0EC;
rommem[13637] <= 12'h60B;
rommem[13638] <= 12'h0FD;
rommem[13639] <= 12'h000;
rommem[13640] <= 12'h90A;
rommem[13641] <= 12'h1FF;
rommem[13642] <= 12'h000;
rommem[13643] <= 12'h908;
rommem[13644] <= 12'h1CE;
rommem[13645] <= 12'h003;
rommem[13646] <= 12'hFFF;
rommem[13647] <= 12'h0CC;
rommem[13648] <= 12'hFFF;
rommem[13649] <= 12'h559;
rommem[13650] <= 12'h034;
rommem[13651] <= 12'h006;
rommem[13652] <= 12'h01C;
rommem[13653] <= 12'h0EF;
rommem[13654] <= 12'h07E;
rommem[13655] <= 12'hFFF;
rommem[13656] <= 12'h2CF;
rommem[13657] <= 12'h1FE;
rommem[13544] <= 12'h912;
rommem[13545] <= 12'h017;
rommem[13546] <= 12'hFFF;
rommem[13547] <= 12'hC5F;
rommem[13548] <= 12'h017;
rommem[13549] <= 12'hFFF;
rommem[13550] <= 12'hCDD;
rommem[13551] <= 12'h05D;
rommem[13552] <= 12'h027;
rommem[13553] <= 12'h00C;
rommem[13554] <= 12'h0F6;
rommem[13555] <= 12'h000;
rommem[13556] <= 12'h913;
rommem[13557] <= 12'h0E7;
rommem[13558] <= 12'h800;
rommem[13559] <= 12'h033;
rommem[13560] <= 12'h5FF;
rommem[13561] <= 12'h283;
rommem[13562] <= 12'h000;
rommem[13563] <= 12'h000;
rommem[13564] <= 12'h026;
rommem[13565] <= 12'hFEB;
rommem[13566] <= 12'h017;
rommem[13567] <= 12'hFFF;
rommem[13568] <= 12'hC2D;
rommem[13569] <= 12'h0C1;
rommem[13570] <= 12'h022;
rommem[13571] <= 12'h026;
rommem[13572] <= 12'h018;
rommem[13573] <= 12'h0CE;
rommem[13574] <= 12'h000;
rommem[13575] <= 12'h028;
rommem[13576] <= 12'h017;
rommem[13577] <= 12'hFFF;
rommem[13578] <= 12'hC23;
rommem[13579] <= 12'h0C1;
rommem[13580] <= 12'h022;
rommem[13581] <= 12'h026;
rommem[13582] <= 12'h005;
rommem[13583] <= 12'h0CE;
rommem[13584] <= 12'h000;
rommem[13585] <= 12'h008;
rommem[13586] <= 12'h020;
rommem[13587] <= 12'hFD5;
rommem[13588] <= 12'h0E7;
rommem[13589] <= 12'h800;
rommem[13590] <= 12'h033;
rommem[13591] <= 12'h5FF;
rommem[13592] <= 12'h283;
rommem[13593] <= 12'h000;
rommem[13594] <= 12'h000;
rommem[13595] <= 12'h022;
rommem[13596] <= 12'hFEB;
rommem[13597] <= 12'h016;
rommem[13598] <= 12'hFFF;
rommem[13599] <= 12'hB19;
rommem[13600] <= 12'h017;
rommem[13601] <= 12'hFFF;
rommem[13602] <= 12'hC80;
rommem[13603] <= 12'h017;
rommem[13604] <= 12'hFFF;
rommem[13605] <= 12'hC25;
rommem[13606] <= 12'h017;
rommem[13607] <= 12'hFFF;
rommem[13608] <= 12'hCA3;
rommem[13609] <= 12'h0F6;
rommem[13610] <= 12'h000;
rommem[13611] <= 12'h913;
rommem[13612] <= 12'h0BE;
rommem[13613] <= 12'h000;
rommem[13614] <= 12'h922;
rommem[13615] <= 12'h04F;
rommem[13616] <= 12'h04D;
rommem[13617] <= 12'h026;
rommem[13618] <= 12'h00D;
rommem[13619] <= 12'h05F;
rommem[13620] <= 12'h04F;
rommem[13621] <= 12'h017;
rommem[13622] <= 12'hFFF;
rommem[13623] <= 12'h971;
rommem[13624] <= 12'h0C1;
rommem[13625] <= 12'h003;
rommem[13626] <= 12'h127;
rommem[13627] <= 12'hFFF;
rommem[13628] <= 12'hAFC;
rommem[13629] <= 12'h0F6;
rommem[13630] <= 12'h000;
rommem[13631] <= 12'h913;
rommem[13632] <= 12'h0E7;
rommem[13633] <= 12'h800;
rommem[13634] <= 12'h0BC;
rommem[13635] <= 12'h000;
rommem[13636] <= 12'h926;
rommem[13637] <= 12'h023;
rommem[13638] <= 12'hFE9;
rommem[13639] <= 12'h016;
rommem[13640] <= 12'hFFF;
rommem[13641] <= 12'hAEF;
rommem[13642] <= 12'h0CC;
rommem[13643] <= 12'hFFF;
rommem[13644] <= 12'h441;
rommem[13645] <= 12'h017;
rommem[13646] <= 12'hFFE;
rommem[13647] <= 12'hE8A;
rommem[13648] <= 12'h08D;
rommem[13649] <= 12'hF2D;
rommem[13650] <= 12'h0FC;
rommem[13651] <= 12'h000;
rommem[13652] <= 12'h900;
rommem[13653] <= 12'h08D;
rommem[13654] <= 12'hF24;
rommem[13655] <= 12'h08D;
rommem[13656] <= 12'hF26;
rommem[13657] <= 12'h0FC;
rommem[13658] <= 12'h000;
rommem[13659] <= 12'h908;
rommem[13660] <= 12'h03B;
rommem[13661] <= 12'h03B;
rommem[13662] <= 12'h017;
rommem[13663] <= 12'hFFE;
rommem[13664] <= 12'hF0B;
rommem[13665] <= 12'h0B6;
rommem[13666] <= 12'hFFC;
rommem[13667] <= 12'h014;
rommem[13668] <= 12'h044;
rommem[13669] <= 12'h0BA;
rommem[13670] <= 12'hFFC;
rommem[13671] <= 12'h014;
rommem[13672] <= 12'h084;
rommem[13673] <= 12'hFE0;
rommem[13674] <= 12'h0B7;
rommem[13675] <= 12'hFFC;
rommem[13676] <= 12'h014;
rommem[13677] <= 12'h03B;
rommem[13678] <= 12'h015;
rommem[13679] <= 12'h0F6;
rommem[13680] <= 12'hFFF;
rommem[13681] <= 12'hFFF;
rommem[13682] <= 12'hFE0;
rommem[13683] <= 12'h086;
rommem[13684] <= 12'h049;
rommem[13685] <= 12'h08E;
rommem[13686] <= 12'hE00;
rommem[13687] <= 12'h028;
rommem[13688] <= 12'h0A7;
rommem[13689] <= 12'h807;
rommem[13690] <= 12'h03B;
rommem[13659] <= 12'h902;
rommem[13660] <= 12'h08D;
rommem[13661] <= 12'hF1D;
rommem[13662] <= 12'h08D;
rommem[13663] <= 12'hF1F;
rommem[13664] <= 12'h0FC;
rommem[13665] <= 12'h000;
rommem[13666] <= 12'h904;
rommem[13667] <= 12'h08D;
rommem[13668] <= 12'hF16;
rommem[13669] <= 12'h08D;
rommem[13670] <= 12'hF18;
rommem[13671] <= 12'h0FC;
rommem[13672] <= 12'h000;
rommem[13673] <= 12'h906;
rommem[13674] <= 12'h08D;
rommem[13675] <= 12'hF0F;
rommem[13676] <= 12'h08D;
rommem[13677] <= 12'hF11;
rommem[13678] <= 12'h0FC;
rommem[13679] <= 12'h000;
rommem[13680] <= 12'h908;
rommem[13681] <= 12'h08D;
rommem[13682] <= 12'hF08;
rommem[13683] <= 12'h08D;
rommem[13684] <= 12'hF0A;
rommem[13685] <= 12'h0F6;
rommem[13686] <= 12'h000;
rommem[13687] <= 12'h90B;
rommem[13688] <= 12'h017;
rommem[13689] <= 12'hFFE;
rommem[13690] <= 12'hEBC;
rommem[13691] <= 12'h0FC;
rommem[13692] <= 12'h000;
rommem[13693] <= 12'h90C;
rommem[13694] <= 12'h08D;
rommem[13695] <= 12'hEFB;
rommem[13696] <= 12'h08D;
rommem[13697] <= 12'hEFD;
rommem[13698] <= 12'h0FC;
rommem[13699] <= 12'h000;
rommem[13700] <= 12'h90E;
rommem[13701] <= 12'h0BD;
rommem[13702] <= 12'hFFD;
rommem[13703] <= 12'h2CE;
rommem[13704] <= 12'h08D;
rommem[13705] <= 12'hEF5;
rommem[13706] <= 12'h0B6;
rommem[13707] <= 12'h000;
rommem[13708] <= 12'h90F;
rommem[13709] <= 12'h017;
rommem[13710] <= 12'hFFD;
rommem[13711] <= 12'hD3E;
rommem[13712] <= 12'h08D;
rommem[13713] <= 12'hEED;
rommem[13714] <= 12'h016;
rommem[13715] <= 12'hFFF;
rommem[13716] <= 12'hAA4;
rommem[13717] <= 12'h08D;
rommem[13718] <= 12'hCCB;
rommem[13719] <= 12'h01A;
rommem[13720] <= 12'h010;
rommem[13721] <= 12'h1FE;
rommem[13722] <= 12'h000;
rommem[13723] <= 12'h908;
rommem[13724] <= 12'h0CC;
rommem[13725] <= 12'hFFF;
rommem[13726] <= 12'h5D0;
rommem[13727] <= 12'h034;
rommem[13728] <= 12'h006;
rommem[13729] <= 12'h0C6;
rommem[13730] <= 12'h000;
rommem[13731] <= 12'h034;
rommem[13732] <= 12'h004;
rommem[13733] <= 12'h0FC;
rommem[13734] <= 12'h000;
rommem[13735] <= 12'h912;
rommem[13736] <= 12'h034;
rommem[13737] <= 12'h006;
rommem[13738] <= 12'h0F6;
rommem[13739] <= 12'h000;
rommem[13740] <= 12'h911;
rommem[13741] <= 12'h034;
rommem[13742] <= 12'h004;
rommem[13743] <= 12'h0FC;
rommem[13744] <= 12'h000;
rommem[13745] <= 12'h906;
rommem[13746] <= 12'h034;
rommem[13747] <= 12'h006;
rommem[13748] <= 12'h0FC;
rommem[13749] <= 12'h000;
rommem[13750] <= 12'h904;
rommem[13751] <= 12'h034;
rommem[13752] <= 12'h006;
rommem[13753] <= 12'h0FC;
rommem[13754] <= 12'h000;
rommem[13755] <= 12'h902;
rommem[13756] <= 12'h034;
rommem[13757] <= 12'h006;
rommem[13758] <= 12'h0B6;
rommem[13759] <= 12'h000;
rommem[13760] <= 12'h90E;
rommem[13761] <= 12'h034;
rommem[13762] <= 12'h002;
rommem[13763] <= 12'h0FC;
rommem[13764] <= 12'h000;
rommem[13765] <= 12'h900;
rommem[13766] <= 12'h034;
rommem[13767] <= 12'h006;
rommem[13768] <= 12'h0B6;
rommem[13769] <= 12'h000;
rommem[13770] <= 12'h90F;
rommem[13771] <= 12'h034;
rommem[13772] <= 12'h002;
rommem[13773] <= 12'h015;
rommem[13774] <= 12'h035;
rommem[13775] <= 12'h0FF;
rommem[13776] <= 12'h1FF;
rommem[13777] <= 12'h000;
rommem[13778] <= 12'h908;
rommem[13779] <= 12'h032;
rommem[13780] <= 12'h80F;
rommem[13781] <= 12'h006;
rommem[13782] <= 12'hFFF;
rommem[13783] <= 12'h034;
rommem[13784] <= 12'h001;
rommem[13785] <= 12'h034;
rommem[13786] <= 12'h002;
rommem[13787] <= 12'h01F;
rommem[13788] <= 12'h0B8;
rommem[13789] <= 12'h0B7;
rommem[13790] <= 12'h000;
rommem[13791] <= 12'h90E;
rommem[13792] <= 12'h04F;
rommem[13793] <= 12'h01F;
rommem[13794] <= 12'h08B;
rommem[13795] <= 12'h035;
rommem[13796] <= 12'h002;
rommem[13797] <= 12'h0FD;
rommem[13798] <= 12'h000;
rommem[13799] <= 12'h900;
rommem[13800] <= 12'h0BF;
rommem[13801] <= 12'h000;
rommem[13802] <= 12'h902;
rommem[13803] <= 12'h1BF;
rommem[13804] <= 12'h000;
rommem[13805] <= 12'h904;
rommem[13806] <= 12'h0FF;
rommem[13807] <= 12'h000;
rommem[13808] <= 12'h906;
rommem[13809] <= 12'h035;
rommem[13810] <= 12'h002;
rommem[13811] <= 12'h0B7;
rommem[13812] <= 12'h000;
rommem[13813] <= 12'h90F;
rommem[13814] <= 12'h0CC;
rommem[13815] <= 12'hFFE;
rommem[13816] <= 12'hC64;
rommem[13817] <= 12'h0FD;
rommem[13818] <= 12'h000;
rommem[13819] <= 12'h804;
rommem[13820] <= 12'h0CC;
rommem[13821] <= 12'hFFE;
rommem[13822] <= 12'h319;
rommem[13823] <= 12'h0FD;
rommem[13824] <= 12'h000;
rommem[13825] <= 12'h800;
rommem[13826] <= 12'h0FC;
rommem[13827] <= 12'hFFF;
rommem[13828] <= 12'h2B6;
rommem[13829] <= 12'h0FD;
rommem[13830] <= 12'h000;
rommem[13831] <= 12'h80C;
rommem[13832] <= 12'h016;
rommem[13833] <= 12'hFFF;
rommem[13834] <= 12'hF3F;
rommem[13835] <= 12'h08E;
rommem[13836] <= 12'h000;
rommem[13837] <= 12'h000;
rommem[13838] <= 12'h0E6;
rommem[13839] <= 12'h80A;
rommem[13840] <= 12'h000;
rommem[13841] <= 12'hFFC;
rommem[13842] <= 12'h000;
rommem[13843] <= 12'h0C1;
rommem[13844] <= 12'h018;
rommem[13845] <= 12'h026;
rommem[13846] <= 12'h00A;
rommem[13847] <= 12'h01F;
rommem[13848] <= 12'h010;
rommem[13849] <= 12'h017;
rommem[13850] <= 12'hFFE;
rommem[13851] <= 12'hE1B;
rommem[13852] <= 12'h0C6;
rommem[13853] <= 12'h020;
rommem[13854] <= 12'h017;
rommem[13855] <= 12'hFFF;
rommem[13856] <= 12'h8C0;
rommem[13857] <= 12'h030;
rommem[13858] <= 12'h001;
rommem[13859] <= 12'h08C;
rommem[13860] <= 12'h000;
rommem[13861] <= 12'h010;
rommem[13862] <= 12'h025;
rommem[13863] <= 12'hFE6;
rommem[13864] <= 12'h017;
rommem[13865] <= 12'hFFD;
rommem[13866] <= 12'hAA7;
rommem[13867] <= 12'h016;
rommem[13868] <= 12'hFFF;
rommem[13869] <= 12'hA0B;
rommem[13870] <= 12'h000;
rommem[13871] <= 12'hFFC;
rommem[13872] <= 12'h0FF;
rommem[13873] <= 12'h008;
rommem[13874] <= 12'hFFF;
rommem[13875] <= 12'h634;
rommem[13876] <= 12'hFFF;
rommem[13877] <= 12'h039;
rommem[13878] <= 12'hFFE;
rommem[13879] <= 12'hEA9;
rommem[13880] <= 12'hFFE;
rommem[13881] <= 12'hEE1;
rommem[13882] <= 12'hFFD;
rommem[13883] <= 12'h0D2;
rommem[13884] <= 12'hFFE;
rommem[13885] <= 12'h3DA;
rommem[13886] <= 12'hFFE;
rommem[13887] <= 12'h437;
rommem[13888] <= 12'hFFE;
rommem[13889] <= 12'h42E;
rommem[13890] <= 12'hFFE;
rommem[13891] <= 12'hEEB;
rommem[13892] <= 12'hFFE;
rommem[13893] <= 12'hF6F;
rommem[13894] <= 12'hFFE;
rommem[13895] <= 12'hF9D;
rommem[13896] <= 12'h000;
rommem[13897] <= 12'h000;
rommem[13898] <= 12'hFFF;
rommem[13899] <= 12'h1A3;
rommem[13900] <= 12'hFFF;
rommem[13901] <= 12'h262;
rommem[13902] <= 12'h000;
rommem[13903] <= 12'h800;
rommem[13904] <= 12'h000;
rommem[13905] <= 12'h000;
rommem[13906] <= 12'h000;
rommem[13907] <= 12'h000;
rommem[13908] <= 12'h000;
rommem[13909] <= 12'h000;
rommem[13910] <= 12'h000;
rommem[13911] <= 12'hC00;
rommem[13912] <= 12'hC00;
rommem[13913] <= 12'h000;
rommem[13914] <= 12'h800;
rommem[13915] <= 12'h0E6;
rommem[13916] <= 12'h80C;
rommem[13917] <= 12'hFD0;
rommem[13918] <= 12'h01F;
rommem[13919] <= 12'h09B;
rommem[13920] <= 12'h0EE;
rommem[13921] <= 12'h60B;
rommem[13922] <= 12'h033;
rommem[13923] <= 12'h5FF;
rommem[13924] <= 12'h07D;
rommem[13925] <= 12'h000;
rommem[13926] <= 12'h810;
rommem[13927] <= 12'h027;
rommem[13928] <= 12'h00F;
rommem[13929] <= 12'h0CE;
rommem[13930] <= 12'h000;
rommem[13931] <= 12'h820;
rommem[13932] <= 12'h0F6;
rommem[13933] <= 12'h000;
rommem[13934] <= 12'h811;
rommem[13935] <= 12'h027;
rommem[13936] <= 12'h007;
rommem[13937] <= 12'h2A3;
rommem[13938] <= 12'hA01;
rommem[13939] <= 12'h027;
rommem[13940] <= 12'h04B;
rommem[13941] <= 12'h05A;
rommem[13942] <= 12'h026;
rommem[13943] <= 12'hFF9;
rommem[13944] <= 12'h07F;
rommem[13945] <= 12'h000;
rommem[13946] <= 12'h810;
rommem[13947] <= 12'h037;
rommem[13948] <= 12'h006;
rommem[13949] <= 12'h0C1;
rommem[13950] <= 12'h00E;
rommem[13951] <= 12'h122;
rommem[13952] <= 12'hFFF;
rommem[13953] <= 12'hC34;
rommem[13954] <= 12'h0EF;
rommem[13955] <= 12'h60B;
rommem[13956] <= 12'h0C1;
rommem[13957] <= 12'h00A;
rommem[13958] <= 12'h027;
rommem[13959] <= 12'h06D;
rommem[13960] <= 12'h058;
rommem[13961] <= 12'h0AE;
rommem[13962] <= 12'h80C;
rommem[13963] <= 12'hFA6;
rommem[13964] <= 12'h03A;
rommem[13965] <= 12'h0AE;
rommem[13966] <= 12'h804;
rommem[13967] <= 12'h0BF;
rommem[13968] <= 12'h000;
rommem[13969] <= 12'h928;
rommem[13970] <= 12'h054;
rommem[13971] <= 12'h08E;
rommem[13972] <= 12'hFFF;
rommem[13973] <= 12'h64E;
rommem[13974] <= 12'h03A;
rommem[13975] <= 12'h0E6;
rommem[13976] <= 12'h804;
rommem[13977] <= 12'h0F7;
rommem[13978] <= 12'h000;
rommem[13979] <= 12'h930;
rommem[13980] <= 12'h1FF;
rommem[13981] <= 12'h000;
rommem[13982] <= 12'h908;
rommem[13983] <= 12'h0EC;
rommem[13984] <= 12'h601;
rommem[13985] <= 12'h0AE;
rommem[13986] <= 12'h604;
rommem[13987] <= 12'h1AE;
rommem[13988] <= 12'h606;
rommem[13989] <= 12'h0EE;
rommem[13990] <= 12'h608;
rommem[13991] <= 12'h1EE;
rommem[13992] <= 12'h80C;
rommem[13993] <= 12'hF85;
rommem[13994] <= 12'h0AD;
rommem[13995] <= 12'h90F;
rommem[13996] <= 12'h000;
rommem[13997] <= 12'h928;
rommem[13998] <= 12'h1FE;
rommem[13999] <= 12'h000;
rommem[14000] <= 12'h908;
rommem[14001] <= 12'h07D;
rommem[14002] <= 12'h000;
rommem[14003] <= 12'h930;
rommem[14004] <= 12'h02A;
rommem[14005] <= 12'h009;
rommem[14006] <= 12'h0ED;
rommem[14007] <= 12'h601;
rommem[14008] <= 12'h078;
rommem[14009] <= 12'h000;
rommem[14010] <= 12'h930;
rommem[14011] <= 12'h02A;
rommem[14012] <= 12'h002;
rommem[14013] <= 12'h0AF;
rommem[14014] <= 12'h604;
rommem[14015] <= 12'h03B;
rommem[14016] <= 12'h0A6;
rommem[14017] <= 12'hE04;
rommem[14018] <= 12'h0B7;
rommem[14019] <= 12'h000;
rommem[14020] <= 12'h90F;
rommem[14021] <= 12'h0EC;
rommem[14022] <= 12'h601;
rommem[14023] <= 12'h0FD;
rommem[14024] <= 12'h000;
rommem[14025] <= 12'h900;
rommem[14026] <= 12'h0E6;
rommem[14027] <= 12'h603;
rommem[14028] <= 12'h0F7;
rommem[14029] <= 12'h000;
rommem[14030] <= 12'h90E;
rommem[14031] <= 12'h0EC;
rommem[14032] <= 12'h604;
rommem[14033] <= 12'h0FD;
rommem[14034] <= 12'h000;
rommem[14035] <= 12'h902;
rommem[14036] <= 12'h0EC;
rommem[14037] <= 12'h606;
rommem[14038] <= 12'h0FD;
rommem[14039] <= 12'h000;
rommem[14040] <= 12'h904;
rommem[14041] <= 12'h0EC;
rommem[14042] <= 12'h608;
rommem[14043] <= 12'h0FD;
rommem[14044] <= 12'h000;
rommem[14045] <= 12'h906;
rommem[14046] <= 12'h1FF;
rommem[14047] <= 12'h000;
rommem[14048] <= 12'h908;
rommem[14049] <= 12'h0EC;
rommem[14050] <= 12'h60B;
rommem[14051] <= 12'h0FD;
rommem[14052] <= 12'h000;
rommem[14053] <= 12'h90A;
rommem[14054] <= 12'h1EE;
rommem[14055] <= 12'h80C;
rommem[14056] <= 12'hF46;
rommem[14057] <= 12'h0CC;
rommem[14058] <= 12'hFFF;
rommem[14059] <= 12'h6AE;
rommem[14060] <= 12'h034;
rommem[14061] <= 12'h006;
rommem[14062] <= 12'h08D;
rommem[14063] <= 12'h01F;
rommem[14064] <= 12'h016;
rommem[14065] <= 12'hFFF;
rommem[14066] <= 12'hE57;
rommem[14067] <= 12'h020;
rommem[14068] <= 12'h039;
rommem[14069] <= 12'h033;
rommem[14070] <= 12'h401;
rommem[14071] <= 12'h0E6;
rommem[14072] <= 12'hC00;
rommem[14073] <= 12'h0C1;
rommem[14074] <= 12'h019;
rommem[14075] <= 12'h122;
rommem[14076] <= 12'hFFF;
rommem[14077] <= 12'hBB8;
rommem[14078] <= 12'h0EF;
rommem[14079] <= 12'h60B;
rommem[14080] <= 12'h058;
rommem[14081] <= 12'h08E;
rommem[14082] <= 12'hFFE;
rommem[14083] <= 12'hEF6;
rommem[14084] <= 12'h06D;
rommem[14085] <= 12'hE0F;
rommem[14086] <= 12'h027;
rommem[14087] <= 12'hFA6;
rommem[14088] <= 12'h0AD;
rommem[14089] <= 12'hF0F;
rommem[14090] <= 12'h07F;
rommem[14091] <= 12'hEF0;
rommem[14092] <= 12'h011;
rommem[14093] <= 12'h020;
rommem[14094] <= 12'hF9F;
rommem[14095] <= 12'h034;
rommem[14096] <= 12'h036;
rommem[14097] <= 12'h18E;
rommem[14098] <= 12'h000;
rommem[14099] <= 12'h000;
rommem[14100] <= 12'h05F;
rommem[14101] <= 12'h08E;
rommem[14102] <= 12'h000;
rommem[14103] <= 12'h830;
rommem[14104] <= 12'h0C1;
rommem[14105] <= 12'h631;
rommem[14106] <= 12'h024;
rommem[14107] <= 12'h010;
rommem[14108] <= 12'h0F1;
rommem[14109] <= 12'h000;
rommem[14110] <= 12'h811;
rommem[14111] <= 12'h024;
rommem[14112] <= 12'h00B;
rommem[14113] <= 12'h0A6;
rommem[14114] <= 12'h837;
rommem[14115] <= 12'h0A7;
rommem[14116] <= 12'hB09;
rommem[14117] <= 12'h000;
rommem[14118] <= 12'h820;
rommem[14119] <= 12'h031;
rommem[14120] <= 12'h202;
rommem[14121] <= 12'h05C;
rommem[14122] <= 12'h020;
rommem[14123] <= 12'hFEC;
rommem[14124] <= 12'h035;
rommem[14125] <= 12'h0B6;
rommem[14126] <= 12'h034;
rommem[14127] <= 12'h036;
rommem[14128] <= 12'h18E;
rommem[14129] <= 12'h000;
rommem[14130] <= 12'h000;
rommem[14131] <= 12'h05F;
rommem[14132] <= 12'h08E;
rommem[14133] <= 12'h000;
rommem[14134] <= 12'h830;
rommem[14135] <= 12'h0F1;
rommem[14136] <= 12'hFFF;
rommem[14137] <= 12'h631;
rommem[14138] <= 12'h024;
rommem[14139] <= 12'h010;
rommem[14140] <= 12'h0F1;
rommem[14141] <= 12'h000;
rommem[14142] <= 12'h811;
rommem[14143] <= 12'h024;
rommem[14144] <= 12'h00B;
rommem[14145] <= 12'h0A6;
rommem[14146] <= 12'hB09;
rommem[14147] <= 12'h000;
rommem[14148] <= 12'h820;
rommem[14149] <= 12'h0A7;
rommem[14150] <= 12'hB0D;
rommem[14151] <= 12'h031;
rommem[14152] <= 12'h202;
rommem[14153] <= 12'h05C;
rommem[14154] <= 12'h020;
rommem[14155] <= 12'hFEB;
rommem[14156] <= 12'h035;
rommem[14157] <= 12'h0B6;
rommem[14158] <= 12'h034;
rommem[14159] <= 12'h036;
rommem[14160] <= 12'h0B6;
rommem[14161] <= 12'h000;
rommem[14162] <= 12'h811;
rommem[14163] <= 12'h0B1;
rommem[14164] <= 12'hFFF;
rommem[14165] <= 12'h631;
rommem[14166] <= 12'h124;
rommem[14167] <= 12'hFFF;
rommem[14168] <= 12'hB5D;
rommem[14169] <= 12'h017;
rommem[14170] <= 12'hFFF;
rommem[14171] <= 12'hA70;
rommem[14172] <= 12'h0F6;
rommem[14173] <= 12'h000;
rommem[14174] <= 12'h811;
rommem[14175] <= 12'h1BE;
rommem[14176] <= 12'h000;
rommem[14177] <= 12'h912;
rommem[14178] <= 12'h0A6;
rommem[14179] <= 12'hA04;
rommem[14180] <= 12'h08E;
rommem[14181] <= 12'h000;
rommem[14182] <= 12'h830;
rommem[14183] <= 12'h0A7;
rommem[14184] <= 12'hA05;
rommem[14185] <= 12'h086;
rommem[14186] <= 12'h03F;
rommem[14187] <= 12'h0A7;
rommem[14188] <= 12'hA04;
rommem[14189] <= 12'h08E;
rommem[14190] <= 12'h000;
rommem[14191] <= 12'h820;
rommem[14192] <= 12'h058;
rommem[14193] <= 12'h1AF;
rommem[14194] <= 12'hA05;
rommem[14195] <= 12'h054;
rommem[14196] <= 12'h05C;
rommem[14197] <= 12'h0F7;
rommem[14198] <= 12'h000;
rommem[14199] <= 12'h811;
rommem[14200] <= 12'h035;
rommem[14201] <= 12'h0B6;
rommem[14202] <= 12'h034;
rommem[14203] <= 12'h076;
rommem[14204] <= 12'h017;
rommem[14205] <= 12'hFFF;
rommem[14206] <= 12'hA4D;
rommem[14207] <= 12'h05F;
rommem[14208] <= 12'h05F;
rommem[14209] <= 12'h01F;
rommem[14210] <= 12'h001;
rommem[14211] <= 12'h0F1;
rommem[14212] <= 12'hFFF;
rommem[14213] <= 12'h631;
rommem[14214] <= 12'h024;
rommem[14215] <= 12'h041;
rommem[14216] <= 12'h0F1;
rommem[14217] <= 12'h000;
rommem[14218] <= 12'h811;
rommem[14219] <= 12'h024;
rommem[14220] <= 12'h03C;
rommem[14221] <= 12'h1AE;
rommem[14222] <= 12'h809;
rommem[14223] <= 12'h000;
rommem[14224] <= 12'h820;
rommem[14225] <= 12'h1BC;
rommem[14226] <= 12'h000;
rommem[14227] <= 12'h912;
rommem[14228] <= 12'h026;
rommem[14229] <= 12'h02E;
rommem[14230] <= 12'h0BE;
rommem[14231] <= 12'h000;
rommem[14232] <= 12'h912;
rommem[14233] <= 12'h18E;
rommem[14234] <= 12'h000;
rommem[14235] <= 12'h830;
rommem[14236] <= 12'h0A6;
rommem[14237] <= 12'hA0D;
rommem[14238] <= 12'h0A7;
rommem[14239] <= 12'h804;
rommem[14240] <= 12'h07A;
rommem[14241] <= 12'h000;
rommem[14242] <= 12'h811;
rommem[14243] <= 12'h034;
rommem[14244] <= 12'h004;
rommem[14245] <= 12'h05C;
rommem[14246] <= 12'h0A6;
rommem[14247] <= 12'hA05;
rommem[14248] <= 12'h05A;
rommem[14249] <= 12'h0A7;
rommem[14250] <= 12'hA05;
rommem[14251] <= 12'h05C;
rommem[14252] <= 12'h0F1;
rommem[14253] <= 12'hFFF;
rommem[14254] <= 12'h631;
rommem[14255] <= 12'h025;
rommem[14256] <= 12'hFF4;
rommem[14257] <= 12'h035;
rommem[14258] <= 12'h004;
rommem[14259] <= 12'h058;
rommem[14260] <= 12'h04F;
rommem[14261] <= 12'h01F;
rommem[14262] <= 12'h002;
rommem[14263] <= 12'h054;
rommem[14264] <= 12'h0EE;
rommem[14265] <= 12'h202;
rommem[14266] <= 12'h0EF;
rommem[14267] <= 12'hA01;
rommem[14268] <= 12'h05C;
rommem[14269] <= 12'h0F1;
rommem[14270] <= 12'hFFF;
rommem[14271] <= 12'h631;
rommem[14272] <= 12'h025;
rommem[14273] <= 12'hFF6;
rommem[14274] <= 12'h035;
rommem[14275] <= 12'h0F6;
rommem[14276] <= 12'h030;
rommem[14277] <= 12'h002;
rommem[14278] <= 12'h05C;
rommem[14279] <= 12'h020;
rommem[14280] <= 12'hFBA;
rommem[14281] <= 12'h035;
rommem[14282] <= 12'h0F6;
rommem[14283] <= 12'h01A;
rommem[14284] <= 12'h010;
rommem[14285] <= 12'h0A6;
rommem[14286] <= 12'hE04;
rommem[14287] <= 12'h0B7;
rommem[14288] <= 12'h000;
rommem[14289] <= 12'h90F;
rommem[14290] <= 12'h0EC;
rommem[14291] <= 12'h601;
rommem[14292] <= 12'h0FD;
rommem[14293] <= 12'h000;
rommem[14294] <= 12'h900;
rommem[14295] <= 12'h0E6;
rommem[14296] <= 12'h603;
rommem[14297] <= 12'h0F7;
rommem[14298] <= 12'h000;
rommem[14299] <= 12'h90E;
rommem[14300] <= 12'h0EC;
rommem[14301] <= 12'h604;
rommem[14302] <= 12'h0FD;
rommem[14303] <= 12'h000;
rommem[14304] <= 12'h902;
rommem[14305] <= 12'h0EC;
rommem[14306] <= 12'h606;
rommem[14307] <= 12'h0FD;
rommem[14308] <= 12'h000;
rommem[14309] <= 12'h904;
rommem[14310] <= 12'h0EC;
rommem[14311] <= 12'h608;
rommem[14312] <= 12'h0FD;
rommem[14313] <= 12'h000;
rommem[14314] <= 12'h906;
rommem[14315] <= 12'h1FF;
rommem[14316] <= 12'h000;
rommem[14317] <= 12'h908;
rommem[14318] <= 12'h0EC;
rommem[14319] <= 12'h60B;
rommem[14320] <= 12'h0FD;
rommem[14321] <= 12'h000;
rommem[14322] <= 12'h90A;
rommem[14323] <= 12'h1FF;
rommem[14324] <= 12'h000;
rommem[14325] <= 12'h908;
rommem[14326] <= 12'h1CE;
rommem[14327] <= 12'h003;
rommem[14328] <= 12'hFFF;
rommem[14329] <= 12'h0CC;
rommem[14330] <= 12'hFFF;
rommem[14331] <= 12'h803;
rommem[14332] <= 12'h034;
rommem[14333] <= 12'h006;
rommem[14334] <= 12'h01C;
rommem[14335] <= 12'h0EF;
rommem[14336] <= 12'h07E;
rommem[14337] <= 12'hFFF;
rommem[14338] <= 12'h54A;
rommem[14339] <= 12'h1FE;
rommem[14340] <= 12'h000;
rommem[14341] <= 12'h908;
rommem[14342] <= 12'h03B;
rommem[14343] <= 12'h03B;
rommem[14344] <= 12'h017;
rommem[14345] <= 12'hFFE;
rommem[14346] <= 12'hC85;
rommem[14347] <= 12'h0B6;
rommem[14348] <= 12'hFFC;
rommem[14349] <= 12'h014;
rommem[14350] <= 12'h044;
rommem[14351] <= 12'h0BA;
rommem[14352] <= 12'hFFC;
rommem[14353] <= 12'h014;
rommem[14354] <= 12'h084;
rommem[14355] <= 12'hFE0;
rommem[14356] <= 12'h0B7;
rommem[14357] <= 12'hFFC;
rommem[14358] <= 12'h014;
rommem[14359] <= 12'h03B;
rommem[14360] <= 12'h015;
rommem[14361] <= 12'h0F6;
rommem[14362] <= 12'hFFF;
rommem[14363] <= 12'hFFF;
rommem[14364] <= 12'hFE0;
rommem[14365] <= 12'h086;
rommem[14366] <= 12'h049;
rommem[14367] <= 12'h08E;
rommem[14368] <= 12'hE00;
rommem[14369] <= 12'h028;
rommem[14370] <= 12'h0A7;
rommem[14371] <= 12'h807;
rommem[14372] <= 12'h03B;
rommem[16368] <= 12'hFFF;
rommem[16369] <= 12'h57A;
rommem[16369] <= 12'h824;
rommem[16370] <= 12'hFFF;
rommem[16371] <= 12'h521;
rommem[16371] <= 12'h7CB;
rommem[16372] <= 12'hFFF;
rommem[16373] <= 12'h57A;
rommem[16373] <= 12'h824;
rommem[16374] <= 12'hFFF;
rommem[16375] <= 12'h55D;
rommem[16375] <= 12'h807;
rommem[16376] <= 12'hFFF;
rommem[16377] <= 12'h55E;
rommem[16377] <= 12'h808;
rommem[16378] <= 12'hFFF;
rommem[16379] <= 12'h3D1;
rommem[16379] <= 12'h65B;
rommem[16380] <= 12'hFFF;
rommem[16381] <= 12'h56E;
rommem[16381] <= 12'h818;
rommem[16382] <= 12'hFFE;
rommem[16383] <= 12'h023;
/boot/demo.asm
1,3 → 1,39
; ============================================================================
; __
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
; \ __ / All rights reserved.
; \/_// robfinch<remove>@opencores.org
; ||
;
;
; BSD 3-Clause License
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
; 1. Redistributions of source code must retain the above copyright notice, this
; list of conditions and the following disclaimer.
;
; 2. Redistributions in binary form must reproduce the above copyright notice,
; this list of conditions and the following disclaimer in the documentation
; and/or other materials provided with the distribution.
;
; 3. Neither the name of the copyright holder nor the names of its
; contributors may be used to endorse or promote products derived from
; this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
; ============================================================================
;
 
OPT include "d:\cores2022\rf6809\software\boot\mon_equates.asm"
OPT include "d:\cores2022\rf6809\software\boot\io_equates.asm"
/boot/demo.ver
0,0 → 1,2884
rommem[ 0] <= 12'h016;
rommem[ 1] <= 12'h000;
rommem[ 2] <= 12'hAAA;
rommem[ 3] <= 12'h016;
rommem[ 4] <= 12'h000;
rommem[ 5] <= 12'h600;
rommem[ 6] <= 12'h04E;
rommem[ 7] <= 12'h045;
rommem[ 8] <= 12'h047;
rommem[ 9] <= 12'h020;
rommem[ 10] <= 12'h001;
rommem[ 11] <= 12'h020;
rommem[ 12] <= 12'h020;
rommem[ 13] <= 12'h020;
rommem[ 14] <= 12'h020;
rommem[ 15] <= 12'h000;
rommem[ 16] <= 12'h020;
rommem[ 17] <= 12'h020;
rommem[ 18] <= 12'h020;
rommem[ 19] <= 12'h020;
rommem[ 20] <= 12'h000;
rommem[ 21] <= 12'h043;
rommem[ 22] <= 12'h04F;
rommem[ 23] <= 12'h04D;
rommem[ 24] <= 12'h020;
rommem[ 25] <= 12'h001;
rommem[ 26] <= 12'h04C;
rommem[ 27] <= 12'h053;
rommem[ 28] <= 12'h052;
rommem[ 29] <= 12'h020;
rommem[ 30] <= 12'h001;
rommem[ 31] <= 12'h020;
rommem[ 32] <= 12'h020;
rommem[ 33] <= 12'h020;
rommem[ 34] <= 12'h020;
rommem[ 35] <= 12'h000;
rommem[ 36] <= 12'h052;
rommem[ 37] <= 12'h04F;
rommem[ 38] <= 12'h052;
rommem[ 39] <= 12'h020;
rommem[ 40] <= 12'h001;
rommem[ 41] <= 12'h041;
rommem[ 42] <= 12'h053;
rommem[ 43] <= 12'h052;
rommem[ 44] <= 12'h020;
rommem[ 45] <= 12'h001;
rommem[ 46] <= 12'h041;
rommem[ 47] <= 12'h053;
rommem[ 48] <= 12'h04C;
rommem[ 49] <= 12'h020;
rommem[ 50] <= 12'h001;
rommem[ 51] <= 12'h052;
rommem[ 52] <= 12'h04F;
rommem[ 53] <= 12'h04C;
rommem[ 54] <= 12'h020;
rommem[ 55] <= 12'h001;
rommem[ 56] <= 12'h044;
rommem[ 57] <= 12'h045;
rommem[ 58] <= 12'h043;
rommem[ 59] <= 12'h020;
rommem[ 60] <= 12'h001;
rommem[ 61] <= 12'h020;
rommem[ 62] <= 12'h020;
rommem[ 63] <= 12'h020;
rommem[ 64] <= 12'h020;
rommem[ 65] <= 12'h000;
rommem[ 66] <= 12'h049;
rommem[ 67] <= 12'h04E;
rommem[ 68] <= 12'h043;
rommem[ 69] <= 12'h020;
rommem[ 70] <= 12'h001;
rommem[ 71] <= 12'h054;
rommem[ 72] <= 12'h053;
rommem[ 73] <= 12'h054;
rommem[ 74] <= 12'h020;
rommem[ 75] <= 12'h001;
rommem[ 76] <= 12'h04A;
rommem[ 77] <= 12'h04D;
rommem[ 78] <= 12'h050;
rommem[ 79] <= 12'h020;
rommem[ 80] <= 12'h001;
rommem[ 81] <= 12'h043;
rommem[ 82] <= 12'h04C;
rommem[ 83] <= 12'h052;
rommem[ 84] <= 12'h020;
rommem[ 85] <= 12'h001;
rommem[ 86] <= 12'h020;
rommem[ 87] <= 12'h020;
rommem[ 88] <= 12'h020;
rommem[ 89] <= 12'h020;
rommem[ 90] <= 12'h000;
rommem[ 91] <= 12'h020;
rommem[ 92] <= 12'h020;
rommem[ 93] <= 12'h020;
rommem[ 94] <= 12'h020;
rommem[ 95] <= 12'h000;
rommem[ 96] <= 12'h04E;
rommem[ 97] <= 12'h04F;
rommem[ 98] <= 12'h050;
rommem[ 99] <= 12'h020;
rommem[ 100] <= 12'h000;
rommem[ 101] <= 12'h053;
rommem[ 102] <= 12'h059;
rommem[ 103] <= 12'h04E;
rommem[ 104] <= 12'h043;
rommem[ 105] <= 12'h000;
rommem[ 106] <= 12'h020;
rommem[ 107] <= 12'h020;
rommem[ 108] <= 12'h020;
rommem[ 109] <= 12'h020;
rommem[ 110] <= 12'h000;
rommem[ 111] <= 12'h046;
rommem[ 112] <= 12'h041;
rommem[ 113] <= 12'h052;
rommem[ 114] <= 12'h020;
rommem[ 115] <= 12'h000;
rommem[ 116] <= 12'h04C;
rommem[ 117] <= 12'h042;
rommem[ 118] <= 12'h052;
rommem[ 119] <= 12'h041;
rommem[ 120] <= 12'h002;
rommem[ 121] <= 12'h04C;
rommem[ 122] <= 12'h042;
rommem[ 123] <= 12'h053;
rommem[ 124] <= 12'h052;
rommem[ 125] <= 12'h002;
rommem[ 126] <= 12'h020;
rommem[ 127] <= 12'h020;
rommem[ 128] <= 12'h020;
rommem[ 129] <= 12'h020;
rommem[ 130] <= 12'h000;
rommem[ 131] <= 12'h044;
rommem[ 132] <= 12'h041;
rommem[ 133] <= 12'h041;
rommem[ 134] <= 12'h020;
rommem[ 135] <= 12'h000;
rommem[ 136] <= 12'h04F;
rommem[ 137] <= 12'h052;
rommem[ 138] <= 12'h043;
rommem[ 139] <= 12'h043;
rommem[ 140] <= 12'h003;
rommem[ 141] <= 12'h020;
rommem[ 142] <= 12'h020;
rommem[ 143] <= 12'h020;
rommem[ 144] <= 12'h020;
rommem[ 145] <= 12'h000;
rommem[ 146] <= 12'h041;
rommem[ 147] <= 12'h04E;
rommem[ 148] <= 12'h044;
rommem[ 149] <= 12'h043;
rommem[ 150] <= 12'h003;
rommem[ 151] <= 12'h053;
rommem[ 152] <= 12'h045;
rommem[ 153] <= 12'h058;
rommem[ 154] <= 12'h020;
rommem[ 155] <= 12'h000;
rommem[ 156] <= 12'h045;
rommem[ 157] <= 12'h058;
rommem[ 158] <= 12'h047;
rommem[ 159] <= 12'h020;
rommem[ 160] <= 12'h009;
rommem[ 161] <= 12'h054;
rommem[ 162] <= 12'h046;
rommem[ 163] <= 12'h052;
rommem[ 164] <= 12'h020;
rommem[ 165] <= 12'h009;
rommem[ 166] <= 12'h042;
rommem[ 167] <= 12'h052;
rommem[ 168] <= 12'h041;
rommem[ 169] <= 12'h020;
rommem[ 170] <= 12'h004;
rommem[ 171] <= 12'h042;
rommem[ 172] <= 12'h052;
rommem[ 173] <= 12'h04E;
rommem[ 174] <= 12'h020;
rommem[ 175] <= 12'h004;
rommem[ 176] <= 12'h042;
rommem[ 177] <= 12'h048;
rommem[ 178] <= 12'h049;
rommem[ 179] <= 12'h020;
rommem[ 180] <= 12'h004;
rommem[ 181] <= 12'h042;
rommem[ 182] <= 12'h04C;
rommem[ 183] <= 12'h053;
rommem[ 184] <= 12'h020;
rommem[ 185] <= 12'h004;
rommem[ 186] <= 12'h042;
rommem[ 187] <= 12'h048;
rommem[ 188] <= 12'h053;
rommem[ 189] <= 12'h020;
rommem[ 190] <= 12'h004;
rommem[ 191] <= 12'h042;
rommem[ 192] <= 12'h04C;
rommem[ 193] <= 12'h04F;
rommem[ 194] <= 12'h020;
rommem[ 195] <= 12'h004;
rommem[ 196] <= 12'h042;
rommem[ 197] <= 12'h04E;
rommem[ 198] <= 12'h045;
rommem[ 199] <= 12'h020;
rommem[ 200] <= 12'h004;
rommem[ 201] <= 12'h042;
rommem[ 202] <= 12'h045;
rommem[ 203] <= 12'h051;
rommem[ 204] <= 12'h020;
rommem[ 205] <= 12'h004;
rommem[ 206] <= 12'h042;
rommem[ 207] <= 12'h056;
rommem[ 208] <= 12'h043;
rommem[ 209] <= 12'h020;
rommem[ 210] <= 12'h004;
rommem[ 211] <= 12'h042;
rommem[ 212] <= 12'h056;
rommem[ 213] <= 12'h053;
rommem[ 214] <= 12'h020;
rommem[ 215] <= 12'h004;
rommem[ 216] <= 12'h042;
rommem[ 217] <= 12'h050;
rommem[ 218] <= 12'h04C;
rommem[ 219] <= 12'h020;
rommem[ 220] <= 12'h004;
rommem[ 221] <= 12'h042;
rommem[ 222] <= 12'h04D;
rommem[ 223] <= 12'h049;
rommem[ 224] <= 12'h020;
rommem[ 225] <= 12'h004;
rommem[ 226] <= 12'h042;
rommem[ 227] <= 12'h047;
rommem[ 228] <= 12'h045;
rommem[ 229] <= 12'h020;
rommem[ 230] <= 12'h004;
rommem[ 231] <= 12'h042;
rommem[ 232] <= 12'h04C;
rommem[ 233] <= 12'h054;
rommem[ 234] <= 12'h020;
rommem[ 235] <= 12'h004;
rommem[ 236] <= 12'h042;
rommem[ 237] <= 12'h047;
rommem[ 238] <= 12'h054;
rommem[ 239] <= 12'h020;
rommem[ 240] <= 12'h004;
rommem[ 241] <= 12'h042;
rommem[ 242] <= 12'h04C;
rommem[ 243] <= 12'h045;
rommem[ 244] <= 12'h020;
rommem[ 245] <= 12'h004;
rommem[ 246] <= 12'h04C;
rommem[ 247] <= 12'h045;
rommem[ 248] <= 12'h041;
rommem[ 249] <= 12'h058;
rommem[ 250] <= 12'h005;
rommem[ 251] <= 12'h04C;
rommem[ 252] <= 12'h045;
rommem[ 253] <= 12'h041;
rommem[ 254] <= 12'h059;
rommem[ 255] <= 12'h005;
rommem[ 256] <= 12'h04C;
rommem[ 257] <= 12'h045;
rommem[ 258] <= 12'h041;
rommem[ 259] <= 12'h053;
rommem[ 260] <= 12'h005;
rommem[ 261] <= 12'h04C;
rommem[ 262] <= 12'h045;
rommem[ 263] <= 12'h041;
rommem[ 264] <= 12'h055;
rommem[ 265] <= 12'h005;
rommem[ 266] <= 12'h050;
rommem[ 267] <= 12'h053;
rommem[ 268] <= 12'h048;
rommem[ 269] <= 12'h053;
rommem[ 270] <= 12'h003;
rommem[ 271] <= 12'h050;
rommem[ 272] <= 12'h055;
rommem[ 273] <= 12'h04C;
rommem[ 274] <= 12'h053;
rommem[ 275] <= 12'h003;
rommem[ 276] <= 12'h050;
rommem[ 277] <= 12'h053;
rommem[ 278] <= 12'h048;
rommem[ 279] <= 12'h055;
rommem[ 280] <= 12'h003;
rommem[ 281] <= 12'h050;
rommem[ 282] <= 12'h055;
rommem[ 283] <= 12'h04C;
rommem[ 284] <= 12'h055;
rommem[ 285] <= 12'h003;
rommem[ 286] <= 12'h052;
rommem[ 287] <= 12'h054;
rommem[ 288] <= 12'h046;
rommem[ 289] <= 12'h020;
rommem[ 290] <= 12'h000;
rommem[ 291] <= 12'h052;
rommem[ 292] <= 12'h054;
rommem[ 293] <= 12'h053;
rommem[ 294] <= 12'h020;
rommem[ 295] <= 12'h000;
rommem[ 296] <= 12'h041;
rommem[ 297] <= 12'h042;
rommem[ 298] <= 12'h058;
rommem[ 299] <= 12'h020;
rommem[ 300] <= 12'h000;
rommem[ 301] <= 12'h052;
rommem[ 302] <= 12'h054;
rommem[ 303] <= 12'h049;
rommem[ 304] <= 12'h020;
rommem[ 305] <= 12'h000;
rommem[ 306] <= 12'h043;
rommem[ 307] <= 12'h057;
rommem[ 308] <= 12'h041;
rommem[ 309] <= 12'h049;
rommem[ 310] <= 12'h003;
rommem[ 311] <= 12'h04D;
rommem[ 312] <= 12'h055;
rommem[ 313] <= 12'h04C;
rommem[ 314] <= 12'h020;
rommem[ 315] <= 12'h000;
rommem[ 316] <= 12'h020;
rommem[ 317] <= 12'h020;
rommem[ 318] <= 12'h020;
rommem[ 319] <= 12'h020;
rommem[ 320] <= 12'h000;
rommem[ 321] <= 12'h053;
rommem[ 322] <= 12'h057;
rommem[ 323] <= 12'h049;
rommem[ 324] <= 12'h020;
rommem[ 325] <= 12'h000;
rommem[ 326] <= 12'h04E;
rommem[ 327] <= 12'h045;
rommem[ 328] <= 12'h047;
rommem[ 329] <= 12'h041;
rommem[ 330] <= 12'h000;
rommem[ 331] <= 12'h020;
rommem[ 332] <= 12'h020;
rommem[ 333] <= 12'h020;
rommem[ 334] <= 12'h020;
rommem[ 335] <= 12'h000;
rommem[ 336] <= 12'h020;
rommem[ 337] <= 12'h020;
rommem[ 338] <= 12'h020;
rommem[ 339] <= 12'h020;
rommem[ 340] <= 12'h000;
rommem[ 341] <= 12'h043;
rommem[ 342] <= 12'h04F;
rommem[ 343] <= 12'h04D;
rommem[ 344] <= 12'h041;
rommem[ 345] <= 12'h000;
rommem[ 346] <= 12'h04C;
rommem[ 347] <= 12'h053;
rommem[ 348] <= 12'h052;
rommem[ 349] <= 12'h041;
rommem[ 350] <= 12'h000;
rommem[ 351] <= 12'h020;
rommem[ 352] <= 12'h020;
rommem[ 353] <= 12'h020;
rommem[ 354] <= 12'h020;
rommem[ 355] <= 12'h000;
rommem[ 356] <= 12'h052;
rommem[ 357] <= 12'h04F;
rommem[ 358] <= 12'h052;
rommem[ 359] <= 12'h041;
rommem[ 360] <= 12'h000;
rommem[ 361] <= 12'h041;
rommem[ 362] <= 12'h053;
rommem[ 363] <= 12'h052;
rommem[ 364] <= 12'h041;
rommem[ 365] <= 12'h000;
rommem[ 366] <= 12'h041;
rommem[ 367] <= 12'h053;
rommem[ 368] <= 12'h04C;
rommem[ 369] <= 12'h041;
rommem[ 370] <= 12'h000;
rommem[ 371] <= 12'h052;
rommem[ 372] <= 12'h04F;
rommem[ 373] <= 12'h04C;
rommem[ 374] <= 12'h041;
rommem[ 375] <= 12'h000;
rommem[ 376] <= 12'h044;
rommem[ 377] <= 12'h045;
rommem[ 378] <= 12'h043;
rommem[ 379] <= 12'h041;
rommem[ 380] <= 12'h000;
rommem[ 381] <= 12'h020;
rommem[ 382] <= 12'h020;
rommem[ 383] <= 12'h020;
rommem[ 384] <= 12'h020;
rommem[ 385] <= 12'h000;
rommem[ 386] <= 12'h049;
rommem[ 387] <= 12'h04E;
rommem[ 388] <= 12'h043;
rommem[ 389] <= 12'h041;
rommem[ 390] <= 12'h000;
rommem[ 391] <= 12'h054;
rommem[ 392] <= 12'h053;
rommem[ 393] <= 12'h054;
rommem[ 394] <= 12'h041;
rommem[ 395] <= 12'h000;
rommem[ 396] <= 12'h020;
rommem[ 397] <= 12'h020;
rommem[ 398] <= 12'h020;
rommem[ 399] <= 12'h020;
rommem[ 400] <= 12'h000;
rommem[ 401] <= 12'h043;
rommem[ 402] <= 12'h04C;
rommem[ 403] <= 12'h052;
rommem[ 404] <= 12'h041;
rommem[ 405] <= 12'h000;
rommem[ 406] <= 12'h04E;
rommem[ 407] <= 12'h045;
rommem[ 408] <= 12'h047;
rommem[ 409] <= 12'h042;
rommem[ 410] <= 12'h000;
rommem[ 411] <= 12'h020;
rommem[ 412] <= 12'h020;
rommem[ 413] <= 12'h020;
rommem[ 414] <= 12'h020;
rommem[ 415] <= 12'h000;
rommem[ 416] <= 12'h020;
rommem[ 417] <= 12'h020;
rommem[ 418] <= 12'h020;
rommem[ 419] <= 12'h020;
rommem[ 420] <= 12'h000;
rommem[ 421] <= 12'h043;
rommem[ 422] <= 12'h04F;
rommem[ 423] <= 12'h04D;
rommem[ 424] <= 12'h042;
rommem[ 425] <= 12'h000;
rommem[ 426] <= 12'h04C;
rommem[ 427] <= 12'h053;
rommem[ 428] <= 12'h052;
rommem[ 429] <= 12'h042;
rommem[ 430] <= 12'h000;
rommem[ 431] <= 12'h020;
rommem[ 432] <= 12'h020;
rommem[ 433] <= 12'h020;
rommem[ 434] <= 12'h020;
rommem[ 435] <= 12'h000;
rommem[ 436] <= 12'h052;
rommem[ 437] <= 12'h04F;
rommem[ 438] <= 12'h052;
rommem[ 439] <= 12'h042;
rommem[ 440] <= 12'h000;
rommem[ 441] <= 12'h041;
rommem[ 442] <= 12'h053;
rommem[ 443] <= 12'h052;
rommem[ 444] <= 12'h042;
rommem[ 445] <= 12'h000;
rommem[ 446] <= 12'h041;
rommem[ 447] <= 12'h053;
rommem[ 448] <= 12'h04C;
rommem[ 449] <= 12'h042;
rommem[ 450] <= 12'h000;
rommem[ 451] <= 12'h052;
rommem[ 452] <= 12'h04F;
rommem[ 453] <= 12'h04C;
rommem[ 454] <= 12'h042;
rommem[ 455] <= 12'h000;
rommem[ 456] <= 12'h044;
rommem[ 457] <= 12'h045;
rommem[ 458] <= 12'h043;
rommem[ 459] <= 12'h042;
rommem[ 460] <= 12'h000;
rommem[ 461] <= 12'h020;
rommem[ 462] <= 12'h020;
rommem[ 463] <= 12'h020;
rommem[ 464] <= 12'h020;
rommem[ 465] <= 12'h000;
rommem[ 466] <= 12'h049;
rommem[ 467] <= 12'h04E;
rommem[ 468] <= 12'h043;
rommem[ 469] <= 12'h042;
rommem[ 470] <= 12'h000;
rommem[ 471] <= 12'h054;
rommem[ 472] <= 12'h053;
rommem[ 473] <= 12'h054;
rommem[ 474] <= 12'h042;
rommem[ 475] <= 12'h000;
rommem[ 476] <= 12'h020;
rommem[ 477] <= 12'h020;
rommem[ 478] <= 12'h020;
rommem[ 479] <= 12'h020;
rommem[ 480] <= 12'h000;
rommem[ 481] <= 12'h043;
rommem[ 482] <= 12'h04C;
rommem[ 483] <= 12'h052;
rommem[ 484] <= 12'h042;
rommem[ 485] <= 12'h000;
rommem[ 486] <= 12'h04E;
rommem[ 487] <= 12'h045;
rommem[ 488] <= 12'h047;
rommem[ 489] <= 12'h020;
rommem[ 490] <= 12'h005;
rommem[ 491] <= 12'h020;
rommem[ 492] <= 12'h020;
rommem[ 493] <= 12'h020;
rommem[ 494] <= 12'h020;
rommem[ 495] <= 12'h000;
rommem[ 496] <= 12'h020;
rommem[ 497] <= 12'h020;
rommem[ 498] <= 12'h020;
rommem[ 499] <= 12'h020;
rommem[ 500] <= 12'h000;
rommem[ 501] <= 12'h043;
rommem[ 502] <= 12'h04F;
rommem[ 503] <= 12'h04D;
rommem[ 504] <= 12'h020;
rommem[ 505] <= 12'h005;
rommem[ 506] <= 12'h04C;
rommem[ 507] <= 12'h053;
rommem[ 508] <= 12'h052;
rommem[ 509] <= 12'h020;
rommem[ 510] <= 12'h005;
rommem[ 511] <= 12'h020;
rommem[ 512] <= 12'h020;
rommem[ 513] <= 12'h020;
rommem[ 514] <= 12'h020;
rommem[ 515] <= 12'h000;
rommem[ 516] <= 12'h052;
rommem[ 517] <= 12'h04F;
rommem[ 518] <= 12'h052;
rommem[ 519] <= 12'h020;
rommem[ 520] <= 12'h005;
rommem[ 521] <= 12'h041;
rommem[ 522] <= 12'h053;
rommem[ 523] <= 12'h052;
rommem[ 524] <= 12'h020;
rommem[ 525] <= 12'h005;
rommem[ 526] <= 12'h041;
rommem[ 527] <= 12'h053;
rommem[ 528] <= 12'h04C;
rommem[ 529] <= 12'h020;
rommem[ 530] <= 12'h005;
rommem[ 531] <= 12'h052;
rommem[ 532] <= 12'h04F;
rommem[ 533] <= 12'h04C;
rommem[ 534] <= 12'h020;
rommem[ 535] <= 12'h005;
rommem[ 536] <= 12'h044;
rommem[ 537] <= 12'h045;
rommem[ 538] <= 12'h043;
rommem[ 539] <= 12'h020;
rommem[ 540] <= 12'h005;
rommem[ 541] <= 12'h020;
rommem[ 542] <= 12'h020;
rommem[ 543] <= 12'h020;
rommem[ 544] <= 12'h020;
rommem[ 545] <= 12'h000;
rommem[ 546] <= 12'h049;
rommem[ 547] <= 12'h04E;
rommem[ 548] <= 12'h043;
rommem[ 549] <= 12'h020;
rommem[ 550] <= 12'h005;
rommem[ 551] <= 12'h054;
rommem[ 552] <= 12'h053;
rommem[ 553] <= 12'h054;
rommem[ 554] <= 12'h020;
rommem[ 555] <= 12'h005;
rommem[ 556] <= 12'h04A;
rommem[ 557] <= 12'h04D;
rommem[ 558] <= 12'h050;
rommem[ 559] <= 12'h020;
rommem[ 560] <= 12'h005;
rommem[ 561] <= 12'h043;
rommem[ 562] <= 12'h04C;
rommem[ 563] <= 12'h052;
rommem[ 564] <= 12'h020;
rommem[ 565] <= 12'h005;
rommem[ 566] <= 12'h04E;
rommem[ 567] <= 12'h045;
rommem[ 568] <= 12'h047;
rommem[ 569] <= 12'h020;
rommem[ 570] <= 12'h006;
rommem[ 571] <= 12'h020;
rommem[ 572] <= 12'h020;
rommem[ 573] <= 12'h020;
rommem[ 574] <= 12'h020;
rommem[ 575] <= 12'h000;
rommem[ 576] <= 12'h020;
rommem[ 577] <= 12'h020;
rommem[ 578] <= 12'h020;
rommem[ 579] <= 12'h020;
rommem[ 580] <= 12'h000;
rommem[ 581] <= 12'h043;
rommem[ 582] <= 12'h04F;
rommem[ 583] <= 12'h04D;
rommem[ 584] <= 12'h020;
rommem[ 585] <= 12'h006;
rommem[ 586] <= 12'h04C;
rommem[ 587] <= 12'h053;
rommem[ 588] <= 12'h052;
rommem[ 589] <= 12'h020;
rommem[ 590] <= 12'h006;
rommem[ 591] <= 12'h020;
rommem[ 592] <= 12'h020;
rommem[ 593] <= 12'h020;
rommem[ 594] <= 12'h020;
rommem[ 595] <= 12'h000;
rommem[ 596] <= 12'h052;
rommem[ 597] <= 12'h04F;
rommem[ 598] <= 12'h052;
rommem[ 599] <= 12'h020;
rommem[ 600] <= 12'h006;
rommem[ 601] <= 12'h041;
rommem[ 602] <= 12'h053;
rommem[ 603] <= 12'h052;
rommem[ 604] <= 12'h020;
rommem[ 605] <= 12'h006;
rommem[ 606] <= 12'h041;
rommem[ 607] <= 12'h053;
rommem[ 608] <= 12'h04C;
rommem[ 609] <= 12'h020;
rommem[ 610] <= 12'h006;
rommem[ 611] <= 12'h052;
rommem[ 612] <= 12'h04F;
rommem[ 613] <= 12'h04C;
rommem[ 614] <= 12'h020;
rommem[ 615] <= 12'h006;
rommem[ 616] <= 12'h044;
rommem[ 617] <= 12'h045;
rommem[ 618] <= 12'h043;
rommem[ 619] <= 12'h020;
rommem[ 620] <= 12'h006;
rommem[ 621] <= 12'h020;
rommem[ 622] <= 12'h020;
rommem[ 623] <= 12'h020;
rommem[ 624] <= 12'h020;
rommem[ 625] <= 12'h000;
rommem[ 626] <= 12'h049;
rommem[ 627] <= 12'h04E;
rommem[ 628] <= 12'h043;
rommem[ 629] <= 12'h020;
rommem[ 630] <= 12'h006;
rommem[ 631] <= 12'h054;
rommem[ 632] <= 12'h053;
rommem[ 633] <= 12'h054;
rommem[ 634] <= 12'h020;
rommem[ 635] <= 12'h006;
rommem[ 636] <= 12'h04A;
rommem[ 637] <= 12'h04D;
rommem[ 638] <= 12'h050;
rommem[ 639] <= 12'h020;
rommem[ 640] <= 12'h006;
rommem[ 641] <= 12'h043;
rommem[ 642] <= 12'h04C;
rommem[ 643] <= 12'h052;
rommem[ 644] <= 12'h020;
rommem[ 645] <= 12'h006;
rommem[ 646] <= 12'h053;
rommem[ 647] <= 12'h055;
rommem[ 648] <= 12'h042;
rommem[ 649] <= 12'h041;
rommem[ 650] <= 12'h003;
rommem[ 651] <= 12'h043;
rommem[ 652] <= 12'h04D;
rommem[ 653] <= 12'h050;
rommem[ 654] <= 12'h041;
rommem[ 655] <= 12'h003;
rommem[ 656] <= 12'h053;
rommem[ 657] <= 12'h042;
rommem[ 658] <= 12'h043;
rommem[ 659] <= 12'h041;
rommem[ 660] <= 12'h003;
rommem[ 661] <= 12'h053;
rommem[ 662] <= 12'h055;
rommem[ 663] <= 12'h042;
rommem[ 664] <= 12'h044;
rommem[ 665] <= 12'h007;
rommem[ 666] <= 12'h041;
rommem[ 667] <= 12'h04E;
rommem[ 668] <= 12'h044;
rommem[ 669] <= 12'h041;
rommem[ 670] <= 12'h003;
rommem[ 671] <= 12'h042;
rommem[ 672] <= 12'h049;
rommem[ 673] <= 12'h054;
rommem[ 674] <= 12'h041;
rommem[ 675] <= 12'h003;
rommem[ 676] <= 12'h04C;
rommem[ 677] <= 12'h044;
rommem[ 678] <= 12'h041;
rommem[ 679] <= 12'h020;
rommem[ 680] <= 12'h003;
rommem[ 681] <= 12'h020;
rommem[ 682] <= 12'h020;
rommem[ 683] <= 12'h020;
rommem[ 684] <= 12'h020;
rommem[ 685] <= 12'h000;
rommem[ 686] <= 12'h045;
rommem[ 687] <= 12'h04F;
rommem[ 688] <= 12'h052;
rommem[ 689] <= 12'h041;
rommem[ 690] <= 12'h003;
rommem[ 691] <= 12'h041;
rommem[ 692] <= 12'h044;
rommem[ 693] <= 12'h043;
rommem[ 694] <= 12'h041;
rommem[ 695] <= 12'h003;
rommem[ 696] <= 12'h04F;
rommem[ 697] <= 12'h052;
rommem[ 698] <= 12'h041;
rommem[ 699] <= 12'h020;
rommem[ 700] <= 12'h003;
rommem[ 701] <= 12'h041;
rommem[ 702] <= 12'h044;
rommem[ 703] <= 12'h044;
rommem[ 704] <= 12'h041;
rommem[ 705] <= 12'h003;
rommem[ 706] <= 12'h043;
rommem[ 707] <= 12'h04D;
rommem[ 708] <= 12'h050;
rommem[ 709] <= 12'h058;
rommem[ 710] <= 12'h007;
rommem[ 711] <= 12'h042;
rommem[ 712] <= 12'h053;
rommem[ 713] <= 12'h052;
rommem[ 714] <= 12'h020;
rommem[ 715] <= 12'h004;
rommem[ 716] <= 12'h04C;
rommem[ 717] <= 12'h044;
rommem[ 718] <= 12'h058;
rommem[ 719] <= 12'h020;
rommem[ 720] <= 12'h007;
rommem[ 721] <= 12'h04A;
rommem[ 722] <= 12'h04D;
rommem[ 723] <= 12'h046;
rommem[ 724] <= 12'h020;
rommem[ 725] <= 12'h008;
rommem[ 726] <= 12'h053;
rommem[ 727] <= 12'h055;
rommem[ 728] <= 12'h042;
rommem[ 729] <= 12'h041;
rommem[ 730] <= 12'h001;
rommem[ 731] <= 12'h043;
rommem[ 732] <= 12'h04D;
rommem[ 733] <= 12'h050;
rommem[ 734] <= 12'h041;
rommem[ 735] <= 12'h001;
rommem[ 736] <= 12'h053;
rommem[ 737] <= 12'h042;
rommem[ 738] <= 12'h043;
rommem[ 739] <= 12'h041;
rommem[ 740] <= 12'h001;
rommem[ 741] <= 12'h053;
rommem[ 742] <= 12'h055;
rommem[ 743] <= 12'h042;
rommem[ 744] <= 12'h044;
rommem[ 745] <= 12'h001;
rommem[ 746] <= 12'h041;
rommem[ 747] <= 12'h04E;
rommem[ 748] <= 12'h044;
rommem[ 749] <= 12'h041;
rommem[ 750] <= 12'h001;
rommem[ 751] <= 12'h042;
rommem[ 752] <= 12'h049;
rommem[ 753] <= 12'h054;
rommem[ 754] <= 12'h041;
rommem[ 755] <= 12'h001;
rommem[ 756] <= 12'h04C;
rommem[ 757] <= 12'h044;
rommem[ 758] <= 12'h041;
rommem[ 759] <= 12'h020;
rommem[ 760] <= 12'h001;
rommem[ 761] <= 12'h053;
rommem[ 762] <= 12'h054;
rommem[ 763] <= 12'h041;
rommem[ 764] <= 12'h020;
rommem[ 765] <= 12'h001;
rommem[ 766] <= 12'h045;
rommem[ 767] <= 12'h04F;
rommem[ 768] <= 12'h052;
rommem[ 769] <= 12'h041;
rommem[ 770] <= 12'h001;
rommem[ 771] <= 12'h041;
rommem[ 772] <= 12'h044;
rommem[ 773] <= 12'h043;
rommem[ 774] <= 12'h041;
rommem[ 775] <= 12'h001;
rommem[ 776] <= 12'h04F;
rommem[ 777] <= 12'h052;
rommem[ 778] <= 12'h041;
rommem[ 779] <= 12'h020;
rommem[ 780] <= 12'h001;
rommem[ 781] <= 12'h041;
rommem[ 782] <= 12'h044;
rommem[ 783] <= 12'h044;
rommem[ 784] <= 12'h041;
rommem[ 785] <= 12'h001;
rommem[ 786] <= 12'h043;
rommem[ 787] <= 12'h04D;
rommem[ 788] <= 12'h050;
rommem[ 789] <= 12'h058;
rommem[ 790] <= 12'h001;
rommem[ 791] <= 12'h04A;
rommem[ 792] <= 12'h053;
rommem[ 793] <= 12'h052;
rommem[ 794] <= 12'h020;
rommem[ 795] <= 12'h001;
rommem[ 796] <= 12'h04C;
rommem[ 797] <= 12'h044;
rommem[ 798] <= 12'h058;
rommem[ 799] <= 12'h020;
rommem[ 800] <= 12'h001;
rommem[ 801] <= 12'h053;
rommem[ 802] <= 12'h054;
rommem[ 803] <= 12'h058;
rommem[ 804] <= 12'h020;
rommem[ 805] <= 12'h001;
rommem[ 806] <= 12'h053;
rommem[ 807] <= 12'h055;
rommem[ 808] <= 12'h042;
rommem[ 809] <= 12'h041;
rommem[ 810] <= 12'h005;
rommem[ 811] <= 12'h043;
rommem[ 812] <= 12'h04D;
rommem[ 813] <= 12'h050;
rommem[ 814] <= 12'h041;
rommem[ 815] <= 12'h005;
rommem[ 816] <= 12'h053;
rommem[ 817] <= 12'h042;
rommem[ 818] <= 12'h043;
rommem[ 819] <= 12'h041;
rommem[ 820] <= 12'h005;
rommem[ 821] <= 12'h053;
rommem[ 822] <= 12'h055;
rommem[ 823] <= 12'h042;
rommem[ 824] <= 12'h044;
rommem[ 825] <= 12'h005;
rommem[ 826] <= 12'h041;
rommem[ 827] <= 12'h04E;
rommem[ 828] <= 12'h044;
rommem[ 829] <= 12'h041;
rommem[ 830] <= 12'h005;
rommem[ 831] <= 12'h042;
rommem[ 832] <= 12'h049;
rommem[ 833] <= 12'h054;
rommem[ 834] <= 12'h041;
rommem[ 835] <= 12'h005;
rommem[ 836] <= 12'h04C;
rommem[ 837] <= 12'h044;
rommem[ 838] <= 12'h041;
rommem[ 839] <= 12'h020;
rommem[ 840] <= 12'h005;
rommem[ 841] <= 12'h053;
rommem[ 842] <= 12'h054;
rommem[ 843] <= 12'h041;
rommem[ 844] <= 12'h020;
rommem[ 845] <= 12'h005;
rommem[ 846] <= 12'h045;
rommem[ 847] <= 12'h04F;
rommem[ 848] <= 12'h052;
rommem[ 849] <= 12'h041;
rommem[ 850] <= 12'h005;
rommem[ 851] <= 12'h041;
rommem[ 852] <= 12'h044;
rommem[ 853] <= 12'h043;
rommem[ 854] <= 12'h041;
rommem[ 855] <= 12'h005;
rommem[ 856] <= 12'h04F;
rommem[ 857] <= 12'h052;
rommem[ 858] <= 12'h041;
rommem[ 859] <= 12'h020;
rommem[ 860] <= 12'h005;
rommem[ 861] <= 12'h041;
rommem[ 862] <= 12'h044;
rommem[ 863] <= 12'h044;
rommem[ 864] <= 12'h041;
rommem[ 865] <= 12'h005;
rommem[ 866] <= 12'h043;
rommem[ 867] <= 12'h04D;
rommem[ 868] <= 12'h050;
rommem[ 869] <= 12'h058;
rommem[ 870] <= 12'h005;
rommem[ 871] <= 12'h04A;
rommem[ 872] <= 12'h053;
rommem[ 873] <= 12'h052;
rommem[ 874] <= 12'h020;
rommem[ 875] <= 12'h005;
rommem[ 876] <= 12'h04C;
rommem[ 877] <= 12'h044;
rommem[ 878] <= 12'h058;
rommem[ 879] <= 12'h020;
rommem[ 880] <= 12'h005;
rommem[ 881] <= 12'h053;
rommem[ 882] <= 12'h054;
rommem[ 883] <= 12'h058;
rommem[ 884] <= 12'h020;
rommem[ 885] <= 12'h005;
rommem[ 886] <= 12'h053;
rommem[ 887] <= 12'h055;
rommem[ 888] <= 12'h042;
rommem[ 889] <= 12'h041;
rommem[ 890] <= 12'h006;
rommem[ 891] <= 12'h043;
rommem[ 892] <= 12'h04D;
rommem[ 893] <= 12'h050;
rommem[ 894] <= 12'h041;
rommem[ 895] <= 12'h006;
rommem[ 896] <= 12'h053;
rommem[ 897] <= 12'h042;
rommem[ 898] <= 12'h043;
rommem[ 899] <= 12'h041;
rommem[ 900] <= 12'h006;
rommem[ 901] <= 12'h053;
rommem[ 902] <= 12'h055;
rommem[ 903] <= 12'h042;
rommem[ 904] <= 12'h044;
rommem[ 905] <= 12'h006;
rommem[ 906] <= 12'h041;
rommem[ 907] <= 12'h04E;
rommem[ 908] <= 12'h044;
rommem[ 909] <= 12'h041;
rommem[ 910] <= 12'h006;
rommem[ 911] <= 12'h042;
rommem[ 912] <= 12'h049;
rommem[ 913] <= 12'h054;
rommem[ 914] <= 12'h041;
rommem[ 915] <= 12'h006;
rommem[ 916] <= 12'h04C;
rommem[ 917] <= 12'h044;
rommem[ 918] <= 12'h041;
rommem[ 919] <= 12'h020;
rommem[ 920] <= 12'h006;
rommem[ 921] <= 12'h053;
rommem[ 922] <= 12'h054;
rommem[ 923] <= 12'h041;
rommem[ 924] <= 12'h020;
rommem[ 925] <= 12'h006;
rommem[ 926] <= 12'h045;
rommem[ 927] <= 12'h04F;
rommem[ 928] <= 12'h052;
rommem[ 929] <= 12'h041;
rommem[ 930] <= 12'h006;
rommem[ 931] <= 12'h041;
rommem[ 932] <= 12'h044;
rommem[ 933] <= 12'h043;
rommem[ 934] <= 12'h041;
rommem[ 935] <= 12'h006;
rommem[ 936] <= 12'h04F;
rommem[ 937] <= 12'h052;
rommem[ 938] <= 12'h041;
rommem[ 939] <= 12'h020;
rommem[ 940] <= 12'h006;
rommem[ 941] <= 12'h041;
rommem[ 942] <= 12'h044;
rommem[ 943] <= 12'h044;
rommem[ 944] <= 12'h041;
rommem[ 945] <= 12'h006;
rommem[ 946] <= 12'h043;
rommem[ 947] <= 12'h04D;
rommem[ 948] <= 12'h050;
rommem[ 949] <= 12'h058;
rommem[ 950] <= 12'h006;
rommem[ 951] <= 12'h04A;
rommem[ 952] <= 12'h053;
rommem[ 953] <= 12'h052;
rommem[ 954] <= 12'h020;
rommem[ 955] <= 12'h006;
rommem[ 956] <= 12'h04C;
rommem[ 957] <= 12'h044;
rommem[ 958] <= 12'h058;
rommem[ 959] <= 12'h020;
rommem[ 960] <= 12'h006;
rommem[ 961] <= 12'h053;
rommem[ 962] <= 12'h054;
rommem[ 963] <= 12'h058;
rommem[ 964] <= 12'h020;
rommem[ 965] <= 12'h006;
rommem[ 966] <= 12'h053;
rommem[ 967] <= 12'h055;
rommem[ 968] <= 12'h042;
rommem[ 969] <= 12'h042;
rommem[ 970] <= 12'h003;
rommem[ 971] <= 12'h043;
rommem[ 972] <= 12'h04D;
rommem[ 973] <= 12'h050;
rommem[ 974] <= 12'h042;
rommem[ 975] <= 12'h003;
rommem[ 976] <= 12'h053;
rommem[ 977] <= 12'h042;
rommem[ 978] <= 12'h043;
rommem[ 979] <= 12'h062;
rommem[ 980] <= 12'h003;
rommem[ 981] <= 12'h041;
rommem[ 982] <= 12'h044;
rommem[ 983] <= 12'h044;
rommem[ 984] <= 12'h044;
rommem[ 985] <= 12'h007;
rommem[ 986] <= 12'h041;
rommem[ 987] <= 12'h04E;
rommem[ 988] <= 12'h044;
rommem[ 989] <= 12'h042;
rommem[ 990] <= 12'h003;
rommem[ 991] <= 12'h042;
rommem[ 992] <= 12'h049;
rommem[ 993] <= 12'h054;
rommem[ 994] <= 12'h042;
rommem[ 995] <= 12'h003;
rommem[ 996] <= 12'h04C;
rommem[ 997] <= 12'h044;
rommem[ 998] <= 12'h042;
rommem[ 999] <= 12'h020;
rommem[ 1000] <= 12'h003;
rommem[ 1001] <= 12'h020;
rommem[ 1002] <= 12'h020;
rommem[ 1003] <= 12'h020;
rommem[ 1004] <= 12'h020;
rommem[ 1005] <= 12'h000;
rommem[ 1006] <= 12'h045;
rommem[ 1007] <= 12'h04F;
rommem[ 1008] <= 12'h052;
rommem[ 1009] <= 12'h042;
rommem[ 1010] <= 12'h003;
rommem[ 1011] <= 12'h041;
rommem[ 1012] <= 12'h044;
rommem[ 1013] <= 12'h043;
rommem[ 1014] <= 12'h042;
rommem[ 1015] <= 12'h003;
rommem[ 1016] <= 12'h04F;
rommem[ 1017] <= 12'h052;
rommem[ 1018] <= 12'h042;
rommem[ 1019] <= 12'h020;
rommem[ 1020] <= 12'h003;
rommem[ 1021] <= 12'h041;
rommem[ 1022] <= 12'h044;
rommem[ 1023] <= 12'h044;
rommem[ 1024] <= 12'h042;
rommem[ 1025] <= 12'h003;
rommem[ 1026] <= 12'h04C;
rommem[ 1027] <= 12'h044;
rommem[ 1028] <= 12'h044;
rommem[ 1029] <= 12'h020;
rommem[ 1030] <= 12'h007;
rommem[ 1031] <= 12'h020;
rommem[ 1032] <= 12'h020;
rommem[ 1033] <= 12'h020;
rommem[ 1034] <= 12'h020;
rommem[ 1035] <= 12'h004;
rommem[ 1036] <= 12'h04C;
rommem[ 1037] <= 12'h044;
rommem[ 1038] <= 12'h055;
rommem[ 1039] <= 12'h020;
rommem[ 1040] <= 12'h007;
rommem[ 1041] <= 12'h04A;
rommem[ 1042] <= 12'h053;
rommem[ 1043] <= 12'h046;
rommem[ 1044] <= 12'h020;
rommem[ 1045] <= 12'h008;
rommem[ 1046] <= 12'h053;
rommem[ 1047] <= 12'h055;
rommem[ 1048] <= 12'h042;
rommem[ 1049] <= 12'h042;
rommem[ 1050] <= 12'h001;
rommem[ 1051] <= 12'h043;
rommem[ 1052] <= 12'h04D;
rommem[ 1053] <= 12'h050;
rommem[ 1054] <= 12'h042;
rommem[ 1055] <= 12'h001;
rommem[ 1056] <= 12'h053;
rommem[ 1057] <= 12'h042;
rommem[ 1058] <= 12'h043;
rommem[ 1059] <= 12'h042;
rommem[ 1060] <= 12'h001;
rommem[ 1061] <= 12'h041;
rommem[ 1062] <= 12'h044;
rommem[ 1063] <= 12'h044;
rommem[ 1064] <= 12'h044;
rommem[ 1065] <= 12'h001;
rommem[ 1066] <= 12'h041;
rommem[ 1067] <= 12'h04E;
rommem[ 1068] <= 12'h044;
rommem[ 1069] <= 12'h042;
rommem[ 1070] <= 12'h001;
rommem[ 1071] <= 12'h042;
rommem[ 1072] <= 12'h049;
rommem[ 1073] <= 12'h054;
rommem[ 1074] <= 12'h042;
rommem[ 1075] <= 12'h001;
rommem[ 1076] <= 12'h04C;
rommem[ 1077] <= 12'h044;
rommem[ 1078] <= 12'h042;
rommem[ 1079] <= 12'h020;
rommem[ 1080] <= 12'h001;
rommem[ 1081] <= 12'h053;
rommem[ 1082] <= 12'h054;
rommem[ 1083] <= 12'h042;
rommem[ 1084] <= 12'h020;
rommem[ 1085] <= 12'h001;
rommem[ 1086] <= 12'h045;
rommem[ 1087] <= 12'h04F;
rommem[ 1088] <= 12'h052;
rommem[ 1089] <= 12'h042;
rommem[ 1090] <= 12'h001;
rommem[ 1091] <= 12'h041;
rommem[ 1092] <= 12'h044;
rommem[ 1093] <= 12'h043;
rommem[ 1094] <= 12'h042;
rommem[ 1095] <= 12'h001;
rommem[ 1096] <= 12'h04F;
rommem[ 1097] <= 12'h052;
rommem[ 1098] <= 12'h042;
rommem[ 1099] <= 12'h020;
rommem[ 1100] <= 12'h001;
rommem[ 1101] <= 12'h041;
rommem[ 1102] <= 12'h044;
rommem[ 1103] <= 12'h044;
rommem[ 1104] <= 12'h042;
rommem[ 1105] <= 12'h001;
rommem[ 1106] <= 12'h04C;
rommem[ 1107] <= 12'h044;
rommem[ 1108] <= 12'h044;
rommem[ 1109] <= 12'h020;
rommem[ 1110] <= 12'h001;
rommem[ 1111] <= 12'h053;
rommem[ 1112] <= 12'h054;
rommem[ 1113] <= 12'h044;
rommem[ 1114] <= 12'h020;
rommem[ 1115] <= 12'h001;
rommem[ 1116] <= 12'h04C;
rommem[ 1117] <= 12'h044;
rommem[ 1118] <= 12'h055;
rommem[ 1119] <= 12'h020;
rommem[ 1120] <= 12'h001;
rommem[ 1121] <= 12'h053;
rommem[ 1122] <= 12'h054;
rommem[ 1123] <= 12'h055;
rommem[ 1124] <= 12'h020;
rommem[ 1125] <= 12'h001;
rommem[ 1126] <= 12'h053;
rommem[ 1127] <= 12'h055;
rommem[ 1128] <= 12'h042;
rommem[ 1129] <= 12'h042;
rommem[ 1130] <= 12'h005;
rommem[ 1131] <= 12'h043;
rommem[ 1132] <= 12'h04D;
rommem[ 1133] <= 12'h050;
rommem[ 1134] <= 12'h042;
rommem[ 1135] <= 12'h005;
rommem[ 1136] <= 12'h053;
rommem[ 1137] <= 12'h042;
rommem[ 1138] <= 12'h043;
rommem[ 1139] <= 12'h042;
rommem[ 1140] <= 12'h005;
rommem[ 1141] <= 12'h041;
rommem[ 1142] <= 12'h044;
rommem[ 1143] <= 12'h044;
rommem[ 1144] <= 12'h044;
rommem[ 1145] <= 12'h005;
rommem[ 1146] <= 12'h041;
rommem[ 1147] <= 12'h04E;
rommem[ 1148] <= 12'h044;
rommem[ 1149] <= 12'h042;
rommem[ 1150] <= 12'h005;
rommem[ 1151] <= 12'h042;
rommem[ 1152] <= 12'h049;
rommem[ 1153] <= 12'h054;
rommem[ 1154] <= 12'h042;
rommem[ 1155] <= 12'h005;
rommem[ 1156] <= 12'h04C;
rommem[ 1157] <= 12'h044;
rommem[ 1158] <= 12'h042;
rommem[ 1159] <= 12'h020;
rommem[ 1160] <= 12'h005;
rommem[ 1161] <= 12'h053;
rommem[ 1162] <= 12'h054;
rommem[ 1163] <= 12'h042;
rommem[ 1164] <= 12'h020;
rommem[ 1165] <= 12'h005;
rommem[ 1166] <= 12'h045;
rommem[ 1167] <= 12'h04F;
rommem[ 1168] <= 12'h052;
rommem[ 1169] <= 12'h042;
rommem[ 1170] <= 12'h005;
rommem[ 1171] <= 12'h041;
rommem[ 1172] <= 12'h044;
rommem[ 1173] <= 12'h043;
rommem[ 1174] <= 12'h042;
rommem[ 1175] <= 12'h005;
rommem[ 1176] <= 12'h04F;
rommem[ 1177] <= 12'h052;
rommem[ 1178] <= 12'h042;
rommem[ 1179] <= 12'h020;
rommem[ 1180] <= 12'h005;
rommem[ 1181] <= 12'h041;
rommem[ 1182] <= 12'h044;
rommem[ 1183] <= 12'h044;
rommem[ 1184] <= 12'h042;
rommem[ 1185] <= 12'h005;
rommem[ 1186] <= 12'h04C;
rommem[ 1187] <= 12'h044;
rommem[ 1188] <= 12'h044;
rommem[ 1189] <= 12'h020;
rommem[ 1190] <= 12'h005;
rommem[ 1191] <= 12'h053;
rommem[ 1192] <= 12'h054;
rommem[ 1193] <= 12'h044;
rommem[ 1194] <= 12'h020;
rommem[ 1195] <= 12'h005;
rommem[ 1196] <= 12'h04C;
rommem[ 1197] <= 12'h044;
rommem[ 1198] <= 12'h055;
rommem[ 1199] <= 12'h020;
rommem[ 1200] <= 12'h005;
rommem[ 1201] <= 12'h053;
rommem[ 1202] <= 12'h054;
rommem[ 1203] <= 12'h055;
rommem[ 1204] <= 12'h020;
rommem[ 1205] <= 12'h005;
rommem[ 1206] <= 12'h053;
rommem[ 1207] <= 12'h055;
rommem[ 1208] <= 12'h042;
rommem[ 1209] <= 12'h042;
rommem[ 1210] <= 12'h006;
rommem[ 1211] <= 12'h043;
rommem[ 1212] <= 12'h04D;
rommem[ 1213] <= 12'h050;
rommem[ 1214] <= 12'h042;
rommem[ 1215] <= 12'h006;
rommem[ 1216] <= 12'h053;
rommem[ 1217] <= 12'h042;
rommem[ 1218] <= 12'h043;
rommem[ 1219] <= 12'h042;
rommem[ 1220] <= 12'h006;
rommem[ 1221] <= 12'h041;
rommem[ 1222] <= 12'h044;
rommem[ 1223] <= 12'h044;
rommem[ 1224] <= 12'h044;
rommem[ 1225] <= 12'h006;
rommem[ 1226] <= 12'h041;
rommem[ 1227] <= 12'h04E;
rommem[ 1228] <= 12'h044;
rommem[ 1229] <= 12'h042;
rommem[ 1230] <= 12'h006;
rommem[ 1231] <= 12'h042;
rommem[ 1232] <= 12'h049;
rommem[ 1233] <= 12'h054;
rommem[ 1234] <= 12'h042;
rommem[ 1235] <= 12'h006;
rommem[ 1236] <= 12'h04C;
rommem[ 1237] <= 12'h044;
rommem[ 1238] <= 12'h042;
rommem[ 1239] <= 12'h020;
rommem[ 1240] <= 12'h006;
rommem[ 1241] <= 12'h053;
rommem[ 1242] <= 12'h054;
rommem[ 1243] <= 12'h042;
rommem[ 1244] <= 12'h020;
rommem[ 1245] <= 12'h006;
rommem[ 1246] <= 12'h045;
rommem[ 1247] <= 12'h04F;
rommem[ 1248] <= 12'h052;
rommem[ 1249] <= 12'h042;
rommem[ 1250] <= 12'h006;
rommem[ 1251] <= 12'h041;
rommem[ 1252] <= 12'h044;
rommem[ 1253] <= 12'h043;
rommem[ 1254] <= 12'h042;
rommem[ 1255] <= 12'h006;
rommem[ 1256] <= 12'h04F;
rommem[ 1257] <= 12'h052;
rommem[ 1258] <= 12'h042;
rommem[ 1259] <= 12'h020;
rommem[ 1260] <= 12'h006;
rommem[ 1261] <= 12'h041;
rommem[ 1262] <= 12'h044;
rommem[ 1263] <= 12'h044;
rommem[ 1264] <= 12'h042;
rommem[ 1265] <= 12'h006;
rommem[ 1266] <= 12'h04C;
rommem[ 1267] <= 12'h044;
rommem[ 1268] <= 12'h044;
rommem[ 1269] <= 12'h020;
rommem[ 1270] <= 12'h006;
rommem[ 1271] <= 12'h053;
rommem[ 1272] <= 12'h054;
rommem[ 1273] <= 12'h044;
rommem[ 1274] <= 12'h020;
rommem[ 1275] <= 12'h006;
rommem[ 1276] <= 12'h04C;
rommem[ 1277] <= 12'h044;
rommem[ 1278] <= 12'h055;
rommem[ 1279] <= 12'h020;
rommem[ 1280] <= 12'h006;
rommem[ 1281] <= 12'h053;
rommem[ 1282] <= 12'h054;
rommem[ 1283] <= 12'h055;
rommem[ 1284] <= 12'h020;
rommem[ 1285] <= 12'h006;
rommem[ 1286] <= 12'h04C;
rommem[ 1287] <= 12'h042;
rommem[ 1288] <= 12'h052;
rommem[ 1289] <= 12'h041;
rommem[ 1290] <= 12'h04C;
rommem[ 1291] <= 12'h042;
rommem[ 1292] <= 12'h052;
rommem[ 1293] <= 12'h04E;
rommem[ 1294] <= 12'h04C;
rommem[ 1295] <= 12'h042;
rommem[ 1296] <= 12'h048;
rommem[ 1297] <= 12'h049;
rommem[ 1298] <= 12'h04C;
rommem[ 1299] <= 12'h042;
rommem[ 1300] <= 12'h04C;
rommem[ 1301] <= 12'h053;
rommem[ 1302] <= 12'h04C;
rommem[ 1303] <= 12'h042;
rommem[ 1304] <= 12'h048;
rommem[ 1305] <= 12'h053;
rommem[ 1306] <= 12'h04C;
rommem[ 1307] <= 12'h042;
rommem[ 1308] <= 12'h04C;
rommem[ 1309] <= 12'h04F;
rommem[ 1310] <= 12'h04C;
rommem[ 1311] <= 12'h042;
rommem[ 1312] <= 12'h04E;
rommem[ 1313] <= 12'h045;
rommem[ 1314] <= 12'h04C;
rommem[ 1315] <= 12'h042;
rommem[ 1316] <= 12'h045;
rommem[ 1317] <= 12'h051;
rommem[ 1318] <= 12'h04C;
rommem[ 1319] <= 12'h042;
rommem[ 1320] <= 12'h056;
rommem[ 1321] <= 12'h043;
rommem[ 1322] <= 12'h04C;
rommem[ 1323] <= 12'h042;
rommem[ 1324] <= 12'h056;
rommem[ 1325] <= 12'h053;
rommem[ 1326] <= 12'h04C;
rommem[ 1327] <= 12'h042;
rommem[ 1328] <= 12'h050;
rommem[ 1329] <= 12'h04C;
rommem[ 1330] <= 12'h04C;
rommem[ 1331] <= 12'h042;
rommem[ 1332] <= 12'h04D;
rommem[ 1333] <= 12'h049;
rommem[ 1334] <= 12'h04C;
rommem[ 1335] <= 12'h042;
rommem[ 1336] <= 12'h047;
rommem[ 1337] <= 12'h045;
rommem[ 1338] <= 12'h04C;
rommem[ 1339] <= 12'h042;
rommem[ 1340] <= 12'h04C;
rommem[ 1341] <= 12'h054;
rommem[ 1342] <= 12'h04C;
rommem[ 1343] <= 12'h042;
rommem[ 1344] <= 12'h047;
rommem[ 1345] <= 12'h054;
rommem[ 1346] <= 12'h04C;
rommem[ 1347] <= 12'h042;
rommem[ 1348] <= 12'h04C;
rommem[ 1349] <= 12'h045;
rommem[ 1350] <= 12'h13F;
rommem[ 1351] <= 12'h183;
rommem[ 1352] <= 12'h18C;
rommem[ 1353] <= 12'h18E;
rommem[ 1354] <= 12'h193;
rommem[ 1355] <= 12'h19C;
rommem[ 1356] <= 12'h19E;
rommem[ 1357] <= 12'h19F;
rommem[ 1358] <= 12'h1A3;
rommem[ 1359] <= 12'h1AC;
rommem[ 1360] <= 12'h1AE;
rommem[ 1361] <= 12'h1AF;
rommem[ 1362] <= 12'h1B3;
rommem[ 1363] <= 12'h1BC;
rommem[ 1364] <= 12'h1BE;
rommem[ 1365] <= 12'h1BF;
rommem[ 1366] <= 12'h1CE;
rommem[ 1367] <= 12'h1DE;
rommem[ 1368] <= 12'h1DF;
rommem[ 1369] <= 12'h1EE;
rommem[ 1370] <= 12'h1EF;
rommem[ 1371] <= 12'h1FE;
rommem[ 1372] <= 12'h1FF;
rommem[ 1373] <= 12'h23F;
rommem[ 1374] <= 12'h283;
rommem[ 1375] <= 12'h28C;
rommem[ 1376] <= 12'h293;
rommem[ 1377] <= 12'h29C;
rommem[ 1378] <= 12'h2A3;
rommem[ 1379] <= 12'h2AC;
rommem[ 1380] <= 12'h2B3;
rommem[ 1381] <= 12'h2BC;
rommem[ 1382] <= 12'h053;
rommem[ 1383] <= 12'h057;
rommem[ 1384] <= 12'h049;
rommem[ 1385] <= 12'h032;
rommem[ 1386] <= 12'h000;
rommem[ 1387] <= 12'h043;
rommem[ 1388] <= 12'h04D;
rommem[ 1389] <= 12'h050;
rommem[ 1390] <= 12'h044;
rommem[ 1391] <= 12'h007;
rommem[ 1392] <= 12'h043;
rommem[ 1393] <= 12'h04D;
rommem[ 1394] <= 12'h050;
rommem[ 1395] <= 12'h059;
rommem[ 1396] <= 12'h007;
rommem[ 1397] <= 12'h04C;
rommem[ 1398] <= 12'h044;
rommem[ 1399] <= 12'h059;
rommem[ 1400] <= 12'h020;
rommem[ 1401] <= 12'h007;
rommem[ 1402] <= 12'h043;
rommem[ 1403] <= 12'h04D;
rommem[ 1404] <= 12'h050;
rommem[ 1405] <= 12'h044;
rommem[ 1406] <= 12'h001;
rommem[ 1407] <= 12'h043;
rommem[ 1408] <= 12'h04D;
rommem[ 1409] <= 12'h050;
rommem[ 1410] <= 12'h059;
rommem[ 1411] <= 12'h001;
rommem[ 1412] <= 12'h04C;
rommem[ 1413] <= 12'h044;
rommem[ 1414] <= 12'h059;
rommem[ 1415] <= 12'h020;
rommem[ 1416] <= 12'h001;
rommem[ 1417] <= 12'h053;
rommem[ 1418] <= 12'h054;
rommem[ 1419] <= 12'h059;
rommem[ 1420] <= 12'h020;
rommem[ 1421] <= 12'h001;
rommem[ 1422] <= 12'h043;
rommem[ 1423] <= 12'h04D;
rommem[ 1424] <= 12'h050;
rommem[ 1425] <= 12'h044;
rommem[ 1426] <= 12'h005;
rommem[ 1427] <= 12'h043;
rommem[ 1428] <= 12'h04D;
rommem[ 1429] <= 12'h050;
rommem[ 1430] <= 12'h059;
rommem[ 1431] <= 12'h005;
rommem[ 1432] <= 12'h04C;
rommem[ 1433] <= 12'h044;
rommem[ 1434] <= 12'h059;
rommem[ 1435] <= 12'h020;
rommem[ 1436] <= 12'h005;
rommem[ 1437] <= 12'h053;
rommem[ 1438] <= 12'h054;
rommem[ 1439] <= 12'h059;
rommem[ 1440] <= 12'h020;
rommem[ 1441] <= 12'h005;
rommem[ 1442] <= 12'h043;
rommem[ 1443] <= 12'h04D;
rommem[ 1444] <= 12'h050;
rommem[ 1445] <= 12'h044;
rommem[ 1446] <= 12'h006;
rommem[ 1447] <= 12'h043;
rommem[ 1448] <= 12'h04D;
rommem[ 1449] <= 12'h050;
rommem[ 1450] <= 12'h059;
rommem[ 1451] <= 12'h006;
rommem[ 1452] <= 12'h04C;
rommem[ 1453] <= 12'h044;
rommem[ 1454] <= 12'h059;
rommem[ 1455] <= 12'h020;
rommem[ 1456] <= 12'h006;
rommem[ 1457] <= 12'h053;
rommem[ 1458] <= 12'h054;
rommem[ 1459] <= 12'h059;
rommem[ 1460] <= 12'h020;
rommem[ 1461] <= 12'h006;
rommem[ 1462] <= 12'h04C;
rommem[ 1463] <= 12'h044;
rommem[ 1464] <= 12'h053;
rommem[ 1465] <= 12'h020;
rommem[ 1466] <= 12'h007;
rommem[ 1467] <= 12'h04C;
rommem[ 1468] <= 12'h044;
rommem[ 1469] <= 12'h053;
rommem[ 1470] <= 12'h020;
rommem[ 1471] <= 12'h001;
rommem[ 1472] <= 12'h053;
rommem[ 1473] <= 12'h054;
rommem[ 1474] <= 12'h053;
rommem[ 1475] <= 12'h020;
rommem[ 1476] <= 12'h001;
rommem[ 1477] <= 12'h04C;
rommem[ 1478] <= 12'h044;
rommem[ 1479] <= 12'h053;
rommem[ 1480] <= 12'h020;
rommem[ 1481] <= 12'h005;
rommem[ 1482] <= 12'h053;
rommem[ 1483] <= 12'h054;
rommem[ 1484] <= 12'h053;
rommem[ 1485] <= 12'h020;
rommem[ 1486] <= 12'h005;
rommem[ 1487] <= 12'h04C;
rommem[ 1488] <= 12'h044;
rommem[ 1489] <= 12'h053;
rommem[ 1490] <= 12'h020;
rommem[ 1491] <= 12'h006;
rommem[ 1492] <= 12'h053;
rommem[ 1493] <= 12'h054;
rommem[ 1494] <= 12'h053;
rommem[ 1495] <= 12'h020;
rommem[ 1496] <= 12'h006;
rommem[ 1497] <= 12'h053;
rommem[ 1498] <= 12'h057;
rommem[ 1499] <= 12'h049;
rommem[ 1500] <= 12'h033;
rommem[ 1501] <= 12'h000;
rommem[ 1502] <= 12'h043;
rommem[ 1503] <= 12'h04D;
rommem[ 1504] <= 12'h050;
rommem[ 1505] <= 12'h055;
rommem[ 1506] <= 12'h007;
rommem[ 1507] <= 12'h043;
rommem[ 1508] <= 12'h04D;
rommem[ 1509] <= 12'h050;
rommem[ 1510] <= 12'h053;
rommem[ 1511] <= 12'h007;
rommem[ 1512] <= 12'h043;
rommem[ 1513] <= 12'h04D;
rommem[ 1514] <= 12'h050;
rommem[ 1515] <= 12'h055;
rommem[ 1516] <= 12'h001;
rommem[ 1517] <= 12'h043;
rommem[ 1518] <= 12'h04D;
rommem[ 1519] <= 12'h050;
rommem[ 1520] <= 12'h053;
rommem[ 1521] <= 12'h001;
rommem[ 1522] <= 12'h043;
rommem[ 1523] <= 12'h04D;
rommem[ 1524] <= 12'h050;
rommem[ 1525] <= 12'h055;
rommem[ 1526] <= 12'h005;
rommem[ 1527] <= 12'h043;
rommem[ 1528] <= 12'h04D;
rommem[ 1529] <= 12'h050;
rommem[ 1530] <= 12'h053;
rommem[ 1531] <= 12'h005;
rommem[ 1532] <= 12'h043;
rommem[ 1533] <= 12'h04D;
rommem[ 1534] <= 12'h050;
rommem[ 1535] <= 12'h055;
rommem[ 1536] <= 12'h006;
rommem[ 1537] <= 12'h043;
rommem[ 1538] <= 12'h04D;
rommem[ 1539] <= 12'h050;
rommem[ 1540] <= 12'h053;
rommem[ 1541] <= 12'h006;
rommem[ 1542] <= 12'h07F;
rommem[ 1543] <= 12'h000;
rommem[ 1544] <= 12'h15F;
rommem[ 1545] <= 12'h03F;
rommem[ 1546] <= 12'h00B;
rommem[ 1547] <= 12'h03F;
rommem[ 1548] <= 12'h003;
rommem[ 1549] <= 12'h19E;
rommem[ 1550] <= 12'h922;
rommem[ 1551] <= 12'h01F;
rommem[ 1552] <= 12'h020;
rommem[ 1553] <= 12'h03F;
rommem[ 1554] <= 12'h006;
rommem[ 1555] <= 12'h0C6;
rommem[ 1556] <= 12'h020;
rommem[ 1557] <= 12'h03F;
rommem[ 1558] <= 12'h002;
rommem[ 1559] <= 12'h0E6;
rommem[ 1560] <= 12'hA00;
rommem[ 1561] <= 12'h0C5;
rommem[ 1562] <= 12'h300;
rommem[ 1563] <= 12'h126;
rommem[ 1564] <= 12'h000;
rommem[ 1565] <= 12'h3B0;
rommem[ 1566] <= 12'h0C4;
rommem[ 1567] <= 12'h0FF;
rommem[ 1568] <= 12'h0C1;
rommem[ 1569] <= 12'h015;
rommem[ 1570] <= 12'h026;
rommem[ 1571] <= 12'h005;
rommem[ 1572] <= 12'h0F7;
rommem[ 1573] <= 12'h000;
rommem[ 1574] <= 12'h15F;
rommem[ 1575] <= 12'h020;
rommem[ 1576] <= 12'hFE6;
rommem[ 1577] <= 12'h08E;
rommem[ 1578] <= 12'hFF8;
rommem[ 1579] <= 12'h006;
rommem[ 1580] <= 12'h086;
rommem[ 1581] <= 12'h005;
rommem[ 1582] <= 12'h03D;
rommem[ 1583] <= 12'h03A;
rommem[ 1584] <= 12'h0E6;
rommem[ 1585] <= 12'h800;
rommem[ 1586] <= 12'h03F;
rommem[ 1587] <= 12'h002;
rommem[ 1588] <= 12'h0E6;
rommem[ 1589] <= 12'h800;
rommem[ 1590] <= 12'h03F;
rommem[ 1591] <= 12'h002;
rommem[ 1592] <= 12'h0E6;
rommem[ 1593] <= 12'h800;
rommem[ 1594] <= 12'h03F;
rommem[ 1595] <= 12'h002;
rommem[ 1596] <= 12'h0E6;
rommem[ 1597] <= 12'h800;
rommem[ 1598] <= 12'h03F;
rommem[ 1599] <= 12'h002;
rommem[ 1600] <= 12'h0C6;
rommem[ 1601] <= 12'h020;
rommem[ 1602] <= 12'h03F;
rommem[ 1603] <= 12'h002;
rommem[ 1604] <= 12'h0E6;
rommem[ 1605] <= 12'h800;
rommem[ 1606] <= 12'h127;
rommem[ 1607] <= 12'h000;
rommem[ 1608] <= 12'h3CF;
rommem[ 1609] <= 12'h0C1;
rommem[ 1610] <= 12'h001;
rommem[ 1611] <= 12'h026;
rommem[ 1612] <= 12'h007;
rommem[ 1613] <= 12'h0E6;
rommem[ 1614] <= 12'hA00;
rommem[ 1615] <= 12'h03F;
rommem[ 1616] <= 12'h005;
rommem[ 1617] <= 12'h016;
rommem[ 1618] <= 12'h000;
rommem[ 1619] <= 12'h3C4;
rommem[ 1620] <= 12'h0C1;
rommem[ 1621] <= 12'h002;
rommem[ 1622] <= 12'h026;
rommem[ 1623] <= 12'h00B;
rommem[ 1624] <= 12'h0EC;
rommem[ 1625] <= 12'hA01;
rommem[ 1626] <= 12'h030;
rommem[ 1627] <= 12'hA0B;
rommem[ 1628] <= 12'h01F;
rommem[ 1629] <= 12'h010;
rommem[ 1630] <= 12'h03F;
rommem[ 1631] <= 12'h006;
rommem[ 1632] <= 12'h016;
rommem[ 1633] <= 12'h000;
rommem[ 1634] <= 12'h3B5;
rommem[ 1635] <= 12'h0C1;
rommem[ 1636] <= 12'h004;
rommem[ 1637] <= 12'h026;
rommem[ 1638] <= 12'h005;
rommem[ 1639] <= 12'h0E6;
rommem[ 1640] <= 12'hA00;
rommem[ 1641] <= 12'h04F;
rommem[ 1642] <= 12'h020;
rommem[ 1643] <= 12'hFEE;
rommem[ 1644] <= 12'h0C1;
rommem[ 1645] <= 12'h005;
rommem[ 1646] <= 12'h026;
rommem[ 1647] <= 12'h320;
rommem[ 1648] <= 12'h0E6;
rommem[ 1649] <= 12'hA00;
rommem[ 1650] <= 12'h0C5;
rommem[ 1651] <= 12'h800;
rommem[ 1652] <= 12'h026;
rommem[ 1653] <= 12'h01B;
rommem[ 1654] <= 12'h034;
rommem[ 1655] <= 12'h004;
rommem[ 1656] <= 12'h0C4;
rommem[ 1657] <= 12'h1FF;
rommem[ 1658] <= 12'h04F;
rommem[ 1659] <= 12'h0C5;
rommem[ 1660] <= 12'h100;
rommem[ 1661] <= 12'h027;
rommem[ 1662] <= 12'h003;
rommem[ 1663] <= 12'h04A;
rommem[ 1664] <= 12'h0CA;
rommem[ 1665] <= 12'hE00;
rommem[ 1666] <= 12'h03F;
rommem[ 1667] <= 12'h006;
rommem[ 1668] <= 12'h0C6;
rommem[ 1669] <= 12'h02C;
rommem[ 1670] <= 12'h03F;
rommem[ 1671] <= 12'h002;
rommem[ 1672] <= 12'h035;
rommem[ 1673] <= 12'h004;
rommem[ 1674] <= 12'h08D;
rommem[ 1675] <= 12'h3BE;
rommem[ 1676] <= 12'h03F;
rommem[ 1677] <= 12'h002;
rommem[ 1678] <= 12'h016;
rommem[ 1679] <= 12'h000;
rommem[ 1680] <= 12'h387;
rommem[ 1681] <= 12'h034;
rommem[ 1682] <= 12'h004;
rommem[ 1683] <= 12'h0C5;
rommem[ 1684] <= 12'h100;
rommem[ 1685] <= 12'h027;
rommem[ 1686] <= 12'h004;
rommem[ 1687] <= 12'h0C6;
rommem[ 1688] <= 12'h05B;
rommem[ 1689] <= 12'h03F;
rommem[ 1690] <= 12'h002;
rommem[ 1691] <= 12'h0E6;
rommem[ 1692] <= 12'hE04;
rommem[ 1693] <= 12'h0C4;
rommem[ 1694] <= 12'h00F;
rommem[ 1695] <= 12'h026;
rommem[ 1696] <= 12'h02B;
rommem[ 1697] <= 12'h0E6;
rommem[ 1698] <= 12'hE04;
rommem[ 1699] <= 12'h0C5;
rommem[ 1700] <= 12'h080;
rommem[ 1701] <= 12'h027;
rommem[ 1702] <= 12'h004;
rommem[ 1703] <= 12'h0C6;
rommem[ 1704] <= 12'h05D;
rommem[ 1705] <= 12'h03F;
rommem[ 1706] <= 12'h002;
rommem[ 1707] <= 12'h0C6;
rommem[ 1708] <= 12'h02C;
rommem[ 1709] <= 12'h03F;
rommem[ 1710] <= 12'h002;
rommem[ 1711] <= 12'h0E6;
rommem[ 1712] <= 12'hE04;
rommem[ 1713] <= 12'h08D;
rommem[ 1714] <= 12'h397;
rommem[ 1715] <= 12'h03F;
rommem[ 1716] <= 12'h002;
rommem[ 1717] <= 12'h0C6;
rommem[ 1718] <= 12'h02B;
rommem[ 1719] <= 12'h03F;
rommem[ 1720] <= 12'h002;
rommem[ 1721] <= 12'h035;
rommem[ 1722] <= 12'h004;
rommem[ 1723] <= 12'h0C5;
rommem[ 1724] <= 12'h100;
rommem[ 1725] <= 12'h127;
rommem[ 1726] <= 12'h000;
rommem[ 1727] <= 12'h358;
rommem[ 1728] <= 12'h0C5;
rommem[ 1729] <= 12'h080;
rommem[ 1730] <= 12'h126;
rommem[ 1731] <= 12'h000;
rommem[ 1732] <= 12'h353;
rommem[ 1733] <= 12'h0C6;
rommem[ 1734] <= 12'h05D;
rommem[ 1735] <= 12'h03F;
rommem[ 1736] <= 12'h002;
rommem[ 1737] <= 12'h016;
rommem[ 1738] <= 12'h000;
rommem[ 1739] <= 12'h34C;
rommem[ 1740] <= 12'h0C1;
rommem[ 1741] <= 12'h001;
rommem[ 1742] <= 12'h026;
rommem[ 1743] <= 12'h02D;
rommem[ 1744] <= 12'h0E6;
rommem[ 1745] <= 12'hE04;
rommem[ 1746] <= 12'h0C5;
rommem[ 1747] <= 12'h080;
rommem[ 1748] <= 12'h027;
rommem[ 1749] <= 12'h004;
rommem[ 1750] <= 12'h0C6;
rommem[ 1751] <= 12'h05D;
rommem[ 1752] <= 12'h03F;
rommem[ 1753] <= 12'h002;
rommem[ 1754] <= 12'h0C6;
rommem[ 1755] <= 12'h02C;
rommem[ 1756] <= 12'h03F;
rommem[ 1757] <= 12'h002;
rommem[ 1758] <= 12'h0E6;
rommem[ 1759] <= 12'hE04;
rommem[ 1760] <= 12'h08D;
rommem[ 1761] <= 12'h368;
rommem[ 1762] <= 12'h03F;
rommem[ 1763] <= 12'h002;
rommem[ 1764] <= 12'h0C6;
rommem[ 1765] <= 12'h02B;
rommem[ 1766] <= 12'h03F;
rommem[ 1767] <= 12'h002;
rommem[ 1768] <= 12'h03F;
rommem[ 1769] <= 12'h002;
rommem[ 1770] <= 12'h035;
rommem[ 1771] <= 12'h004;
rommem[ 1772] <= 12'h0C5;
rommem[ 1773] <= 12'h100;
rommem[ 1774] <= 12'h127;
rommem[ 1775] <= 12'h000;
rommem[ 1776] <= 12'h327;
rommem[ 1777] <= 12'h0C5;
rommem[ 1778] <= 12'h080;
rommem[ 1779] <= 12'h126;
rommem[ 1780] <= 12'h000;
rommem[ 1781] <= 12'h322;
rommem[ 1782] <= 12'h0C6;
rommem[ 1783] <= 12'h05D;
rommem[ 1784] <= 12'h03F;
rommem[ 1785] <= 12'h002;
rommem[ 1786] <= 12'h016;
rommem[ 1787] <= 12'h000;
rommem[ 1788] <= 12'h31B;
rommem[ 1789] <= 12'h0C1;
rommem[ 1790] <= 12'h002;
rommem[ 1791] <= 12'h026;
rommem[ 1792] <= 12'h02B;
rommem[ 1793] <= 12'h0E6;
rommem[ 1794] <= 12'hE04;
rommem[ 1795] <= 12'h0C5;
rommem[ 1796] <= 12'h080;
rommem[ 1797] <= 12'h027;
rommem[ 1798] <= 12'h004;
rommem[ 1799] <= 12'h0C6;
rommem[ 1800] <= 12'h05D;
rommem[ 1801] <= 12'h03F;
rommem[ 1802] <= 12'h002;
rommem[ 1803] <= 12'h0C6;
rommem[ 1804] <= 12'h02C;
rommem[ 1805] <= 12'h03F;
rommem[ 1806] <= 12'h002;
rommem[ 1807] <= 12'h0E6;
rommem[ 1808] <= 12'hE04;
rommem[ 1809] <= 12'h08D;
rommem[ 1810] <= 12'h337;
rommem[ 1811] <= 12'h03F;
rommem[ 1812] <= 12'h002;
rommem[ 1813] <= 12'h0C6;
rommem[ 1814] <= 12'h02D;
rommem[ 1815] <= 12'h03F;
rommem[ 1816] <= 12'h002;
rommem[ 1817] <= 12'h035;
rommem[ 1818] <= 12'h004;
rommem[ 1819] <= 12'h0C5;
rommem[ 1820] <= 12'h100;
rommem[ 1821] <= 12'h127;
rommem[ 1822] <= 12'h000;
rommem[ 1823] <= 12'h2F8;
rommem[ 1824] <= 12'h0C5;
rommem[ 1825] <= 12'h080;
rommem[ 1826] <= 12'h126;
rommem[ 1827] <= 12'h000;
rommem[ 1828] <= 12'h2F3;
rommem[ 1829] <= 12'h0C6;
rommem[ 1830] <= 12'h05D;
rommem[ 1831] <= 12'h03F;
rommem[ 1832] <= 12'h002;
rommem[ 1833] <= 12'h016;
rommem[ 1834] <= 12'h000;
rommem[ 1835] <= 12'h2EC;
rommem[ 1836] <= 12'h0C1;
rommem[ 1837] <= 12'h003;
rommem[ 1838] <= 12'h026;
rommem[ 1839] <= 12'h02D;
rommem[ 1840] <= 12'h0E6;
rommem[ 1841] <= 12'hE04;
rommem[ 1842] <= 12'h0C5;
rommem[ 1843] <= 12'h080;
rommem[ 1844] <= 12'h027;
rommem[ 1845] <= 12'h004;
rommem[ 1846] <= 12'h0C6;
rommem[ 1847] <= 12'h05D;
rommem[ 1848] <= 12'h03F;
rommem[ 1849] <= 12'h002;
rommem[ 1850] <= 12'h0C6;
rommem[ 1851] <= 12'h02C;
rommem[ 1852] <= 12'h03F;
rommem[ 1853] <= 12'h002;
rommem[ 1854] <= 12'h0E6;
rommem[ 1855] <= 12'hE04;
rommem[ 1856] <= 12'h08D;
rommem[ 1857] <= 12'h308;
rommem[ 1858] <= 12'h03F;
rommem[ 1859] <= 12'h002;
rommem[ 1860] <= 12'h0C6;
rommem[ 1861] <= 12'h02D;
rommem[ 1862] <= 12'h03F;
rommem[ 1863] <= 12'h002;
rommem[ 1864] <= 12'h03F;
rommem[ 1865] <= 12'h002;
rommem[ 1866] <= 12'h035;
rommem[ 1867] <= 12'h004;
rommem[ 1868] <= 12'h0C5;
rommem[ 1869] <= 12'h100;
rommem[ 1870] <= 12'h127;
rommem[ 1871] <= 12'h000;
rommem[ 1872] <= 12'h2C7;
rommem[ 1873] <= 12'h0C5;
rommem[ 1874] <= 12'h080;
rommem[ 1875] <= 12'h126;
rommem[ 1876] <= 12'h000;
rommem[ 1877] <= 12'h2C2;
rommem[ 1878] <= 12'h0C6;
rommem[ 1879] <= 12'h05D;
rommem[ 1880] <= 12'h03F;
rommem[ 1881] <= 12'h002;
rommem[ 1882] <= 12'h016;
rommem[ 1883] <= 12'h000;
rommem[ 1884] <= 12'h2BB;
rommem[ 1885] <= 12'h0C1;
rommem[ 1886] <= 12'h004;
rommem[ 1887] <= 12'h026;
rommem[ 1888] <= 12'h027;
rommem[ 1889] <= 12'h0E6;
rommem[ 1890] <= 12'hE04;
rommem[ 1891] <= 12'h0C5;
rommem[ 1892] <= 12'h080;
rommem[ 1893] <= 12'h027;
rommem[ 1894] <= 12'h004;
rommem[ 1895] <= 12'h0C6;
rommem[ 1896] <= 12'h05D;
rommem[ 1897] <= 12'h03F;
rommem[ 1898] <= 12'h002;
rommem[ 1899] <= 12'h0C6;
rommem[ 1900] <= 12'h02C;
rommem[ 1901] <= 12'h03F;
rommem[ 1902] <= 12'h002;
rommem[ 1903] <= 12'h0E6;
rommem[ 1904] <= 12'hE04;
rommem[ 1905] <= 12'h08D;
rommem[ 1906] <= 12'h2D7;
rommem[ 1907] <= 12'h03F;
rommem[ 1908] <= 12'h002;
rommem[ 1909] <= 12'h035;
rommem[ 1910] <= 12'h004;
rommem[ 1911] <= 12'h0C5;
rommem[ 1912] <= 12'h100;
rommem[ 1913] <= 12'h127;
rommem[ 1914] <= 12'h000;
rommem[ 1915] <= 12'h29C;
rommem[ 1916] <= 12'h0C5;
rommem[ 1917] <= 12'h080;
rommem[ 1918] <= 12'h126;
rommem[ 1919] <= 12'h000;
rommem[ 1920] <= 12'h297;
rommem[ 1921] <= 12'h0C6;
rommem[ 1922] <= 12'h05D;
rommem[ 1923] <= 12'h03F;
rommem[ 1924] <= 12'h002;
rommem[ 1925] <= 12'h016;
rommem[ 1926] <= 12'h000;
rommem[ 1927] <= 12'h290;
rommem[ 1928] <= 12'h0C1;
rommem[ 1929] <= 12'h005;
rommem[ 1930] <= 12'h026;
rommem[ 1931] <= 12'h031;
rommem[ 1932] <= 12'h0C6;
rommem[ 1933] <= 12'h042;
rommem[ 1934] <= 12'h03F;
rommem[ 1935] <= 12'h002;
rommem[ 1936] <= 12'h0E6;
rommem[ 1937] <= 12'hE04;
rommem[ 1938] <= 12'h0C5;
rommem[ 1939] <= 12'h080;
rommem[ 1940] <= 12'h027;
rommem[ 1941] <= 12'h004;
rommem[ 1942] <= 12'h0C6;
rommem[ 1943] <= 12'h05D;
rommem[ 1944] <= 12'h03F;
rommem[ 1945] <= 12'h002;
rommem[ 1946] <= 12'h0C6;
rommem[ 1947] <= 12'h02C;
rommem[ 1948] <= 12'h03F;
rommem[ 1949] <= 12'h002;
rommem[ 1950] <= 12'h0E6;
rommem[ 1951] <= 12'hE04;
rommem[ 1952] <= 12'h08D;
rommem[ 1953] <= 12'h2A8;
rommem[ 1954] <= 12'h03F;
rommem[ 1955] <= 12'h002;
rommem[ 1956] <= 12'h0C6;
rommem[ 1957] <= 12'h02D;
rommem[ 1958] <= 12'h03F;
rommem[ 1959] <= 12'h002;
rommem[ 1960] <= 12'h03F;
rommem[ 1961] <= 12'h002;
rommem[ 1962] <= 12'h035;
rommem[ 1963] <= 12'h004;
rommem[ 1964] <= 12'h0C5;
rommem[ 1965] <= 12'h100;
rommem[ 1966] <= 12'h127;
rommem[ 1967] <= 12'h000;
rommem[ 1968] <= 12'h267;
rommem[ 1969] <= 12'h0C5;
rommem[ 1970] <= 12'h080;
rommem[ 1971] <= 12'h126;
rommem[ 1972] <= 12'h000;
rommem[ 1973] <= 12'h262;
rommem[ 1974] <= 12'h0C6;
rommem[ 1975] <= 12'h05D;
rommem[ 1976] <= 12'h03F;
rommem[ 1977] <= 12'h002;
rommem[ 1978] <= 12'h016;
rommem[ 1979] <= 12'h000;
rommem[ 1980] <= 12'h25B;
rommem[ 1981] <= 12'h0C1;
rommem[ 1982] <= 12'h006;
rommem[ 1983] <= 12'h026;
rommem[ 1984] <= 12'h031;
rommem[ 1985] <= 12'h0C6;
rommem[ 1986] <= 12'h041;
rommem[ 1987] <= 12'h03F;
rommem[ 1988] <= 12'h002;
rommem[ 1989] <= 12'h0E6;
rommem[ 1990] <= 12'hE04;
rommem[ 1991] <= 12'h0C5;
rommem[ 1992] <= 12'h080;
rommem[ 1993] <= 12'h027;
rommem[ 1994] <= 12'h004;
rommem[ 1995] <= 12'h0C6;
rommem[ 1996] <= 12'h05D;
rommem[ 1997] <= 12'h03F;
rommem[ 1998] <= 12'h002;
rommem[ 1999] <= 12'h0C6;
rommem[ 2000] <= 12'h02C;
rommem[ 2001] <= 12'h03F;
rommem[ 2002] <= 12'h002;
rommem[ 2003] <= 12'h0E6;
rommem[ 2004] <= 12'hE04;
rommem[ 2005] <= 12'h08D;
rommem[ 2006] <= 12'h273;
rommem[ 2007] <= 12'h03F;
rommem[ 2008] <= 12'h002;
rommem[ 2009] <= 12'h0C6;
rommem[ 2010] <= 12'h02D;
rommem[ 2011] <= 12'h03F;
rommem[ 2012] <= 12'h002;
rommem[ 2013] <= 12'h03F;
rommem[ 2014] <= 12'h002;
rommem[ 2015] <= 12'h035;
rommem[ 2016] <= 12'h004;
rommem[ 2017] <= 12'h0C5;
rommem[ 2018] <= 12'h100;
rommem[ 2019] <= 12'h127;
rommem[ 2020] <= 12'h000;
rommem[ 2021] <= 12'h232;
rommem[ 2022] <= 12'h0C5;
rommem[ 2023] <= 12'h080;
rommem[ 2024] <= 12'h126;
rommem[ 2025] <= 12'h000;
rommem[ 2026] <= 12'h22D;
rommem[ 2027] <= 12'h0C6;
rommem[ 2028] <= 12'h05D;
rommem[ 2029] <= 12'h03F;
rommem[ 2030] <= 12'h002;
rommem[ 2031] <= 12'h016;
rommem[ 2032] <= 12'h000;
rommem[ 2033] <= 12'h226;
rommem[ 2034] <= 12'h0C1;
rommem[ 2035] <= 12'h008;
rommem[ 2036] <= 12'h026;
rommem[ 2037] <= 12'h032;
rommem[ 2038] <= 12'h0E6;
rommem[ 2039] <= 12'hA00;
rommem[ 2040] <= 12'h01D;
rommem[ 2041] <= 12'h03F;
rommem[ 2042] <= 12'h006;
rommem[ 2043] <= 12'h0E6;
rommem[ 2044] <= 12'hE04;
rommem[ 2045] <= 12'h0C5;
rommem[ 2046] <= 12'h080;
rommem[ 2047] <= 12'h027;
rommem[ 2048] <= 12'h004;
rommem[ 2049] <= 12'h0C6;
rommem[ 2050] <= 12'h05D;
rommem[ 2051] <= 12'h03F;
rommem[ 2052] <= 12'h002;
rommem[ 2053] <= 12'h0C6;
rommem[ 2054] <= 12'h02C;
rommem[ 2055] <= 12'h03F;
rommem[ 2056] <= 12'h002;
rommem[ 2057] <= 12'h0E6;
rommem[ 2058] <= 12'hE04;
rommem[ 2059] <= 12'h08D;
rommem[ 2060] <= 12'h23D;
rommem[ 2061] <= 12'h03F;
rommem[ 2062] <= 12'h002;
rommem[ 2063] <= 12'h0C6;
rommem[ 2064] <= 12'h02D;
rommem[ 2065] <= 12'h03F;
rommem[ 2066] <= 12'h002;
rommem[ 2067] <= 12'h03F;
rommem[ 2068] <= 12'h002;
rommem[ 2069] <= 12'h035;
rommem[ 2070] <= 12'h004;
rommem[ 2071] <= 12'h0C5;
rommem[ 2072] <= 12'h100;
rommem[ 2073] <= 12'h127;
rommem[ 2074] <= 12'h000;
rommem[ 2075] <= 12'h1FC;
rommem[ 2076] <= 12'h0C5;
rommem[ 2077] <= 12'h080;
rommem[ 2078] <= 12'h126;
rommem[ 2079] <= 12'h000;
rommem[ 2080] <= 12'h1F7;
rommem[ 2081] <= 12'h0C6;
rommem[ 2082] <= 12'h05D;
rommem[ 2083] <= 12'h03F;
rommem[ 2084] <= 12'h002;
rommem[ 2085] <= 12'h016;
rommem[ 2086] <= 12'h000;
rommem[ 2087] <= 12'h1F0;
rommem[ 2088] <= 12'h0C1;
rommem[ 2089] <= 12'h009;
rommem[ 2090] <= 12'h026;
rommem[ 2091] <= 12'h031;
rommem[ 2092] <= 12'h0EC;
rommem[ 2093] <= 12'hA01;
rommem[ 2094] <= 12'h03F;
rommem[ 2095] <= 12'h006;
rommem[ 2096] <= 12'h0E6;
rommem[ 2097] <= 12'hE04;
rommem[ 2098] <= 12'h0C5;
rommem[ 2099] <= 12'h080;
rommem[ 2100] <= 12'h027;
rommem[ 2101] <= 12'h004;
rommem[ 2102] <= 12'h0C6;
rommem[ 2103] <= 12'h05D;
rommem[ 2104] <= 12'h03F;
rommem[ 2105] <= 12'h002;
rommem[ 2106] <= 12'h0C6;
rommem[ 2107] <= 12'h02C;
rommem[ 2108] <= 12'h03F;
rommem[ 2109] <= 12'h002;
rommem[ 2110] <= 12'h0E6;
rommem[ 2111] <= 12'hE04;
rommem[ 2112] <= 12'h08D;
rommem[ 2113] <= 12'h208;
rommem[ 2114] <= 12'h03F;
rommem[ 2115] <= 12'h002;
rommem[ 2116] <= 12'h0C6;
rommem[ 2117] <= 12'h02D;
rommem[ 2118] <= 12'h03F;
rommem[ 2119] <= 12'h002;
rommem[ 2120] <= 12'h03F;
rommem[ 2121] <= 12'h002;
rommem[ 2122] <= 12'h035;
rommem[ 2123] <= 12'h004;
rommem[ 2124] <= 12'h0C5;
rommem[ 2125] <= 12'h100;
rommem[ 2126] <= 12'h127;
rommem[ 2127] <= 12'h000;
rommem[ 2128] <= 12'h1C7;
rommem[ 2129] <= 12'h0C5;
rommem[ 2130] <= 12'h080;
rommem[ 2131] <= 12'h126;
rommem[ 2132] <= 12'h000;
rommem[ 2133] <= 12'h1C2;
rommem[ 2134] <= 12'h0C6;
rommem[ 2135] <= 12'h05D;
rommem[ 2136] <= 12'h03F;
rommem[ 2137] <= 12'h002;
rommem[ 2138] <= 12'h016;
rommem[ 2139] <= 12'h000;
rommem[ 2140] <= 12'h1BB;
rommem[ 2141] <= 12'h0C1;
rommem[ 2142] <= 12'h00A;
rommem[ 2143] <= 12'h026;
rommem[ 2144] <= 12'h035;
rommem[ 2145] <= 12'h0E6;
rommem[ 2146] <= 12'hA01;
rommem[ 2147] <= 12'h03F;
rommem[ 2148] <= 12'h005;
rommem[ 2149] <= 12'h0EC;
rommem[ 2150] <= 12'hA01;
rommem[ 2151] <= 12'h03F;
rommem[ 2152] <= 12'h006;
rommem[ 2153] <= 12'h0E6;
rommem[ 2154] <= 12'hE04;
rommem[ 2155] <= 12'h0C5;
rommem[ 2156] <= 12'h080;
rommem[ 2157] <= 12'h027;
rommem[ 2158] <= 12'h004;
rommem[ 2159] <= 12'h0C6;
rommem[ 2160] <= 12'h05D;
rommem[ 2161] <= 12'h03F;
rommem[ 2162] <= 12'h002;
rommem[ 2163] <= 12'h0C6;
rommem[ 2164] <= 12'h02C;
rommem[ 2165] <= 12'h03F;
rommem[ 2166] <= 12'h002;
rommem[ 2167] <= 12'h0E6;
rommem[ 2168] <= 12'hE04;
rommem[ 2169] <= 12'h08D;
rommem[ 2170] <= 12'h1CF;
rommem[ 2171] <= 12'h03F;
rommem[ 2172] <= 12'h002;
rommem[ 2173] <= 12'h0C6;
rommem[ 2174] <= 12'h02D;
rommem[ 2175] <= 12'h03F;
rommem[ 2176] <= 12'h002;
rommem[ 2177] <= 12'h03F;
rommem[ 2178] <= 12'h002;
rommem[ 2179] <= 12'h035;
rommem[ 2180] <= 12'h004;
rommem[ 2181] <= 12'h0C5;
rommem[ 2182] <= 12'h100;
rommem[ 2183] <= 12'h127;
rommem[ 2184] <= 12'h000;
rommem[ 2185] <= 12'h18E;
rommem[ 2186] <= 12'h0C5;
rommem[ 2187] <= 12'h080;
rommem[ 2188] <= 12'h126;
rommem[ 2189] <= 12'h000;
rommem[ 2190] <= 12'h189;
rommem[ 2191] <= 12'h0C6;
rommem[ 2192] <= 12'h05D;
rommem[ 2193] <= 12'h03F;
rommem[ 2194] <= 12'h002;
rommem[ 2195] <= 12'h016;
rommem[ 2196] <= 12'h000;
rommem[ 2197] <= 12'h182;
rommem[ 2198] <= 12'h0C1;
rommem[ 2199] <= 12'h00B;
rommem[ 2200] <= 12'h026;
rommem[ 2201] <= 12'h031;
rommem[ 2202] <= 12'h0C6;
rommem[ 2203] <= 12'h044;
rommem[ 2204] <= 12'h03F;
rommem[ 2205] <= 12'h002;
rommem[ 2206] <= 12'h0E6;
rommem[ 2207] <= 12'hE04;
rommem[ 2208] <= 12'h0C5;
rommem[ 2209] <= 12'h080;
rommem[ 2210] <= 12'h027;
rommem[ 2211] <= 12'h004;
rommem[ 2212] <= 12'h0C6;
rommem[ 2213] <= 12'h05D;
rommem[ 2214] <= 12'h03F;
rommem[ 2215] <= 12'h002;
rommem[ 2216] <= 12'h0C6;
rommem[ 2217] <= 12'h02C;
rommem[ 2218] <= 12'h03F;
rommem[ 2219] <= 12'h002;
rommem[ 2220] <= 12'h0E6;
rommem[ 2221] <= 12'hE04;
rommem[ 2222] <= 12'h08D;
rommem[ 2223] <= 12'h19A;
rommem[ 2224] <= 12'h03F;
rommem[ 2225] <= 12'h002;
rommem[ 2226] <= 12'h0C6;
rommem[ 2227] <= 12'h02D;
rommem[ 2228] <= 12'h03F;
rommem[ 2229] <= 12'h002;
rommem[ 2230] <= 12'h03F;
rommem[ 2231] <= 12'h002;
rommem[ 2232] <= 12'h035;
rommem[ 2233] <= 12'h004;
rommem[ 2234] <= 12'h0C5;
rommem[ 2235] <= 12'h100;
rommem[ 2236] <= 12'h127;
rommem[ 2237] <= 12'h000;
rommem[ 2238] <= 12'h159;
rommem[ 2239] <= 12'h0C5;
rommem[ 2240] <= 12'h080;
rommem[ 2241] <= 12'h126;
rommem[ 2242] <= 12'h000;
rommem[ 2243] <= 12'h154;
rommem[ 2244] <= 12'h0C6;
rommem[ 2245] <= 12'h05D;
rommem[ 2246] <= 12'h03F;
rommem[ 2247] <= 12'h002;
rommem[ 2248] <= 12'h016;
rommem[ 2249] <= 12'h000;
rommem[ 2250] <= 12'h14D;
rommem[ 2251] <= 12'h0C1;
rommem[ 2252] <= 12'h00C;
rommem[ 2253] <= 12'h026;
rommem[ 2254] <= 12'h038;
rommem[ 2255] <= 12'h0E6;
rommem[ 2256] <= 12'hA00;
rommem[ 2257] <= 12'h01D;
rommem[ 2258] <= 12'h03F;
rommem[ 2259] <= 12'h006;
rommem[ 2260] <= 12'h0E6;
rommem[ 2261] <= 12'hE04;
rommem[ 2262] <= 12'h0C5;
rommem[ 2263] <= 12'h080;
rommem[ 2264] <= 12'h027;
rommem[ 2265] <= 12'h004;
rommem[ 2266] <= 12'h0C6;
rommem[ 2267] <= 12'h05D;
rommem[ 2268] <= 12'h03F;
rommem[ 2269] <= 12'h002;
rommem[ 2270] <= 12'h0C6;
rommem[ 2271] <= 12'h02C;
rommem[ 2272] <= 12'h03F;
rommem[ 2273] <= 12'h002;
rommem[ 2274] <= 12'h0E6;
rommem[ 2275] <= 12'hE04;
rommem[ 2276] <= 12'h08D;
rommem[ 2277] <= 12'h164;
rommem[ 2278] <= 12'h0C6;
rommem[ 2279] <= 12'h050;
rommem[ 2280] <= 12'h03F;
rommem[ 2281] <= 12'h002;
rommem[ 2282] <= 12'h0C6;
rommem[ 2283] <= 12'h043;
rommem[ 2284] <= 12'h03F;
rommem[ 2285] <= 12'h002;
rommem[ 2286] <= 12'h0C6;
rommem[ 2287] <= 12'h02D;
rommem[ 2288] <= 12'h03F;
rommem[ 2289] <= 12'h002;
rommem[ 2290] <= 12'h03F;
rommem[ 2291] <= 12'h002;
rommem[ 2292] <= 12'h035;
rommem[ 2293] <= 12'h004;
rommem[ 2294] <= 12'h0C5;
rommem[ 2295] <= 12'h100;
rommem[ 2296] <= 12'h127;
rommem[ 2297] <= 12'h000;
rommem[ 2298] <= 12'h11D;
rommem[ 2299] <= 12'h0C5;
rommem[ 2300] <= 12'h080;
rommem[ 2301] <= 12'h126;
rommem[ 2302] <= 12'h000;
rommem[ 2303] <= 12'h118;
rommem[ 2304] <= 12'h0C6;
rommem[ 2305] <= 12'h05D;
rommem[ 2306] <= 12'h03F;
rommem[ 2307] <= 12'h002;
rommem[ 2308] <= 12'h016;
rommem[ 2309] <= 12'h000;
rommem[ 2310] <= 12'h111;
rommem[ 2311] <= 12'h0C1;
rommem[ 2312] <= 12'h00D;
rommem[ 2313] <= 12'h026;
rommem[ 2314] <= 12'h037;
rommem[ 2315] <= 12'h0EC;
rommem[ 2316] <= 12'hA01;
rommem[ 2317] <= 12'h03F;
rommem[ 2318] <= 12'h006;
rommem[ 2319] <= 12'h0E6;
rommem[ 2320] <= 12'hE04;
rommem[ 2321] <= 12'h0C5;
rommem[ 2322] <= 12'h080;
rommem[ 2323] <= 12'h027;
rommem[ 2324] <= 12'h004;
rommem[ 2325] <= 12'h0C6;
rommem[ 2326] <= 12'h05D;
rommem[ 2327] <= 12'h03F;
rommem[ 2328] <= 12'h002;
rommem[ 2329] <= 12'h0C6;
rommem[ 2330] <= 12'h02C;
rommem[ 2331] <= 12'h03F;
rommem[ 2332] <= 12'h002;
rommem[ 2333] <= 12'h0E6;
rommem[ 2334] <= 12'hE04;
rommem[ 2335] <= 12'h08D;
rommem[ 2336] <= 12'h129;
rommem[ 2337] <= 12'h0C6;
rommem[ 2338] <= 12'h050;
rommem[ 2339] <= 12'h03F;
rommem[ 2340] <= 12'h002;
rommem[ 2341] <= 12'h0C6;
rommem[ 2342] <= 12'h043;
rommem[ 2343] <= 12'h03F;
rommem[ 2344] <= 12'h002;
rommem[ 2345] <= 12'h0C6;
rommem[ 2346] <= 12'h02D;
rommem[ 2347] <= 12'h03F;
rommem[ 2348] <= 12'h002;
rommem[ 2349] <= 12'h03F;
rommem[ 2350] <= 12'h002;
rommem[ 2351] <= 12'h035;
rommem[ 2352] <= 12'h004;
rommem[ 2353] <= 12'h0C5;
rommem[ 2354] <= 12'h100;
rommem[ 2355] <= 12'h127;
rommem[ 2356] <= 12'h000;
rommem[ 2357] <= 12'h0E2;
rommem[ 2358] <= 12'h0C5;
rommem[ 2359] <= 12'h080;
rommem[ 2360] <= 12'h126;
rommem[ 2361] <= 12'h000;
rommem[ 2362] <= 12'h0DD;
rommem[ 2363] <= 12'h0C6;
rommem[ 2364] <= 12'h05D;
rommem[ 2365] <= 12'h03F;
rommem[ 2366] <= 12'h002;
rommem[ 2367] <= 12'h016;
rommem[ 2368] <= 12'h000;
rommem[ 2369] <= 12'h0D6;
rommem[ 2370] <= 12'h0C1;
rommem[ 2371] <= 12'h00E;
rommem[ 2372] <= 12'h026;
rommem[ 2373] <= 12'h03B;
rommem[ 2374] <= 12'h0E6;
rommem[ 2375] <= 12'hA00;
rommem[ 2376] <= 12'h03F;
rommem[ 2377] <= 12'h005;
rommem[ 2378] <= 12'h0EC;
rommem[ 2379] <= 12'hA01;
rommem[ 2380] <= 12'h03F;
rommem[ 2381] <= 12'h006;
rommem[ 2382] <= 12'h0E6;
rommem[ 2383] <= 12'hE04;
rommem[ 2384] <= 12'h0C5;
rommem[ 2385] <= 12'h080;
rommem[ 2386] <= 12'h027;
rommem[ 2387] <= 12'h004;
rommem[ 2388] <= 12'h0C6;
rommem[ 2389] <= 12'h05D;
rommem[ 2390] <= 12'h03F;
rommem[ 2391] <= 12'h002;
rommem[ 2392] <= 12'h0C6;
rommem[ 2393] <= 12'h02C;
rommem[ 2394] <= 12'h03F;
rommem[ 2395] <= 12'h002;
rommem[ 2396] <= 12'h0E6;
rommem[ 2397] <= 12'hE04;
rommem[ 2398] <= 12'h08D;
rommem[ 2399] <= 12'h0EA;
rommem[ 2400] <= 12'h0C6;
rommem[ 2401] <= 12'h050;
rommem[ 2402] <= 12'h03F;
rommem[ 2403] <= 12'h002;
rommem[ 2404] <= 12'h0C6;
rommem[ 2405] <= 12'h043;
rommem[ 2406] <= 12'h03F;
rommem[ 2407] <= 12'h002;
rommem[ 2408] <= 12'h0C6;
rommem[ 2409] <= 12'h02D;
rommem[ 2410] <= 12'h03F;
rommem[ 2411] <= 12'h002;
rommem[ 2412] <= 12'h03F;
rommem[ 2413] <= 12'h002;
rommem[ 2414] <= 12'h035;
rommem[ 2415] <= 12'h004;
rommem[ 2416] <= 12'h0C5;
rommem[ 2417] <= 12'h100;
rommem[ 2418] <= 12'h127;
rommem[ 2419] <= 12'h000;
rommem[ 2420] <= 12'h0A3;
rommem[ 2421] <= 12'h0C5;
rommem[ 2422] <= 12'h080;
rommem[ 2423] <= 12'h126;
rommem[ 2424] <= 12'h000;
rommem[ 2425] <= 12'h09E;
rommem[ 2426] <= 12'h0C6;
rommem[ 2427] <= 12'h05D;
rommem[ 2428] <= 12'h03F;
rommem[ 2429] <= 12'h002;
rommem[ 2430] <= 12'h016;
rommem[ 2431] <= 12'h000;
rommem[ 2432] <= 12'h097;
rommem[ 2433] <= 12'h0C6;
rommem[ 2434] <= 12'h05B;
rommem[ 2435] <= 12'h03F;
rommem[ 2436] <= 12'h002;
rommem[ 2437] <= 12'h0EC;
rommem[ 2438] <= 12'hA01;
rommem[ 2439] <= 12'h03F;
rommem[ 2440] <= 12'h006;
rommem[ 2441] <= 12'h0C6;
rommem[ 2442] <= 12'h05D;
rommem[ 2443] <= 12'h03F;
rommem[ 2444] <= 12'h002;
rommem[ 2445] <= 12'h016;
rommem[ 2446] <= 12'h000;
rommem[ 2447] <= 12'h088;
rommem[ 2448] <= 12'h0C1;
rommem[ 2449] <= 12'h006;
rommem[ 2450] <= 12'h026;
rommem[ 2451] <= 12'h013;
rommem[ 2452] <= 12'h07D;
rommem[ 2453] <= 12'h000;
rommem[ 2454] <= 12'h15F;
rommem[ 2455] <= 12'h027;
rommem[ 2456] <= 12'h004;
rommem[ 2457] <= 12'h0E6;
rommem[ 2458] <= 12'hA01;
rommem[ 2459] <= 12'h03F;
rommem[ 2460] <= 12'h005;
rommem[ 2461] <= 12'h0EC;
rommem[ 2462] <= 12'hA01;
rommem[ 2463] <= 12'h03F;
rommem[ 2464] <= 12'h006;
rommem[ 2465] <= 12'h07F;
rommem[ 2466] <= 12'h000;
rommem[ 2467] <= 12'h15F;
rommem[ 2468] <= 12'h016;
rommem[ 2469] <= 12'h000;
rommem[ 2470] <= 12'h071;
rommem[ 2471] <= 12'h0C1;
rommem[ 2472] <= 12'h003;
rommem[ 2473] <= 12'h026;
rommem[ 2474] <= 12'h00B;
rommem[ 2475] <= 12'h0C6;
rommem[ 2476] <= 12'h023;
rommem[ 2477] <= 12'h03F;
rommem[ 2478] <= 12'h002;
rommem[ 2479] <= 12'h0E6;
rommem[ 2480] <= 12'hA00;
rommem[ 2481] <= 12'h03F;
rommem[ 2482] <= 12'h005;
rommem[ 2483] <= 12'h016;
rommem[ 2484] <= 12'h000;
rommem[ 2485] <= 12'h062;
rommem[ 2486] <= 12'h0C1;
rommem[ 2487] <= 12'h007;
rommem[ 2488] <= 12'h026;
rommem[ 2489] <= 12'h00A;
rommem[ 2490] <= 12'h0C6;
rommem[ 2491] <= 12'h023;
rommem[ 2492] <= 12'h03F;
rommem[ 2493] <= 12'h002;
rommem[ 2494] <= 12'h0EC;
rommem[ 2495] <= 12'hA01;
rommem[ 2496] <= 12'h03F;
rommem[ 2497] <= 12'h006;
rommem[ 2498] <= 12'h020;
rommem[ 2499] <= 12'h054;
rommem[ 2500] <= 12'h0C1;
rommem[ 2501] <= 12'h009;
rommem[ 2502] <= 12'h026;
rommem[ 2503] <= 12'h006;
rommem[ 2504] <= 12'h0E6;
rommem[ 2505] <= 12'hA00;
rommem[ 2506] <= 12'h08D;
rommem[ 2507] <= 12'h0AD;
rommem[ 2508] <= 12'h020;
rommem[ 2509] <= 12'h04A;
rommem[ 2510] <= 12'h0C1;
rommem[ 2511] <= 12'h121;
rommem[ 2512] <= 12'h025;
rommem[ 2513] <= 12'h023;
rommem[ 2514] <= 12'h0C1;
rommem[ 2515] <= 12'h12F;
rommem[ 2516] <= 12'h022;
rommem[ 2517] <= 12'h01F;
rommem[ 2518] <= 12'h0C4;
rommem[ 2519] <= 12'h0FF;
rommem[ 2520] <= 12'h08E;
rommem[ 2521] <= 12'hFF8;
rommem[ 2522] <= 12'h506;
rommem[ 2523] <= 12'h058;
rommem[ 2524] <= 12'h058;
rommem[ 2525] <= 12'h03A;
rommem[ 2526] <= 12'h0E6;
rommem[ 2527] <= 12'h800;
rommem[ 2528] <= 12'h03F;
rommem[ 2529] <= 12'h002;
rommem[ 2530] <= 12'h0E6;
rommem[ 2531] <= 12'h800;
rommem[ 2532] <= 12'h03F;
rommem[ 2533] <= 12'h002;
rommem[ 2534] <= 12'h0E6;
rommem[ 2535] <= 12'h800;
rommem[ 2536] <= 12'h03F;
rommem[ 2537] <= 12'h002;
rommem[ 2538] <= 12'h0E6;
rommem[ 2539] <= 12'h800;
rommem[ 2540] <= 12'h03F;
rommem[ 2541] <= 12'h002;
rommem[ 2542] <= 12'h0C6;
rommem[ 2543] <= 12'h020;
rommem[ 2544] <= 12'h03F;
rommem[ 2545] <= 12'h002;
rommem[ 2546] <= 12'h016;
rommem[ 2547] <= 12'hFFF;
rommem[ 2548] <= 12'hC63;
rommem[ 2549] <= 12'h08E;
rommem[ 2550] <= 12'h000;
rommem[ 2551] <= 12'h000;
rommem[ 2552] <= 12'h0E1;
rommem[ 2553] <= 12'h80A;
rommem[ 2554] <= 12'h000;
rommem[ 2555] <= 12'hFF8;
rommem[ 2556] <= 12'h546;
rommem[ 2557] <= 12'h026;
rommem[ 2558] <= 12'h006;
rommem[ 2559] <= 12'h08E;
rommem[ 2560] <= 12'hFF8;
rommem[ 2561] <= 12'h566;
rommem[ 2562] <= 12'h016;
rommem[ 2563] <= 12'hFFF;
rommem[ 2564] <= 12'hC27;
rommem[ 2565] <= 12'h030;
rommem[ 2566] <= 12'h001;
rommem[ 2567] <= 12'h08C;
rommem[ 2568] <= 12'h000;
rommem[ 2569] <= 12'h01F;
rommem[ 2570] <= 12'h025;
rommem[ 2571] <= 12'hFEC;
rommem[ 2572] <= 12'h0C6;
rommem[ 2573] <= 12'h03F;
rommem[ 2574] <= 12'h03F;
rommem[ 2575] <= 12'h002;
rommem[ 2576] <= 12'h03F;
rommem[ 2577] <= 12'h002;
rommem[ 2578] <= 12'h03F;
rommem[ 2579] <= 12'h002;
rommem[ 2580] <= 12'h03F;
rommem[ 2581] <= 12'h002;
rommem[ 2582] <= 12'h020;
rommem[ 2583] <= 12'h000;
rommem[ 2584] <= 12'h07F;
rommem[ 2585] <= 12'h000;
rommem[ 2586] <= 12'h15F;
rommem[ 2587] <= 12'h03F;
rommem[ 2588] <= 12'h003;
rommem[ 2589] <= 12'h19C;
rommem[ 2590] <= 12'h926;
rommem[ 2591] <= 12'h125;
rommem[ 2592] <= 12'hFFF;
rommem[ 2593] <= 12'hBED;
rommem[ 2594] <= 12'h03F;
rommem[ 2595] <= 12'h000;
rommem[ 2596] <= 12'h020;
rommem[ 2597] <= 12'hFFC;
rommem[ 2598] <= 12'h058;
rommem[ 2599] <= 12'h059;
rommem[ 2600] <= 12'h053;
rommem[ 2601] <= 12'h055;
rommem[ 2602] <= 12'h044;
rommem[ 2603] <= 12'h020;
rommem[ 2604] <= 12'h058;
rommem[ 2605] <= 12'h020;
rommem[ 2606] <= 12'h059;
rommem[ 2607] <= 12'h020;
rommem[ 2608] <= 12'h055;
rommem[ 2609] <= 12'h020;
rommem[ 2610] <= 12'h053;
rommem[ 2611] <= 12'h020;
rommem[ 2612] <= 12'h050;
rommem[ 2613] <= 12'h043;
rommem[ 2614] <= 12'h020;
rommem[ 2615] <= 12'h020;
rommem[ 2616] <= 12'h020;
rommem[ 2617] <= 12'h020;
rommem[ 2618] <= 12'h041;
rommem[ 2619] <= 12'h020;
rommem[ 2620] <= 12'h042;
rommem[ 2621] <= 12'h020;
rommem[ 2622] <= 12'h043;
rommem[ 2623] <= 12'h043;
rommem[ 2624] <= 12'h044;
rommem[ 2625] <= 12'h050;
rommem[ 2626] <= 12'h020;
rommem[ 2627] <= 12'h020;
rommem[ 2628] <= 12'h020;
rommem[ 2629] <= 12'h020;
rommem[ 2630] <= 12'h020;
rommem[ 2631] <= 12'h020;
rommem[ 2632] <= 12'h020;
rommem[ 2633] <= 12'h020;
rommem[ 2634] <= 12'h0C4;
rommem[ 2635] <= 12'h600;
rommem[ 2636] <= 12'h059;
rommem[ 2637] <= 12'h059;
rommem[ 2638] <= 12'h059;
rommem[ 2639] <= 12'h059;
rommem[ 2640] <= 12'h04F;
rommem[ 2641] <= 12'h034;
rommem[ 2642] <= 12'h040;
rommem[ 2643] <= 12'h01F;
rommem[ 2644] <= 12'h003;
rommem[ 2645] <= 12'h0A6;
rommem[ 2646] <= 12'hC0A;
rommem[ 2647] <= 12'h000;
rommem[ 2648] <= 12'hFF8;
rommem[ 2649] <= 12'hA26;
rommem[ 2650] <= 12'h035;
rommem[ 2651] <= 12'h040;
rommem[ 2652] <= 12'h01E;
rommem[ 2653] <= 12'h089;
rommem[ 2654] <= 12'h039;
rommem[ 2655] <= 12'h034;
rommem[ 2656] <= 12'h014;
rommem[ 2657] <= 12'h08E;
rommem[ 2658] <= 12'hFF8;
rommem[ 2659] <= 12'hA2A;
rommem[ 2660] <= 12'h058;
rommem[ 2661] <= 12'h0A6;
rommem[ 2662] <= 12'h815;
rommem[ 2663] <= 12'h01E;
rommem[ 2664] <= 12'h089;
rommem[ 2665] <= 12'h03F;
rommem[ 2666] <= 12'h002;
rommem[ 2667] <= 12'h01E;
rommem[ 2668] <= 12'h089;
rommem[ 2669] <= 12'h030;
rommem[ 2670] <= 12'h001;
rommem[ 2671] <= 12'h0E6;
rommem[ 2672] <= 12'h88D;
rommem[ 2673] <= 12'h0C1;
rommem[ 2674] <= 12'h020;
rommem[ 2675] <= 12'h027;
rommem[ 2676] <= 12'h002;
rommem[ 2677] <= 12'h03F;
rommem[ 2678] <= 12'h002;
rommem[ 2679] <= 12'h035;
rommem[ 2680] <= 12'h094;
rommem[ 2681] <= 12'h034;
rommem[ 2682] <= 12'h004;
rommem[ 2683] <= 12'h059;
rommem[ 2684] <= 12'h059;
rommem[ 2685] <= 12'h059;
rommem[ 2686] <= 12'h059;
rommem[ 2687] <= 12'h0C4;
rommem[ 2688] <= 12'h00F;
rommem[ 2689] <= 12'h08D;
rommem[ 2690] <= 12'hFDC;
rommem[ 2691] <= 12'h0C6;
rommem[ 2692] <= 12'h02C;
rommem[ 2693] <= 12'h03F;
rommem[ 2694] <= 12'h002;
rommem[ 2695] <= 12'h0E6;
rommem[ 2696] <= 12'hE04;
rommem[ 2697] <= 12'h0C4;
rommem[ 2698] <= 12'h00F;
rommem[ 2699] <= 12'h08D;
rommem[ 2700] <= 12'hFD2;
rommem[ 2701] <= 12'h035;
rommem[ 2702] <= 12'h084;
rommem[ 2703] <= 12'h034;
rommem[ 2704] <= 12'h006;
rommem[ 2705] <= 12'h0CC;
rommem[ 2706] <= 12'hFF8;
rommem[ 2707] <= 12'hA9E;
rommem[ 2708] <= 12'h0DD;
rommem[ 2709] <= 12'h800;
rommem[ 2710] <= 12'h035;
rommem[ 2711] <= 12'h086;
rommem[ 2712] <= 12'h034;
rommem[ 2713] <= 12'h006;
rommem[ 2714] <= 12'h0DD;
rommem[ 2715] <= 12'h800;
rommem[ 2716] <= 12'h035;
rommem[ 2717] <= 12'h086;
rommem[ 2718] <= 12'h0E7;
rommem[ 2719] <= 12'hC00;
rommem[ 2720] <= 12'h039;
rommem[ 2721] <= 12'h0CE;
rommem[ 2722] <= 12'h000;
rommem[ 2723] <= 12'h160;
rommem[ 2724] <= 12'h0E6;
rommem[ 2725] <= 12'hC00;
rommem[ 2726] <= 12'h027;
rommem[ 2727] <= 12'h004;
rommem[ 2728] <= 12'h03F;
rommem[ 2729] <= 12'h002;
rommem[ 2730] <= 12'h020;
rommem[ 2731] <= 12'hFF8;
rommem[ 2732] <= 12'h039;
rommem[ 2733] <= 12'h0C6;
rommem[ 2734] <= 12'h001;
rommem[ 2735] <= 12'h01F;
rommem[ 2736] <= 12'h09B;
rommem[ 2737] <= 12'h0CC;
rommem[ 2738] <= 12'hFFF;
rommem[ 2739] <= 12'hFFF;
rommem[ 2740] <= 12'h01F;
rommem[ 2741] <= 12'h001;
rommem[ 2742] <= 12'h03F;
rommem[ 2743] <= 12'h007;
rommem[ 2744] <= 12'h18E;
rommem[ 2745] <= 12'h000;
rommem[ 2746] <= 12'h000;
rommem[ 2747] <= 12'h03F;
rommem[ 2748] <= 12'h009;
rommem[ 2749] <= 12'h0C4;
rommem[ 2750] <= 12'h1FF;
rommem[ 2751] <= 12'h04F;
rommem[ 2752] <= 12'h0C3;
rommem[ 2753] <= 12'h000;
rommem[ 2754] <= 12'h0C8;
rommem[ 2755] <= 12'h0ED;
rommem[ 2756] <= 12'hA09;
rommem[ 2757] <= 12'hE10;
rommem[ 2758] <= 12'h000;
rommem[ 2759] <= 12'h01F;
rommem[ 2760] <= 12'h010;
rommem[ 2761] <= 12'h0C4;
rommem[ 2762] <= 12'h0FF;
rommem[ 2763] <= 12'h04F;
rommem[ 2764] <= 12'h0C3;
rommem[ 2765] <= 12'h000;
rommem[ 2766] <= 12'h040;
rommem[ 2767] <= 12'h0ED;
rommem[ 2768] <= 12'hA09;
rommem[ 2769] <= 12'hE10;
rommem[ 2770] <= 12'h001;
rommem[ 2771] <= 12'h031;
rommem[ 2772] <= 12'h208;
rommem[ 2773] <= 12'h18C;
rommem[ 2774] <= 12'h000;
rommem[ 2775] <= 12'h100;
rommem[ 2776] <= 12'h025;
rommem[ 2777] <= 12'hFE1;
rommem[ 2778] <= 12'h0CC;
rommem[ 2779] <= 12'hFFF;
rommem[ 2780] <= 12'hFFF;
rommem[ 2781] <= 12'h015;
rommem[ 2782] <= 12'h0FD;
rommem[ 2783] <= 12'hFFF;
rommem[ 2784] <= 12'hE10;
rommem[ 2785] <= 12'h3D0;
rommem[ 2786] <= 12'h015;
rommem[ 2787] <= 12'h0FD;
rommem[ 2788] <= 12'hFFF;
rommem[ 2789] <= 12'hE10;
rommem[ 2790] <= 12'h3D2;
rommem[ 2791] <= 12'h18E;
rommem[ 2792] <= 12'h000;
rommem[ 2793] <= 12'h000;
rommem[ 2794] <= 12'h03F;
rommem[ 2795] <= 12'h009;
rommem[ 2796] <= 12'h0C4;
rommem[ 2797] <= 12'h015;
rommem[ 2798] <= 12'h0C0;
rommem[ 2799] <= 12'h008;
rommem[ 2800] <= 12'h0E7;
rommem[ 2801] <= 12'hA09;
rommem[ 2802] <= 12'h001;
rommem[ 2803] <= 12'h040;
rommem[ 2804] <= 12'h084;
rommem[ 2805] <= 12'h00F;
rommem[ 2806] <= 12'h080;
rommem[ 2807] <= 12'h008;
rommem[ 2808] <= 12'h0A7;
rommem[ 2809] <= 12'hA09;
rommem[ 2810] <= 12'h001;
rommem[ 2811] <= 12'h040;
rommem[ 2812] <= 12'h031;
rommem[ 2813] <= 12'h201;
rommem[ 2814] <= 12'h18C;
rommem[ 2815] <= 12'h000;
rommem[ 2816] <= 12'h020;
rommem[ 2817] <= 12'h025;
rommem[ 2818] <= 12'hFE7;
rommem[ 2819] <= 12'h18E;
rommem[ 2820] <= 12'h049;
rommem[ 2821] <= 12'h3E0;
rommem[ 2822] <= 12'h031;
rommem[ 2823] <= 12'h3FF;
rommem[ 2824] <= 12'h026;
rommem[ 2825] <= 12'hFFC;
rommem[ 2826] <= 12'h08E;
rommem[ 2827] <= 12'h000;
rommem[ 2828] <= 12'h000;
rommem[ 2829] <= 12'h18E;
rommem[ 2830] <= 12'h000;
rommem[ 2831] <= 12'h000;
rommem[ 2832] <= 12'h0A6;
rommem[ 2833] <= 12'h809;
rommem[ 2834] <= 12'hE10;
rommem[ 2835] <= 12'h000;
rommem[ 2836] <= 12'h0AB;
rommem[ 2837] <= 12'hA09;
rommem[ 2838] <= 12'h001;
rommem[ 2839] <= 12'h040;
rommem[ 2840] <= 12'h0A7;
rommem[ 2841] <= 12'h809;
rommem[ 2842] <= 12'hE10;
rommem[ 2843] <= 12'h000;
rommem[ 2844] <= 12'h0A6;
rommem[ 2845] <= 12'h809;
rommem[ 2846] <= 12'hE10;
rommem[ 2847] <= 12'h001;
rommem[ 2848] <= 12'h0AB;
rommem[ 2849] <= 12'hA09;
rommem[ 2850] <= 12'h001;
rommem[ 2851] <= 12'h080;
rommem[ 2852] <= 12'h0A7;
rommem[ 2853] <= 12'h809;
rommem[ 2854] <= 12'hE10;
rommem[ 2855] <= 12'h001;
rommem[ 2856] <= 12'h030;
rommem[ 2857] <= 12'h008;
rommem[ 2858] <= 12'h031;
rommem[ 2859] <= 12'h201;
rommem[ 2860] <= 12'h18C;
rommem[ 2861] <= 12'h000;
rommem[ 2862] <= 12'h020;
rommem[ 2863] <= 12'h025;
rommem[ 2864] <= 12'hFDF;
rommem[ 2865] <= 12'h04F;
rommem[ 2866] <= 12'h05F;
rommem[ 2867] <= 12'h03F;
rommem[ 2868] <= 12'h001;
rommem[ 2869] <= 12'h0C1;
rommem[ 2870] <= 12'h003;
rommem[ 2871] <= 12'h026;
rommem[ 2872] <= 12'hFCD;
rommem[ 2873] <= 12'h0CC;
rommem[ 2874] <= 12'h000;
rommem[ 2875] <= 12'h000;
rommem[ 2876] <= 12'h01F;
rommem[ 2877] <= 12'h001;
rommem[ 2878] <= 12'h03F;
rommem[ 2879] <= 12'h007;
rommem[ 2880] <= 12'h03F;
rommem[ 2881] <= 12'h000;
rommem[ 2882] <= 12'h020;
rommem[ 2883] <= 12'hFFC;
/boot/dramtest.asm
0,0 → 1,99
; ============================================================================
; __
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
; \ __ / All rights reserved.
; \/_// robfinch<remove>@opencores.org
; ||
;
;
; BSD 3-Clause License
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
; 1. Redistributions of source code must retain the above copyright notice, this
; list of conditions and the following disclaimer.
;
; 2. Redistributions in binary form must reproduce the above copyright notice,
; this list of conditions and the following disclaimer in the documentation
; and/or other materials provided with the distribution.
;
; 3. Neither the name of the copyright holder nor the names of its
; contributors may be used to endorse or promote products derived from
; this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;
; ============================================================================
;
OPT include "d:\cores2022\rf6809\software\boot\mon_equates.asm"
OPT include "d:\cores2022\rf6809\software\boot\io_equates.asm"
 
org $FFD400
 
; Local RAM test routine
; Checkerboard testing.
; There is 70kB of local RAM
; Does not use any RAM including no stack
 
dramtest:
ldy #$10000 ; DRAM starts here
lda #1
sta LEDS
ldu #$AAA555
swi
fcb MF_CRLF
dramtest1:
deca
bne dramtest4
tfr y,d
swi
fcb MF_DisplayWordAsHex
ldb #CR
swi
fcb MF_OUTCH
dramtest4:
stu ,y++
cmpy #$E00000 ; DRAM ends here
blo dramtest1
; now readback values and compare
ldy #$10000
lda #1
swi
fcb MF_CRLF
dramtest3:
deca
bne dramtest5
tfr y,d
swi
fcb MF_DisplayWordAsHex
ldb #CR
swi
fcb MF_OUTCH
dramtest5:
cmpu ,y++
bne dramerr
cmpy #$E00000
blo dramtest3
lda #2
sta LEDS
swi
fcb MF_Monitor
dramerr:
lda #$80
sta LEDS
ldx #TEXTSCR
ldb COREID
abx
lda #'F'
sta ,x
swi
fcb MF_Monitor
/boot/dramtest.s19
0,0 → 1,7
S1013FFD40018E0100000860010150B7FFFE600010CEAAA55503F00304A945
S1013FFD41002600801F02003F0060C600D03F0020EFA0118CE00000025F78
S1013FFD420FEE18E01000008600103F00304A02600801F02003F0060C67B8
S1013FFD43000D03F0022A3A0102600E18CE00000025FEC0860020150B7DA8
S1013FFD440FFFE6000103F0000860800150B7FFFE6000108EE00000015E3B
S100EFFD4500F6FFFFFFFE003A0860460A780403F0000E0
S9030000FC

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.