Fixes for Disk ][ recalibrate code

This commit is contained in:
burniouf 2022-06-22 08:26:44 +02:00
parent 8b82b95e6a
commit 3d98f90fb4
17 changed files with 446 additions and 368 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -16,14 +16,14 @@ BSX.HeadSelect asl A = 0/2
lda IO.D2.Ph0Off+4,x lda IO.D2.Ph0Off+4,x
rts rts
*-------------------------------------- *--------------------------------------
BSX.Recalibrate lda #168 BSX.Recalibrate ldy BSX.Slotn0
ldy BSX.Slotn0
lda IO.D2.Ph0On,y lda IO.D2.Ph0On,y
lda #IO.D2.SeekTimeR lda #IO.D2.SeekTimeR
jsr BSX.Wait100usecA jsr BSX.Wait100usecA
lda #168
.1 dec .1 dec
dec dec

View File

@ -216,8 +216,7 @@ CODE.PushFromPtr
rts rts
*-------------------------------------- *--------------------------------------
CODE.PushConstP CODE.PushConstP lda #$A9 LDA #imm
lda #$A9 LDA #imm
jsr CODE.EmitByte jsr CODE.EmitByte
bcs .9 bcs .9
@ -406,8 +405,6 @@ CODE.DSSelect clc
>PUSHB.G CC.hOutFile >PUSHB.G CC.hOutFile
>PUSHWI 0 >PUSHWI 0
* >PUSHWI 0
* >PUSHBI SEEK.END
lda ZPCCConst lda ZPCCConst
clc clc
@ -417,6 +414,7 @@ CODE.DSSelect clc
adc PCC.FH+PCC.FH.IDATA+1 adc PCC.FH+PCC.FH.IDATA+1
sec sec
sbc #$20 sbc #$20
>PUSHYA >PUSHYA
>PUSHBI SEEK.SET >PUSHBI SEEK.SET

View File

@ -1,7 +1,7 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
CC.Init >SYSCALL SListNew CC.CORE.Init >SYSCALL SListNew
bcs .9 bcs .9
>STA.G CC.hDefines >STA.G CC.hDefines
@ -14,8 +14,16 @@ CC.Init >SYSCALL SListNew
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9
>STA.G CC.hSymbols >STA.G CC.hScopes
sty ScopePtr sty ScopeIdx
>LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPSymBufPtr
txa
>STA.G CC.hSymBuf
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
@ -25,21 +33,28 @@ CC.Init >SYSCALL SListNew
txa txa
>STA.G CC.hStack >STA.G CC.hStack
lda #CC.LookupIdx
tay
sta (pData),y
* clc * clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CC.Quit ldy ScopePtr CC.CORE.Quit jsr CS.RUN.FClose
bne CC.CORE.Quit
ldy ScopeIdx
beq .1 beq .1
.10 lda (pData),y .10 lda (pData),y
>SYSCALL SListFree >SYSCALL SListFree
ldy ScopePtr ldy ScopeIdx
cpy #CC.hSymbols cpy #CC.hScopes
beq .1 beq .1
dec ScopePtr dec ScopeIdx
dey dey
bra .10 bra .10
@ -55,16 +70,12 @@ CC.Quit ldy ScopePtr
.4 >LDA.G CC.hDefineBuf .4 >LDA.G CC.hDefineBuf
jsr .7 jsr .7
>LDA.G CC.hLookupSymBuf
jsr .7
.5 jsr CS.RUN.FClose
bne .5
>LDA.G CC.hSymBuf >LDA.G CC.hSymBuf
jsr .7 jsr .7
jsr CC.SYM.LookupFreeAll
>LDA.G CC.hStack >LDA.G CC.hStack
.7 beq CC.Quit.RTS .7 beq CC.Quit.RTS
@ -144,7 +155,7 @@ CC.CompileLine.1
bcs .59 bcs .59
ldx #SYM.SC.STATIC Y,A = Type/Qual ldx #SYM.SC.STATIC Y,A = Type/Qual
bit ScopenCnt bit bLocalScope
bpl .25 bpl .25
bit #SYM.Q.FUNC someone wants to add a local f() ? bit #SYM.Q.FUNC someone wants to add a local f() ?
@ -168,10 +179,7 @@ CC.CompileLine.1
jsr CC.GetNextCharNB skip '{' jsr CC.GetNextCharNB skip '{'
bcs .69 bcs .69
jsr CC.SYM.Store jmp CC.SYM.StoreF
bcs .29
jmp CC.SYM.Free
*-------------------------------------- *--------------------------------------
* TODO: AOPS * TODO: AOPS
@ -194,7 +202,7 @@ CC.CompileLine.1
.28 jsr CC.SYM.Store .28 jsr CC.SYM.Store
bcs .9 bcs .9
jsr CC.SYM.Free
bra .68 bra .68
*-------------------------------------- *--------------------------------------
@ -210,7 +218,7 @@ CC.CompileLine.1
jsr CC.GetNextCharNB skip '{' jsr CC.GetNextCharNB skip '{'
bcs .99 bcs .99
jmp CC.CompileLine.1 jmp CC.CompileLine.1
*-------------------------------------- *--------------------------------------
.50 >LDYA L.CC.KW .50 >LDYA L.CC.KW
jsr CC.LookupID jsr CC.LookupID
@ -352,36 +360,20 @@ CC.SListLookup >PUSHA hSList
>SYSCALL SListLookup >SYSCALL SListLookup
bcs .99 bcs .99
* pha save KeyID
* phy
>PUSHA KeyID.HI >PUSHA KeyID.HI
tya tya
>PUSHA KeyID.LO >PUSHA KeyID.LO
jsr CC.SkipX jsr CC.SkipX
.1 >PUSHWZ allocate >PUSHWZ allocate
>PUSHWI 65535 all >PUSHWI 65535 all
>PUSHWZ From Start >PUSHWZ From Start
>SYSCALL SListGetData >SYSCALL SListGetData
bcs .9
>STYA.G CC.LookupSymSize .9 rts Y,A = SymSize, X = hSymBuf
txa
>STA.G CC.hLookupSymBuf
>SYSCALL GetMemPtr
* clc Y,A = SymPtr, X = hSymBuf
rts .99 inc pStack discard extra hSList
.9 plx
plx
rts
.99 inc pStack
rts rts
*-------------------------------------- *--------------------------------------
CC.ZPLookupPtrAddAp1 CC.ZPLookupPtrAddAp1
@ -393,23 +385,26 @@ CC.ZPLookupPtrAddAp1
inc ZPLookupPtr+1 inc ZPLookupPtr+1
.1 rts .1 rts
*-------------------------------------- *--------------------------------------
CC.GetDefine >LDYA ZPLineBufPtr CC.GetDefine >LDA.G CC.hDefines
>STYA.G CC.SaveDefine
>LDA.G CC.hDefines
jsr CC.SListLookup jsr CC.SListLookup
bcs .9 bcs .9
>STYA ZPLineBufPtr >LDYA ZPLineBufPtr
>STYA.G CC.SaveDefine
txa txa
>STA.G CC.hDefineBuf >STA.G CC.hDefineBuf
>SYSCALL GetMemPtr
>STYA ZPLineBufPtr
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
* CT Stack * CT Stack
*-------------------------------------- *--------------------------------------
CC.PushTQ ldy #SYM.Q CC.PushTQ ldy #SYM.Q
lda (ZPSymBufPtr),y lda (ZPSymBufPtr),y
and #$FC ignore SYM.Q.FUNC+SYM.Q.FASTCALL
jsr CC.Push jsr CC.Push
bcs CC.Push.RTS bcs CC.Push.RTS
@ -449,16 +444,16 @@ CC.PopYA ldy CStackPtr
iny iny
sty CStackPtr sty CStackPtr
ply ply
clc clc
rts rts
.90 pla .90 pla
.9 lda #E.STACKERROR .9 lda #E.STACKERROR
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CC.Pop ldy CStackPtr CC.Pop ldy CStackPtr
beq .9 beq .9

View File

@ -20,7 +20,7 @@ CC.DECL jsr CC.IsLetter
bcs .99 bcs .99
ldx #SYM.SC.STATIC Y,A = Type/Qual ldx #SYM.SC.STATIC Y,A = Type/Qual
bit ScopenCnt bit bLocalScope
bpl .21 bpl .21
bit #SYM.Q.FUNC someone wants to add a local f() ? bit #SYM.Q.FUNC someone wants to add a local f() ?
@ -50,7 +50,7 @@ CC.DECL jsr CC.IsLetter
.29 bcs .99 .29 bcs .99
jsr CC.SYM.Free
clv clv
clc clc

View File

@ -204,8 +204,21 @@ CC.EXP.CheckGetSymType
clc clc
rts rts
.1 >LDYA ZPPtr2 .1 lda ZPPtr2
jmp CC.SYM.CheckTypeYA cmp (ZPLookupSymPtr) #SYM.T
bne .9
lda ZPPtr2+1
ldy #SYM.Q
cmp (ZPLookupSymPtr),y
bne .9
clc
rts
.9 lda #E.TMISMATCH
sec
rts
*-------------------------------------- *--------------------------------------
CC.EXP.Cast jsr CC.TYPE.Decl CC.EXP.Cast jsr CC.TYPE.Decl
bcs .99 bcs .99
@ -410,7 +423,7 @@ CC.EXP.Get >LDYA L.CC.AOPS
lda ZPPtr2 target T lda ZPPtr2 target T
beq .3 beq .3
lda (ZPLookupSymPtr) SYM.T lda (ZPLookupSymPtr) SYM.T
cmp #SYM.T.VOID cmp #SYM.T.VOID
beq .2 beq .2
@ -423,7 +436,7 @@ CC.EXP.Get >LDYA L.CC.AOPS
cmp (ZPLookupSymPtr),y cmp (ZPLookupSymPtr),y
bne .9 bne .9
.3 lda (ZPLookupSymPtr) SYM.T .3 lda (ZPLookupSymPtr) SYM.T
sta ZPPtr2 T sta ZPPtr2 T
pha pha
ldy #SYM.Q ldy #SYM.Q
@ -545,7 +558,7 @@ CC.EXP.PushDeref
lda #$85 STA zp lda #$85 STA zp
jsr CODE.EmitByte jsr CODE.EmitByte
lda #ZPPtr1+1 lda #ZS.RT.Ptr1+1
jsr CODE.EmitByte jsr CODE.EmitByte
ldy #SYM.Addr ldy #SYM.Addr
@ -554,7 +567,7 @@ CC.EXP.PushDeref
lda #$85 STA zp lda #$85 STA zp
jsr CODE.EmitByte jsr CODE.EmitByte
lda #ZPPtr1+1 lda #ZS.RT.Ptr1+1
jsr CODE.EmitByte jsr CODE.EmitByte
jsr CODE.Deref jsr CODE.Deref

View File

@ -6,11 +6,6 @@ CC.F.Decl stz LocalPtr
jsr CC.PushTQ push T/Q for RETURN jsr CC.PushTQ push T/Q for RETURN
bcs .99 bcs .99
ldy #SYM.Q
lda #SYM.Q.FUNC
ora (ZPSymBufPtr),y
sta (ZPSymBufPtr),y
ldx #$80 CPStmt.fDef state ldx #$80 CPStmt.fDef state
jsr CC.STMT.CPStmt jsr CC.STMT.CPStmt
bcs .99 bcs .99
@ -37,15 +32,7 @@ CC.F.Decl stz LocalPtr
jsr CC.IsLetter jsr CC.IsLetter
bcs .2 bcs .2
>LDYA ZPPtr2 jsr CC.F.NewArg
ldx #SYM.SC.AUTO
jsr CC.SYM.New
bcs .99
jsr CC.SYM.Store Store f() Args in Local scope
bcs .99
jsr CC.SYM.Free
bcs .99 bcs .99
jsr CC.GetCharNB jsr CC.GetCharNB
@ -141,6 +128,29 @@ CC.F.DeclGetTQ lda (ZPLineBufPtr)
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
CC.F.NewArg >LDYA.G CC.SymID
>STYA.G CC.SymIDSave
>LEA.G CC.ArgBuf
>STYA ZPSymBufPtr
>LDYA ZPPtr2
ldx #SYM.SC.AUTO
jsr CC.SYM.New
bcs .9
jsr CC.SYM.StoreL Store f() Args in Local scope
bcs .9
>LDA.G CC.hSymBuf
>SYSCALL GetMemPtr
>STYA ZPSymBufPtr
>LDYA.G CC.SymIDSave
>STYA.G CC.SymID
.9 rts
*--------------------------------------
CC.F.Def.END jsr CODE.Leave CC.F.Def.END jsr CODE.Leave
jsr CC.Pop T jsr CC.Pop T
@ -154,14 +164,24 @@ CC.F.Def.END jsr CODE.Leave
rts rts
*-------------------------------------- *--------------------------------------
CC.F.AddTQ pha CC.F.AddTQ pha
tya phy
ldy ZPSymSize
ldy #SYM.DefSize
lda (ZPSymBufPtr),y
pha
inc
inc
sta (ZPSymBufPtr),y
ply
pla
sta (ZPSymBufPtr),y sta (ZPSymBufPtr),y
iny iny
pla pla
sta (ZPSymBufPtr),y sta (ZPSymBufPtr),y
iny
sty ZPSymSize
rts rts
*-------------------------------------- *--------------------------------------
* in : ZPSymPtr * in : ZPSymPtr
@ -182,7 +202,7 @@ CC.F.CallRetV sec
phx phx
>STYA ZPPtr2 >STYA ZPPtr2
>DEBUG
ror ZPPtr1+1 bRetV ror ZPPtr1+1 bRetV
bpl .20 no return value on stack bpl .20 no return value on stack
@ -204,13 +224,13 @@ CC.F.CallRetV sec
beq .1 no check required beq .1 no check required
cpy ZPPtr2 cpy ZPPtr2
bne .91 bne .24
tax save full Q tax save full Q
and #$fC ignore SYM.Q.FUNC,SYM.Q.FASTCALL and #$fC ignore SYM.Q.FUNC,SYM.Q.FASTCALL
cmp ZPPtr2+1 cmp ZPPtr2+1
bne .91 .24 bne .91
txa txa
@ -401,7 +421,12 @@ CC.F.Call3 ldy #SYM.Addr+1
clc clc
rts rts
.2 lda #$20 JSR abs .2 lda #$EA
jsr CODE.EmitByte
lda #$EA
jsr CODE.EmitByte
lda #$20 JSR abs
jsr CODE.TOABSYX Y=HI,X=LO jsr CODE.TOABSYX Y=HI,X=LO
clc clc
rts rts
@ -411,12 +436,12 @@ CC.F.Call3 ldy #SYM.Addr+1
lda #5 leave room for LDX #imm, JSR abs lda #5 leave room for LDX #imm, JSR abs
clc clc
adc ZPCCConst adc ZPCCCode
sta ZPCCConst sta ZPCCCode
bcc .90 bcc .90
inc ZPCCConst+1 inc ZPCCCode+1
.90 clc .90 clc
rts rts

View File

@ -75,11 +75,11 @@ CC.KW.WHILE.END jsr CC.PopYA Get JMP false location
jsr CC.PopYA Get cont: address jsr CC.PopYA Get cont: address
bcs .9 bcs .9
phy phy
tay HI byte tay HI byte
plx plx
lda #$4C JMP cont: lda #$4C JMP cont:
jsr CODE.TOABSYX jsr CODE.TOABSYX
@ -130,7 +130,7 @@ CC.KW.FOR jsr CC.GetCharNB
bcs .9 bcs .9
jsr CC.KW.StackDiscard jsr CC.KW.StackDiscard
jsr CC.GetCharNB jsr CC.GetCharNB
bcs .9 bcs .9
@ -248,7 +248,7 @@ CC.KW.RETURN ldy CStackPtr
.1 iny skip ; or } .1 iny skip ; or }
beq .9 beq .9
lda (ZPCCStack),y lda (ZPCCStack),y
bmi .7 f() bmi .7 f()
@ -264,15 +264,15 @@ CC.KW.RETURN ldy CStackPtr
.7 iny skip bState .7 iny skip bState
iny skip Locals iny skip Locals
iny get SYM.T iny get SYM.T
lda (ZPCCStack),y lda (ZPCCStack),y
pha pha
iny get SYM.Q iny get SYM.Q
lda (ZPCCStack),y lda (ZPCCStack),y
ply ply
jsr CC.EXP.Eval jsr CC.EXP.Eval
@ -281,9 +281,9 @@ CC.KW.RETURN ldy CStackPtr
jsr CC.SYM.GetYASizeOfInAXC Y,A=T/Q jsr CC.SYM.GetYASizeOfInAXC Y,A=T/Q
tax X = sizeof tax X = sizeof
jsr CODE.SetRetValue jsr CODE.SetRetValue
jsr CODE.Leave jsr CODE.Leave
clc clc
rts rts
*-------------------------------------- *--------------------------------------
@ -306,7 +306,7 @@ CC.KW.STRUCT >ENTER 4
tya tya
ldy #1 ldy #1
sta (pStack),y sta (pStack),y
jsr CC.SkipX jsr CC.SkipX
jsr CC.GetNextCharNB jsr CC.GetNextCharNB
@ -340,13 +340,13 @@ CC.KW.BEGIN jsr CC.GetNextCharNB
.7 >LDA.G CC.CmdSave .7 >LDA.G CC.CmdSave
jsr CC.Push jsr CC.Push
bcs .99 bcs .99
lda #';' lda #';'
jmp CC.Push jmp CC.Push
.9 lda #E.CSYN .9 lda #E.CSYN
sec sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
* Input : Value on Stack, Y,A = Type/Qual * Input : Value on Stack, Y,A = Type/Qual
* Output : CC = true, CS = false * Output : CC = true, CS = false

