Hi all
Oops that went off before I was finished with it.
I suspect that I can figure out from the pattern of I/O
accesses
which devices are at which address in the memory map, at least if I
bring up an emulation in MAME. That should at least allow writing
new code for it, and _maybe_ even figuring out which CRT controller
the video hardware uses and where in the memory map it is. (I
suspect the 6845 and/or 6847 just from the time period, but who
knows? Gotta see what it actually do when trying to show the âIPL
IN PROGRESSâ string contained in the ROM, or one of the couple
error strings
)
As far as I can tell this is where a character gets displayed.
; character in +1(A6)
00FFCE0C : 48E7 C000 MOVEM.L D0,D1,-(A7)
00FFCE10 : 302B 06AC MOVE.W +1708(A3),D0 ; get something
00FFCE14 : 6122 BSR $00FFCE38 ; do something
00FFCE16 : 0040 8000 ORI.W #$8000,D0
00FFCE1A : 11C0 8001 MOVE.B D0,$00FF8001 ; Low byte
00FFCE1E : E048 LSR.W #8,D0
00FFCE20 : 11C0 8003 MOVE.B D0,$00FF8003 ; High byte
00FFCE24 : 11EE 0001 8005 MOVE.B +1(A6),$00FF8005 ; Character
00FFCE2A : 0838 0006 801B BTST #6,$00FF801B ; Wait
for a flag
00FFCE30 : 66F8 BNE $00FFCE2A
00FFCE32 : 4CDF 0003 MOVEM.L (A7)+,D0,D1
00FFCE36 : 4E75 RTS
; Here with something (from $06AC(A3)) in D0
; current guess, it's the cursor position, which then gets translated
; to an X and a Y byte in D0.w
00FFCE38 : 0C2B 0050 06B7 CMPI.B #$50,+1719(A3)
00FFCE3E : 6628 BNE $00FFCE68 ; Return
00FFCE40 : 48C0 EXT.L D0
00FFCE42 : 81FC 0050 DIVS #$0050,D0
00FFCE46 : 4840 SWAP D0
00FFCE48 : 3200 MOVE.W D0,D1
00FFCE4A : 4840 SWAP D0
00FFCE4C : ED48 LSL.W #6,D0
00FFCE4E : 0C01 0040 CMPI.B #$40,D1
00FFCE52 : 6C08 BGE $00FFCE5C
00FFCE54 : 11FC 0000 8013 MOVE.B #$00,$00FF8013
00FFCE5A : 600A BRA $00FFCE66
00FFCE5C : 0441 0040 SUBI.W #$0040,D1
00FFCE60 : 11FC 0001 8013 MOVE.B #$01,$00FF8013
00FFCE66 : 8041 OR.W D1,D0
00FFCE68 : 4E75 RTS
Or maybe it's talking to a chip (not 6845 which is memory mapped or
7220 which has two registers only) and someone recognises it?
W