To complete it's transformation to english ( Y for yes, and not J ) apply the following
Code: Select all
00001096: 4A 59
00001104: 4A 59
0000118B: 4A 59
00001287: 4A 59
0000138E: 4A 59
00001665: 4A 59
This becomes clear when you look at the routine at $B9CA
Code: Select all
ROM:B9CA sub_B9CA: ; CODE XREF: ROM:B074p
ROM:B9CA LDA $4060
ROM:B9CD CMP #$55 ; 'U'
ROM:B9CF BEQ loc_BA08
ROM:B9D1 LDA $4061
ROM:B9D4 CMP #$55 ; 'U'
ROM:B9D6 BEQ loc_BA08
ROM:B9D8 JSR sub_B97B
ROM:B9DB LDA #0
ROM:B9DD STA $89
ROM:B9DF LDA #$F
ROM:B9E1 STA $8A
ROM:B9E3
ROM:B9E3 loc_B9E3: ; CODE XREF: sub_B9CA+27j
ROM:B9E3 LDY $89
ROM:B9E5 INC $89
ROM:B9E7 LDA $89
ROM:B9E9 STA $4070,Y
ROM:B9EC JSR sub_B97B
ROM:B9EF DEC $8A
ROM:B9F1 BNE loc_B9E3
ROM:B9F3 LDY $89
ROM:B9F5 LDA #$55 ; 'U'
ROM:B9F7 STA $4070,Y
ROM:B9FA JSR sub_B97B
ROM:B9FD LDA #$F
ROM:B9FF STA $8B
ROM:BA01
ROM:BA01 loc_BA01: ; CODE XREF: sub_B9CA+3Cj
ROM:BA01 JSR sub_B98D
ROM:BA04 DEC $8B
ROM:BA06 BNE loc_BA01
ROM:BA08
ROM:BA08 loc_BA08: ; CODE XREF: sub_B9CA+5j
ROM:BA08 ; sub_B9CA+Cj
ROM:BA08 JSR sub_B97B
ROM:BA0B LDA #$55 ; 'U'
ROM:BA0D STA $4060
ROM:BA10 JSR sub_B97B
ROM:BA13 LDA #$55 ; 'U'
ROM:BA15 STA $4061
ROM:BA18 JSR sub_B97B
ROM:BA1B RTS
When you update a screen, the data is then written back to screen number * 128 + $4000. So screen 1 as at $4080, 2 at $4100 and so on.
The EEPROM data is loaded to $7000, then mirrored to $4000 - this is why the program still works in emulators which don't block writing to ROM space.
Here's the "code" at $7000, magically mirrored to $4000
Code: Select all
00000000 33 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3...............
00000010 BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000020 DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000030 EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000040 F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000050 FB FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000060 55 55 FF FF FF FF FF FF FF FF FF FF FF FF FF FF UU..............
00000070 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 55 ...............U
00000080 48 45 4C 4C 4F 21 20 20 48 45 4C 4C 4F 21 20 20 HELLO! HELLO!
00000090 20 49 20 41 4D 20 54 48 45 20 20 20 20 4E 45 57 I AM THE NEW
000000A0 20 43 4F 4D 50 55 54 45 52 20 20 20 46 52 4F 4D COMPUTER FROM
000000B0 20 53 41 4E 59 4F 20 20 20 43 52 45 41 54 49 56 SANYO CREATIV
000000C0 49 53 49 4F 4E 20 12 16 71 FF FF FF FF FF FF FF ISION ..q.......
000000D0 FF FB FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000E0 FF FD FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000F0 FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000100 20 41 54 20 50 52 45 53 45 4E 54 20 49 20 20 20 AT PRESENT I
00000110 41 4D 20 41 43 54 49 56 45 20 20 20 49 4E 20 41 AM ACTIVE IN A
$4070-$407E contain the sequence of display. $80 is the first screen, text followed by $12, $16 and $71.
These bytes are just border, banner and font colours. Knowing this, you can put together better colour schemes than the UI permits
The good news is that the CSL does have RAM at $4000 - so it will be possible to have an 8K loadable program, and a separate 2K loadable banner set.
With the original Multicart - it would be interesting to know what this image does on real hardware. If you can change the text / outputs - I would be interested to know where the 2K RAM is being taken from.