View File

@ -1,42 +1,30 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
CC.Link.RTS rts
CC.Link >LDYA L.MSG.LINKING CC.Link >LDYA L.MSG.LINKING
>SYSCALL Puts >SYSCALL Puts
>LDYAI 256
>SYSCALL GetMem
bcs CC.Link.RTS
>STYA ZPSymBufPtr
txa
>STA.G CC.hSymBuf
ldy #0 ldy #0
lda #0 lda #0
.1 >STYA ZPPtr1 SymID .1 >STYA ZPPtr1 SymID
>PUSHB.G CC.hSymbols >PUSHB.G CC.hScopes
>PUSHW ZPPtr1 SymID >PUSHW ZPPtr1 SymID
>PUSHW pData >PUSHW pData
>SYSCALL SListGetByID >SYSCALL SListGetByID
bcs .8 bcs .8
>STYA ZPPtr2 NextID >STYA ZPPtr2 NextID
>PUSHB.G CC.hSymbols >PUSHB.G CC.hScopes
>PUSHW ZPPtr1 SymID >PUSHW ZPPtr1 SymID
>PUSHW ZPSymBufPtr >PUSHW ZPSymBufPtr
>PUSHWI $ffff All >PUSHWI $ffff All
>PUSHWZ from Start >PUSHWZ from Start
>SYSCALL SListGetData >SYSCALL SListGetData
bcs .9 bcs .9
>STYA ZPSymSize
ldy #SYM.Addr+1 ldy #SYM.Addr+1
lda (ZPSymBufPtr),y lda (ZPSymBufPtr),y
@ -46,7 +34,7 @@ CC.Link >LDYA L.MSG.LINKING
jsr CC.Link.LIBC jsr CC.Link.LIBC
bcc .6 bcc .6
jsr CC.Link.Dump jsr CC.Link.Dump
lda #E.FUNDEF lda #E.FUNDEF
sec sec
@ -54,7 +42,7 @@ CC.Link >LDYA L.MSG.LINKING
.6 >LDA.G bTrace .6 >LDA.G bTrace
bpl .7 bpl .7
jsr CC.Link.Dump jsr CC.Link.Dump
bcs .9 bcs .9
@ -63,13 +51,7 @@ CC.Link >LDYA L.MSG.LINKING
.8 clc .8 clc
.9 php .9 rts
pha
jsr CC.SYM.Free
pla
plp
rts
*-------------------------------------- *--------------------------------------
* Input : pData = Symbol * Input : pData = Symbol
*-------------------------------------- *--------------------------------------
@ -77,7 +59,7 @@ CC.Link.LIBC >LDYA L.CC.LIBC
>STYA ZPLookupPtr >STYA ZPLookupPtr
ldy #$ff ldy #$ff
.10 iny .10 iny
lda (pData),y lda (pData),y
bne .10 bne .10
@ -119,10 +101,13 @@ CC.Link.LIBC >LDYA L.CC.LIBC
plx plx
>PUSHB.G CC.hSymbols >PUSHB.G CC.hScopes
>PUSHW ZPPtr1 SymID >PUSHW ZPPtr1 SymID
>PUSHW ZPSymBufPtr >PUSHW ZPSymBufPtr
>PUSHW ZPSymSize >PUSHBI 0
ldy #SYM.DefSize
lda (ZPSymBufPtr),y
>PUSHA
>SYSCALL SListSetData >SYSCALL SListSetData
rts rts
@ -141,8 +126,11 @@ CC.Link.LIBC >LDYA L.CC.LIBC
rts rts
*-------------------------------------- *--------------------------------------
CC.Link.Dump >PUSHW L.MSG.LINKING2 CC.Link.Dump >PUSHW L.MSG.LINKING2
>PUSHW pData
>PUSHW ZPPtr1 ID
>PUSHW pData Name
>PUSHB (ZPSymBufPtr) SYM.T >PUSHB (ZPSymBufPtr) SYM.T
ldy #1 ldy #1
@ -150,18 +138,21 @@ CC.Link.Dump >PUSHW L.MSG.LINKING2
iny iny
>PUSHB (ZPSymBufPtr),y SYM.SC >PUSHB (ZPSymBufPtr),y SYM.SC
iny
>PUSHB (ZPSymBufPtr),y SYM.DefSize
ldy #SYM.SizeOf+1 ldy #SYM.SizeOf+1
>PUSHB (ZPSymBufPtr),y >PUSHB (ZPSymBufPtr),y
dey dey
>PUSHB (ZPSymBufPtr),y >PUSHB (ZPSymBufPtr),y
ldy #SYM.Addr+1 ldy #SYM.Addr+1
>PUSHB (ZPSymBufPtr),y >PUSHB (ZPSymBufPtr),y
dey dey
>PUSHB (ZPSymBufPtr),y >PUSHB (ZPSymBufPtr),y
>PUSHBI 9 >PUSHBI 12
>SYSCALL PrintF >SYSCALL PrintF
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -7,21 +7,47 @@ NEW
CC.SYM.New >STYA ZPPtr2 T/Q CC.SYM.New >STYA ZPPtr2 T/Q
stx ZPPtr3 SC stx ZPPtr3 SC
ldy ScopePtr bit bPass2
bpl CC.SYM.New1
bit bLocalScope
bmi CC.SYM.New1
>PUSHB.G CC.hScopes Global Scope
>PUSHW ZPLineBufPtr
>SYSCALL SListLookup
bcs .9
>STYA.G CC.SymID Y,A = KeyID
jsr CC.SkipX X = KeyLen
>PUSHB.G CC.hScopes
>PUSHW.G CC.SymID
>PUSHW ZPSymBufPtr
>PUSHWI 65535 all
>PUSHWZ From Start
>SYSCALL SListGetData
bcs .9
jsr CC.GetCharNB
cmp #'('
bne .8
jmp CC.F.Decl
.8 clc
.9 rts Y,A = SymSize
*--------------------------------------
CC.SYM.New1 ldy ScopeIdx
lda (pData),y lda (pData),y
jsr CC.SYM.NewKey jsr CC.SYM.NewKey
bcs .9 bcs .9
>STYA.G CC.SymID Y,A = KeyID >STYA.G CC.SymID Y,A = KeyID
stx ZPPtr3+1 X = KeyLen
>LDYAI 256 jsr CC.SkipX X = KeyLen
>SYSCALL GetMem
bcs .9
>STYA ZPSymBufPtr
txa
>STA.G CC.hSymBuf
lda ZPPtr2 lda ZPPtr2
sta (ZPSymBufPtr) #SYM.T sta (ZPSymBufPtr) #SYM.T
@ -41,12 +67,10 @@ CC.SYM.New >STYA ZPPtr2 T/Q
iny iny
cpy #SYM.Def cpy #SYM.Def
bne .1 bne .1
sty ZPSymSize
stz ZPSymSize+1
ldx ZPPtr3+1 Key Len tya
jsr CC.SkipX ldy #SYM.DefSize
sta (ZPSymBufPtr),y
jsr CC.GetCharNB jsr CC.GetCharNB
bcs CC.SYM.SetAddr bcs CC.SYM.SetAddr
@ -54,6 +78,11 @@ CC.SYM.New >STYA ZPPtr2 T/Q
cmp #'(' cmp #'('
bne CC.SYM.NewV bne CC.SYM.NewV
ldy #SYM.Q
lda #SYM.Q.FUNC
ora (ZPSymBufPtr),y
sta (ZPSymBufPtr),y
jmp CC.F.Decl jmp CC.F.Decl
.9 rts .9 rts
@ -187,68 +216,57 @@ CC.SYM.SetAddrL jsr CC.SYM.GetSymSizeOfInAXC
*-------------------------------------- *--------------------------------------
CC.SYM.NewKey >PUSHA CC.SYM.NewKey >PUSHA
>PUSHW ZPLineBufPtr >PUSHW ZPLineBufPtr
>SYSCALL SListNewKey
bcs .9
.9 rts Y,A = KeyID, X = KeyLen
*--------------------------------------
CC.SYM.StoreF >LDA.G CC.hScopes
bit bPass2 bit bPass2
bpl .1 bpl CC.SYM.Store.1
clc
rts
*--------------------------------------
CC.SYM.Store bit bPass2
bpl CC.SYM.StoreL Store Global & Local at Pass 1
txa bit bLocalScope Store Local at Pass 2
bne .1 bmi CC.SYM.StoreL
>SYSCALL SListLookup
* clc
clc
rts rts
.1 >SYSCALL SListNewKey CC.SYM.StoreL ldy ScopeIdx
rts Y,A = KeyID, X = KeyLen
*--------------------------------------
CC.SYM.Store ldy ScopePtr
lda (pData),y lda (pData),y
>PUSHA
CC.SYM.Store.1 >PUSHA
>PUSHW.G CC.SymID >PUSHW.G CC.SymID
>PUSHW ZPSymBufPtr >PUSHW ZPSymBufPtr
>PUSHW ZPSymSize >PUSHBI 0
ldy #SYM.DefSize
lda (ZPSymBufPtr),y
>PUSHA
bit bPass2 >SYSCALL SListAddData
bpl .1
bit ScopenCnt
bmi .1
>SYSCALL SListSetData
rts
.1 >SYSCALL SListAddData
rts rts
*-------------------------------------- *--------------------------------------
CC.SYM.Free >LDA.G CC.hSymBuf CC.SYM.NewScope ldy ScopeIdx
beq .8 cpy #CC.hScopes+SCOPE.MAX
>SYSCALL FreeMem
bcs .99
>STZ.G CC.hSymBuf
.99 rts
.8 clc
rts
*--------------------------------------
CC.SYM.NewScope ldy ScopePtr
cpy #CC.hSymbols+SCOPE.MAX
bcs .9 bcs .9
>SYSCALL SListNew >SYSCALL SListNew
bcs .99 bcs .99
inc ScopePtr inc ScopeIdx
ldy ScopePtr ldy ScopeIdx
sta (pData),y sta (pData),y
dec ScopenCnt dec bLocalScope
clc clc
rts rts
@ -257,19 +275,23 @@ CC.SYM.NewScope ldy ScopePtr
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CC.SYM.FreeScope CC.SYM.FreeScope
ldy ScopePtr ldy ScopeIdx
cpy #CC.hSymbols cpy #CC.hScopes
beq * beq *
lda (pData),y lda (pData),y
>SYSCALL SListFree >SYSCALL SListFree
dec ScopePtr dec ScopeIdx
inc ScopenCnt inc bLocalScope
rts rts
*-------------------------------------- *--------------------------------------
CC.SYM.Lookup >PUSHB ScopePtr CC.SYM.Lookup >LDA.G CC.LookupIdx
cmp #CC.LookupIdx+LOOKUP.MAX
beq .99
>PUSHB ScopeIdx
.1 tay .1 tay
lda (pData),y lda (pData),y
@ -277,7 +299,7 @@ CC.SYM.Lookup >PUSHB ScopePtr
bcc .8 bcc .8
lda (pstack) lda (pstack)
cmp #CC.hSymbols cmp #CC.hScopes
beq .9 beq .9
dec dec
@ -291,22 +313,59 @@ CC.SYM.Lookup >PUSHB ScopePtr
rts rts
.8 inc pStack .8 inc pStack
>STYA.G CC.LookupSymSize
>INC.G CC.LookupIdx
tay
txa
sta (pdata),y
>SYSCALL GetMemPtr
>STYA ZPLookupSymPtr >STYA ZPLookupSymPtr
* clc
rts
.99 lda #E.OOH
* sec
rts
*--------------------------------------
CC.SYM.LookupFree
>LDA.G CC.LookupIdx
cmp #CC.LookupIdx
beq .9
tay
lda (pdata),y
>SYSCALL FreeMem
bcs .99
>DEC.G CC.LookupIdx
cmp #CC.LookupIdx
beq .8
tay
lda (pdata),y
>SYSCALL GetMemPtr
>STYA ZPLookupSymPtr
.8 clc
rts
.9 lda E.INVH
* sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CC.SYM.LookupFree CC.SYM.LookupFreeAll
>LDA.G CC.hLookupSymBuf
>SYSCALL FreeMem .1 jsr CC.SYM.LookupFree
bcs .99 bcc .1
>STZ.G CC.hLookupSymBuf clc
rts rts
.99 >DEBUG
rts
*-------------------------------------- *--------------------------------------
* Y,A = value T/Q * Y,A = value T/Q
*-------------------------------------- *--------------------------------------

