[Coco] Modifying Level1/coco1 for 6309 native mode
L. Curtis Boyle
curtisboyle at sasktel.net
Fri Feb 14 11:54:21 EST 2014
This is exactly what Bill and I did to make NitrOS9 in the first place. :-)
(To be honest, this earliest stage was much more Bill than me).
L. Curtis Boyle
curtisboyle at sasktel.net
On Feb 14, 2014, at 10:47 AM, Robert Gault <robert.gault at att.net> wrote:
> Made some progress with a native 6309 code for the coco1. I can now get as far as a time entry request from setime. The screen waits for a key press and crashes on the first one.
>
> To get this far, you need to edit rbf.asm looking for all the ,u entries. These will need to be compared to level2/rbf.asm and all pertinent entries changed to R$reg,u.
>
> shortly after L02E9 change stx $06,u to stx R$X,u
>
> Seek ldb $0A,y
> bitb #$02
> beq L037B
> lda R$X+1,u $05,u
> ldb R$U,u $08,u
> subd $0C,y
> bne L0376
> lda R$X,u $04,u
> sbca $0B,y
> beq L037F
> L0376 lbsr L0D72
> bcs L0383
> L037B ldd R$X,u $04,u
> std $0B,y
> L037F ldd R$U,u $08,u
> std $0D,y
> L0383 rts
>
> L03BA ldu $06,y
> ldd R$Y,u $06,u
> subd $02,s
> std R$Y,u $06,u
> bra L040E
> L03C4 ldd R$Y,u $06,u
> bsr L03CD
> bcs L03F1
> std R$Y,u $06,u
> rts
>
> L0414 ldd R$X,u $04,u
> ldx R$Y,u $06,u
>
> WriteLn pshs y
> clrb
> ldy R$Y,u $06,u
> beq L0498
> ldx R$X,u $04,u
> L0484 leay -$01,y
> beq L0498
> lda ,x+
> cmpa #$0D
> bne L0484
> tfr y,d
> nega
> negb
> sbca #$00
> addd R$Y,u $06,u
> std R$Y,u $06,u
> L0498 puls y
>
> Write ldd R$Y,u $06,u
>
> GetStat ldb R$B,u $02,u
> cmpb #SS.Opt
> beq L0543
> cmpb #$06
> bne L052F
> clr R$B,u $02,u
> L0529 clra
> ldb #$01
> lbra L03CD
> L052F cmpb #SS.Ready
> bne L0536
> clr R$B,u $02,u
> rts
> L0536 cmpb #SS.Size
> bne L0544
> ldd $0F,y
> std R$X,u $04,u
> ldd <$11,y
> std R$U,u $08,u
> L0543 rts
> L0544 cmpb #SS.Pos
> bne L0551
> ldd $0B,y
> std R$X,u $04,u
> ldd $0D,y
> std R$U,u $08,u
> Gst5FF rts
> L0551 cmpb #SS.FD
> bne SSFDInf
> lbsr L0CD4
> bcs L0543
> ldu $06,y
> ldd R$Y,u was $06,u
> tsta
> beq L0564
> ldd #$0100
> L0564 ldx R$X,u was $04,u
>
> shortly after L05C6
> ldx R$X,u was $04,u
>
> shortly after L0604
> lda R$X+1,u was $05,u
>
>
> It is safe to say that there will be more level1 code which was disassembled without conversion to the R$reg format. When going from 6809 to native 6309 code, the register stack changes and all $nm,u type code referring to registers can fail.
>
> Robert
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
More information about the Coco
mailing list