View File

@ -12,6 +12,7 @@ NEW
*-------------------------------------- *--------------------------------------
FILES.MAX .EQ 4 FILES.MAX .EQ 4
SCOPE.MAX .EQ 16 SCOPE.MAX .EQ 16
LOOKUP.MAX .EQ 16
*-------------------------------------- *--------------------------------------
SYM.T .EQ 0 SYM.T .EQ 0
SYM.T.VOID .EQ 1 SYM.T.VOID .EQ 1
@ -42,10 +43,10 @@ SYM.SC.EXTERN .EQ 6
SYM.SC.TYPEDEF .EQ 8 SYM.SC.TYPEDEF .EQ 8
SYM.SC.DEFINE .EQ 10 SYM.SC.DEFINE .EQ 10
SYM.SC.TAG .EQ 12 SYM.SC.TAG .EQ 12
* SYM.DefSize .EQ 3
SYM.SizeOf .EQ 4 SYM.SizeOf .EQ 4
SYM.Addr .EQ 6 SYM.Addr .EQ 6
SYM.Def .EQ 8 SYM.Def .EQ 8 Funtions : fTQ,a1TQ,a2TQ....
* *
SYM .EQ 10 SYM .EQ 10
*-------------------------------------- *--------------------------------------
@ -79,13 +80,13 @@ ZPLookupPtr .BS 2
CStackPtr .BS 1 CStackPtr .BS 1
LocalPtr .BS 1 LocalPtr .BS 1
ScopePtr .BS 1 ScopeIdx .BS 1
ScopenCnt .BS 1 bLocalScope .BS 1
ZPSymBufPtr .BS 2
* .BS 1 * .BS 1
* .BS 1 * .BS 1
ZPSymSize .BS 2
ZPSymBufPtr .BS 2
ZPLookupSymPtr .BS 2 ZPLookupSymPtr .BS 2
@ -114,7 +115,7 @@ CS.START cld
*-------------------------------------- *--------------------------------------
L.MSG.GREETINGS .DA MSG.GREETINGS L.MSG.GREETINGS .DA MSG.GREETINGS
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.COMPILING .DA MSG.COMPILING L.MSG.READING .DA MSG.READING
L.MSG.LINKING .DA MSG.LINKING L.MSG.LINKING .DA MSG.LINKING
L.MSG.LINKING2 .DA MSG.LINKING2 L.MSG.LINKING2 .DA MSG.LINKING2
L.MSG.GENERATING .DA MSG.GENERATING L.MSG.GENERATING .DA MSG.GENERATING
@ -257,7 +258,7 @@ CS.RUN >PUSHW L.MSG.GREETINGS
jsr CS.RUN.ARGS jsr CS.RUN.ARGS
bcs CS.INIT.RTS bcs CS.INIT.RTS
jsr CC.Init jsr CC.CORE.Init
bcs CS.INIT.RTS bcs CS.INIT.RTS
jsr CODE.Init jsr CODE.Init
@ -377,7 +378,7 @@ CS.RUN.FOpen1st >LDA.G CC.InFileArg
CS.RUN.FOpen phy CS.RUN.FOpen phy
pha pha
>PUSHW L.MSG.COMPILING >PUSHW L.MSG.READING
pla pla
pha pha
>PUSHYA >PUSHYA
@ -499,7 +500,7 @@ CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT jsr CODE.Quit CS.QUIT jsr CODE.Quit
jsr CC.Quit jsr CC.CORE.Quit
>LDA.G hLineBuf >LDA.G hLineBuf
beq .8 beq .8
@ -561,10 +562,10 @@ PrintDebugMsg >PUSHW L.MSG.DEBUG
.1 >PUSHYA .1 >PUSHYA
lda ScopePtr lda ScopeIdx
sec sec
sbc #CC.hSymbols sbc #CC.hScopes
>PUSHA >PUSHA
>PUSHBI 15 >PUSHBI 15
>SYSCALL PrintF >SYSCALL PrintF
@ -642,7 +643,7 @@ PrintSummary lda ZPCCCode+1
>SYSCALL PrintF >SYSCALL PrintF
rts rts
*-------------------------------------- *--------------------------------------
CheckMain >PUSHB.G CC.hSymbols CheckMain >PUSHB.G CC.hScopes
>PUSHW L.CC.MAIN >PUSHW L.CC.MAIN
>SYSCALL SListLookup >SYSCALL SListLookup
@ -650,42 +651,35 @@ CheckMain >PUSHB.G CC.hSymbols
>STYA ZPPtr1 SymID >STYA ZPPtr1 SymID
>PUSHB.G CC.hSymbols >PUSHB.G CC.hScopes
>PUSHW ZPPtr1 SymID >PUSHW ZPPtr1 SymID
>PUSHWZ allocate >PUSHW ZPSymBufPtr
>PUSHWI 65535 all >PUSHWI 65535 all
>PUSHWZ From Start >PUSHWZ From Start
>SYSCALL SListGetData >SYSCALL SListGetData
.9 bcs .99 bcs .99
>STYA ZPPtr2
ldy #SYM.Addr ldy #SYM.Addr
lda (ZPPtr2),y lda (ZPSymBufPtr),y
iny iny
ora (ZPPtr2),y ora (ZPSymBufPtr),y
beq .90 beq .9
lda (ZPPtr2),y lda (ZPSymBufPtr),y
sta PCC.FH+PCC.FH.MAIN+1 sta PCC.FH+PCC.FH.MAIN+1
dey dey
lda (ZPPtr2),y lda (ZPSymBufPtr),y
sta PCC.FH+PCC.FH.MAIN sta PCC.FH+PCC.FH.MAIN
txa * clc
>SYSCALL FreeMem
rts rts
.90 txa .9 >LDYA L.MSG.NOMAIN
>SYSCALL FreeMem
.99 >LDYA L.MSG.NOMAIN
>SYSCALL puts >SYSCALL puts
lda #E.CSYN lda #E.CSYN
sec sec
rts .99 rts
*-------------------------------------- *--------------------------------------
.INB usr/src/bin/cc.s.code .INB usr/src/bin/cc.s.code
.INB usr/src/bin/cc.s.core .INB usr/src/bin/cc.s.core
@ -709,12 +703,12 @@ MSG.USAGE .AS "Usage : CC <option> srcfile.c dstfile\r\n"
.AS " -D : Debug Mode\r\n" .AS " -D : Debug Mode\r\n"
.AS " -T : Trace On" .AS " -T : Trace On"
.AZ "\r\n" .AZ "\r\n"
MSG.COMPILING .AZ "*** Compiling file: %s\r\n" MSG.READING .AZ "*** Reading file: %s\r\n"
MSG.LINKING .AZ "*** Linking..." MSG.LINKING .AZ "*** Linking..."
MSG.LINKING2 .AZ "*** %18s T=%h, Q=%b, SC=%h, SizeOf=%H, @=%H\r\n" MSG.LINKING2 .AZ "*** %H:%18s T/Q=%h/%h, SC=%h, Def=%h, SizeOf=%H, @=%H\r\n"
MSG.GENERATING .AZ "*** Generating: %s\r\n" MSG.GENERATING .AZ "*** Generating: %s\r\n"
MSG.DEBUG .AS "*** pCode=%H, pConst=%H, pData=%H, pStack=%H\r\n" MSG.DEBUG .AS "*** pCode=%H, pConst=%H, pData=%H, pStack=%H\r\n"
.AZ " LSP=%h, CSP=%H:%h>%h:%h, ScopePtr=%h\r\n" .AZ " LSP=%h, CSP=%H:%h>%h:%h, ScopeIdx=%h\r\n"
MSG.TRACE .AZ "%5D> %s\r\n" MSG.TRACE .AZ "%5D> %s\r\n"
MSG.RTSTK .AZ "<pBase=%H, pVar=%H, (pVar)=%H, pStack=%H>\r\n" MSG.RTSTK .AZ "<pBase=%H, pVar=%H, (pVar)=%H, pStack=%H>\r\n"
MSG.ERROR .AZ " %s^\r\n" MSG.ERROR .AZ " %s^\r\n"
@ -727,6 +721,102 @@ ENV.LIB .AZ "LIB"
OptionList .AS "DdTt" OptionList .AS "DdTt"
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
*-------------------------------------- *--------------------------------------
* PCC = Pre Compiled Code
*--------------------------------------
ZS.RT.Ptr1 .EQ ZPBIN
*--------------------------------------
PCC.FH .PH $2000
PCC.FH.2000 cld
jmp (PCC.FH.JMP,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0 S.PS.F.EVENT
.DA #0
PCC.FH.CSSIZE .EQ *-PCC.FH.2000
.DA $FFFF * Code Size (without Constants)
PCC.FH.DSSIZE .EQ *-PCC.FH.2000
.DA $FFFF * Data Size
.DA #256 Stack Size
.DA #2 ZP Size
.DA 0
PCC.FH.JMP .DA PCC.FH.INIT
.DA PCC.FH.RUN
.DA PCC.FH.DOEVENT
.DA PCC.FH.QUIT
PCC.FH.IDATA .EQ *-PCC.FH.2000
.DA $FFFF
.DA 0
PCC.FH.INIT
* TODO : LoadLib code
PCC.FH.QUIT
* TODO : UnloadLib code
PCC.FH.DOEVENT clc
rts
* int main(int argc, char *argv[]) ;
PCC.FH.RUN ldy #S.PS.ARGC
lda (pPS),y
.1 pha
>SYSCALL ArgV
bcs .2
>STYA ZS.RT.Ptr1
pla
pha
asl
tay
lda ZS.RT.Ptr1
sta (pData),y
lda ZS.RT.Ptr1+1
iny
sta (pData),y
pla
inc
bra .1
.2 pla
>PUSHWI 0 returned int
lda #0
>PUSHA
ldy #S.PS.ARGC
lda (pPS),y
>PUSHA int ARGC
>PUSHW pData *char[] ARGV
>DEBUG
PCC.FH.MAIN .EQ *-PCC.FH.2000+1
jsr $FFFF * jsr main
>PULLA
inc pStack pull returned int
sec
rts
PCC.FH.SYSCALL jsr A2osX.SYSCALL
bcc .8
inc pStack
eor #$ff
inc
>PUSHA int -ERROR code...
ldy #1
lda #$FF
sta (pStack),y on stack
rts
.8
PCC.FH.CS .EP
PCC.FH.L .EQ *-PCC.FH
*--------------------------------------
PCC.DEBUG >DEBUG PCC.DEBUG >DEBUG
PCC.DEBUG.L .EQ *-PCC.DEBUG PCC.DEBUG.L .EQ *-PCC.DEBUG
*-------------------------------------- *--------------------------------------
@ -858,115 +948,15 @@ PCC.PushFromPtr.L .EQ *-PCC.PushFromPtr
*-------------------------------------- *--------------------------------------
PCC.PushConstPAX PCC.PushConstPAX
clc clc
adc PCC.FH.IDATA adc PCC.FH.2000+PCC.FH.IDATA
tay tay
txa txa
adc PCC.FH.IDATA+1 adc PCC.FH.2000+PCC.FH.IDATA+1
>PUSHA >PUSHA
tya tya
>PUSHA >PUSHA
PCC.PushConstPAX.L .EQ *-PCC.PushConstPAX PCC.PushConstPAX.L .EQ *-PCC.PushConstPAX
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.RT.START
ZS.RT.Ptr1 .BS 2
ZS.RT.END .ED
*--------------------------------------
PCC.FH .PH $2000
PCC.FH.2000 cld
jmp (PCC.FH.JMP,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0 S.PS.F.EVENT
.DA #0
PCC.FH.CSSIZE .EQ *-PCC.FH.2000
.DA $FFFF * Code Size (without Constants)
PCC.FH.DSSIZE .EQ *-PCC.FH.2000
.DA $FFFF * Data Size
.DA #256 Stack Size
.DA #ZS.RT.END-ZS.RT.START ZP Size
.DA 0
PCC.FH.JMP .DA PCC.FH.INIT
.DA PCC.FH.RUN
.DA PCC.FH.DOEVENT
.DA PCC.FH.QUIT
PCC.FH.IDATA .EQ *-PCC.FH.2000
.DA $FFFF
.DA 0
PCC.FH.INIT
* TODO : LoadLib code
PCC.FH.QUIT
* TODO : UnloadLib code
PCC.FH.DOEVENT
clc
rts
* int main(int argc, char *argv[]) ;
PCC.FH.RUN ldy #S.PS.ARGC
lda (pPS),y
.1 pha
>SYSCALL ArgV
bcs .2
>STYA ZS.RT.Ptr1
pla
pha
asl
tay
lda ZS.RT.Ptr1
sta (pData),y
lda ZS.RT.Ptr1+1
iny
sta (pData),y
pla
inc
bra .1
.2 pla
>PUSHWI 0 returned int
lda #0
>PUSHA
ldy #S.PS.ARGC
lda (pPS),y
>PUSHA int ARGC
>PUSHW pData *char[] ARGV
>DEBUG
PCC.FH.MAIN .EQ *-PCC.FH.2000+1
jsr $FFFF * jsr main
>PULLA
inc pStack pull returned int
sec
rts
PCC.FH.SYSCALL jsr A2osX.SYSCALL
bcc .8
inc pStack
eor #$ff
inc
>PUSHA int -ERROR code...
ldy #1
lda #$FF
sta (pStack),y on stack
rts
.8
PCC.FH.CS .EP
PCC.FH.L .EQ *-PCC.FH
*-------------------------------------- *--------------------------------------
CC.OPChars .AS "!~+-*/%=&|^<>[" CC.OPChars .AS "!~+-*/%=&|^<>["
CC.OPChars.Cnt .EQ *-CC.OPChars CC.OPChars.Cnt .EQ *-CC.OPChars
@ -1372,6 +1362,10 @@ PathBuf .BS MLI.MAXPATH+1
bDebug .BS 1 bDebug .BS 1
bTrace .BS 1 bTrace .BS 1
CC.InFileArg .BS 1
CC.OutFileArg .BS 1
CC.hOutFile .BS 1
hFilePtr .BS 1 hFilePtr .BS 1
hFiles .BS FILES.MAX hFiles .BS FILES.MAX
@ -1392,18 +1386,17 @@ CC.SaveDefine .BS 2
CC.hTags .BS 1 CC.hTags .BS 1
CC.hStack .BS 1 CC.hStack .BS 1
CC.hSymbols .BS SCOPE.MAX+1 1 Global+ MAX locals CC.hScopes .BS 1+SCOPE.MAX 1 Global+ MAX locals
*-------------------------------------- *--------------------------------------
CC.SymID .BS 2
CC.hSymBuf .BS 1 CC.hSymBuf .BS 1
CC.SymID .BS 2
CC.SymIDSave .BS 2
CC.ArgBuf .BS SYM
*-------------------------------------- *--------------------------------------
CC.hLookupSymBuf .BS 1
CC.LookupSymSize .BS 2 CC.LookupSymSize .BS 2
CC.LookupSymPtr .BS 1 CC.LookupSymPtr .BS 2
*-------------------------------------- CC.LookupIdx .BS 1
CC.InFileArg .BS 1 CC.hLookupBufs .BS LOOKUP.MAX
CC.OutFileArg .BS 1
CC.hOutFile .BS 1
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------

View File

@ -1,7 +1,7 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration IO.D2.SeekTimeR .EQ 42 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 56 LIBBLKDEV Track Formatter IO.D2.SeekTimeF .EQ 56 LIBBLKDEV Track Formatter
IO.D2.SeekTimeB .EQ 56 LIBBLKDEV Boot Block IO.D2.SeekTimeB .EQ 56 LIBBLKDEV Boot Block
IO.D2.SeekTimeP .EQ 28 ProDOS.FX initial IO.D2.SeekTimeP .EQ 28 ProDOS.FX initial

View File

@ -24,14 +24,14 @@ D2.Recalibrate >PULLB D2.DrvSlt
jsr D2.CheckDiskII jsr D2.CheckDiskII
bcs .9 bcs .9
lda #168
ldy D2.Slotn0 ldy D2.Slotn0
lda IO.D2.Ph0On,y lda IO.D2.Ph0On,y
lda #IO.D2.SeekTimeR lda #IO.D2.SeekTimeR
jsr D2.Wait100usecA jsr D2.Wait100usecA
lda #168 41 x 4 Qtracks
.1 dec .1 dec
dec dec
@ -169,10 +169,11 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
bcc .10 bcc .10
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
clc
.10 lda IO.D2.Ph0Off,y .10 lda IO.D2.Ph0Off,y
clc
rts rts
*-------------------------------------- *--------------------------------------
D2.SeekPhOnY and #6 D2.SeekPhOnY and #6

View File

@ -399,32 +399,35 @@ XRW.Write bit IO.D2.ReadProt,x (4) PREWRITE MODE
lda #$FF (2) lda #$FF (2)
* nop (2) nop (2)
nop (2)
sta IO.D2.WriteMode,x (5) goto write mode sta IO.D2.WriteMode,x (5) goto write mode
ora IO.D2.WShift,x (4) ora IO.D2.WShift,x (4)
nop (2)
ldy nbuf2 (4) ldy nbuf2 (4)
sty pcl (3) sty pcl (3)
ldy #5 (2) ldy #5 (2)
nop (2)
.1 pha (3) exact timing. .1 pha (3) exact timing.
pla (4) exact timing. pla (4) exact timing.
jsr wnibl7 (13,9,6) write sync. jsr wnibl7 (18..10) write sync.
dey (2) dey (2)
bne .1 (3) must not cross page ! bne .1 (3) must not cross page !
nop (2)
nop (2)
lda #$D5 (2) 1st data mark lda #$D5 (2) 1st data mark
jsr wnibl9 (15,9,6) jsr wnibl9 (20..10)
lda #$AA (2) 2nd data mark lda #$AA (2) 2nd data mark
jsr wnibl9 (15,9,6) jsr wnibl9 (20..10)
lda #$AD (2) 3rd data mark lda #$AD (2) 3rd data mark
jsr wnibl9 (15,9,6) jsr wnibl9 (20..10)
tya (2) zero checksum tya (2) zero checksum
ldy #$56 (2) nbuf2 index ldy #$56 (2) nbuf2 index
@ -527,7 +530,7 @@ wrefd5 ldx #$60 (2) restore slot. warning: modified by prenib
.1 clc (2) .1 clc (2)
lda XRW.EndMark,y (4) DE AA EB lda XRW.EndMark,y (4) DE AA EB
jsr wnibl (15,6) write it jsr wnibl (11..10) write it
dey (2) dey (2)
bpl .1 (3) if not. bpl .1 (3) if not.
@ -535,7 +538,7 @@ wrefd5 ldx #$60 (2) restore slot. warning: modified by prenib
.2 nop (2) .2 nop (2)
tya (2) Y = $FF from DEY BMI tya (2) Y = $FF from DEY BMI
jsr wnibl (6+9,6) write turn off byte. jsr wnibl (11..10) write turn off byte.
* jsr XRW.Write.RTS (12) * jsr XRW.Write.RTS (12)
* jsr XRW.Write.RTS (12) * jsr XRW.Write.RTS (12)
@ -839,10 +842,10 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end
bcc .10 bcc .10
clc Exit wit CC (recalibrate)
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
clc Exit wit CC (recalibrate)
.10 lda IO.D2.Ph0Off,y .10 lda IO.D2.Ph0Off,y
rts rts