diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 51f6619d..c676bb36 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 05dbd419..f1f3bc18 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/ACOS.S.CORE.txt b/BIN/ACOS.S.CORE.txt index b4b80fa1..d3cc4a69 100644 --- a/BIN/ACOS.S.CORE.txt +++ b/BIN/ACOS.S.CORE.txt @@ -38,28 +38,28 @@ CORE.Init ldy #CCS.MAX bcs .9 >STA.G hVars - + >LDYAI STRVSEG >SYSCALL StrVNew bcs .9 - + sta hStrings - + >LDYAI 256 >SYSCALL GetMem bcs .9 - + >STYA ZPStrBuf txa >STA.G hStrBuf - + >LDYAI FWREF >SYSCALL GetMem >STYA ZPFWRefBufPtr txa >STA.G hFWRefBuf - + lda #0 sta (ZPFWRefBufPtr) @@ -85,7 +85,7 @@ CORE.Quit lda hStrings *-------------------------------------- CORE.Cleanup ldy #hFWRefBuf jsr CORE.Quit.Freemem - + >LDA.G hVars beq .1 @@ -106,15 +106,15 @@ CORE.Quit.RTS rts CORE.Quit.Freemem lda (pData),y beq .8 - + pha lda #0 sta (pData),y pla - + >SYSCALL FreeMem - -.8 rts + +.8 rts *-------------------------------------- CORE.Compile jsr CORE.GetChar bcs CORE.Quit.RTS @@ -156,7 +156,7 @@ CORE.Compile jsr CORE.GetChar jsr CORE.KW.JMP bcs .99 - + bra .8 *-------------------------------------- .3 jsr CORE.CreateOrGetVar @@ -177,7 +177,7 @@ CORE.Compile jsr CORE.GetChar lda ZPTYPE cmp EXP.TYPE bne .91 - + tax beq .4 @@ -196,10 +196,10 @@ CORE.Compile jsr CORE.GetChar .88 ldy pCCS bmi .89 - + jsr KW.ENDIF bcs .99 - + .89 clc jmp CORE.GetNextChar skip char @@ -220,28 +220,28 @@ CORE.FWREF >LDA.G hFWRefBuf .1 lda (ZPInputBufPtr) beq .8 - + sta ZPPtr1+1 - + jsr CORE.GetNextChar sta ZPPtr1 - + jsr CORE.GetNextChar - + jsr CORE.GetLabel bcs .9 - + lda ZPADDR sta (ZPPtr1) ldy #1 lda ZPADDR+1 sta (ZPPtr1),y - + bra .1 - + .8 clc rts - + .9 >PUSHW L.MSG.FWREFERR >PUSHW ZPInputBufPtr >PUSHBI 2 @@ -249,7 +249,7 @@ CORE.FWREF >LDA.G hFWRefBuf sec rts *-------------------------------------- -CORE.Run lda #$0 RTS +CORE.Run lda #$60 RTS sta (ZPCodeBufPtr) jsr CORE.Cleanup @@ -283,14 +283,14 @@ CORE.Run lda #$0 RTS CORE.LookupOPS lda (ZPInputBufPtr) jsr CORE.IsOPSChar bcc .55 - + jsr CORE.IsLetter bcs .99 - + sec - -.55 ror bFlag - + +.55 ror bFlag + >LDYA L.ACOS.OPS >STYA ZPPtr1 @@ -345,8 +345,8 @@ CORE.LookupOPS lda (ZPInputBufPtr) .11 jmp CORE.IsLetter -.19 sec -.99 rts +.19 sec +.99 rts *-------------------------------------- CORE.LookupSkip sec .HS 90 BCC @@ -374,7 +374,7 @@ CORE.Lookup clc .3 plp bcc .8 - + tya Keyword Len jmp CORE.SkipA @@ -407,7 +407,7 @@ CORE.Lookup clc cmp #'$' bne .11 - + clc rts @@ -468,7 +468,7 @@ CORE.AddFWRef lda ZPCodeBufPtr+1 jsr CORE.IsIDValid bcs .8 - + jsr CORE.2FWRefBuf bra .1 @@ -494,9 +494,9 @@ CORE.CreateOrGetVar jsr CORE.NewVarKey bcs .99 - + >STYA ZPSID - + jsr CORE.GetVarType stx ZPTYPE @@ -504,16 +504,16 @@ CORE.CreateOrGetVar lda STRID sta ZPADDR - + lda STRID+1 sta ZPADDR+1 - + inc STRID bne .10 - + inc STRID+1 - bra .10 - + bra .10 + .1 lda ZPDataBufPtr sta ZPADDR @@ -540,14 +540,14 @@ CORE.CreateOrGetVar clc rts - + .90 lda #E.TMISMATCH - sec + sec .99 rts *-------------------------------------- CORE.NewVarKey >LDA.G hVars - + CORE.NewKey >PUSHA >PUSHW ZPInputBufPtr >SYSCALL SListNewKey @@ -557,11 +557,11 @@ CORE.NewKey >PUSHA txa jsr CORE.SkipA - + pla Y,A = KeyID clc - -.9 rts + +.9 rts *-------------------------------------- CORE.GetAddr >PUSHA >PUSHA for SListGetData @@ -588,10 +588,10 @@ CORE.GetAddr >PUSHA *-------------------------------------- CORE.GetVarType jsr CORE.GetChar bcs .9 - + cmp #'$' bne .9 - + inc ZPInputBufPtr bne .1 inc ZPInputBufPtr+1 skip $ @@ -602,7 +602,7 @@ CORE.GetVarType jsr CORE.GetChar .9 ldx #0 Z - rts + rts *-------------------------------------- CORE.ToUpperCase cmp #'a' @@ -618,19 +618,19 @@ CORE.ToUpperCase.RTS rts *-------------------------------------- CORE.IsOPSChar phx - + ldx #ACOS.OPSChars.Cnt-1 .1 cmp ACOS.OPSChars,x beq .8 - + dex bpl .1 - + plx sec rts - + .8 plx clc rts @@ -654,7 +654,7 @@ CORE.IsEndExp cmp #')' CS = true CORE.IsEndInst cmp #':' CS = true beq .8 - + cmp #C.CR beq .8 @@ -702,6 +702,41 @@ CORE.IsDigit10 cmp #'0' .9 sec rts *-------------------------------------- +CORE.CheckOP jsr CORE.GetCharNB + bcs CORE.CheckCP.CSYN + + cmp #'(' + bne CORE.CheckCP.CSYN + + jsr CORE.GetNextCharNB skip ( + clc + rts +*-------------------------------------- +CORE.CheckComma jsr CORE.GetCharNB + bcs CORE.CheckCP.CSYN + + cmp #',' + bne CORE.CheckCP.CSYN + + jsr CORE.GetNextCharNB skip , + clc + rts +*-------------------------------------- +CORE.CheckCP jsr CORE.GetCharNB + bcs CORE.CheckCP.CSYN + + cmp #')' + bne CORE.CheckCP.CSYN + + jsr CORE.GetNextCharNB skip ) + clc + rts + +CORE.CheckCP.CSYN + lda #E.CSYN + sec + rts +*-------------------------------------- CORE.CheckCharNB cmp #C.SPACE beq .9 diff --git a/BIN/ACOS.S.EXP.txt b/BIN/ACOS.S.EXP.txt index 31562dba..cf9fe531 100644 --- a/BIN/ACOS.S.EXP.txt +++ b/BIN/ACOS.S.EXP.txt @@ -15,13 +15,13 @@ EXP.Eval.R lda EXP.AOPS *-------------------------------------- .10 jsr CORE.GetCharNB bcs .39 - + .11 cmp #'(' bne .12 - + jsr CORE.GetNextCharNB skip ( bcs .39 - + jsr EXP.Eval.R bcs .39 @@ -34,13 +34,13 @@ EXP.Eval.R lda EXP.AOPS jsr CORE.GetNextCharNB skip ) bra .41 - + .12 cmp #'"' bne .20 - + jsr EXP.CreateStrConst bcs .37 - + bra .40 *-------------------------------------- .20 jsr CORE.IsLetter @@ -55,8 +55,8 @@ EXP.Eval.R lda EXP.AOPS bcs .21 jsr EXP.FNjmpX - bcs .99 + bcs .99 bra .40 .21 jsr EXP.VARLookup @@ -65,11 +65,11 @@ EXP.Eval.R lda EXP.AOPS .22 ldx EXP.TYPE bne .23 - + jsr CODE.INTGET bra .40 - + .23 jsr CODE.STRGET bra .40 @@ -85,27 +85,27 @@ EXP.Eval.R lda EXP.AOPS .50 jsr CORE.IsEndExp bcs .80 - + jsr CORE.IsKW bcc .80 jsr CORE.LookupOPS bcs .90 - + stx EXP.AOPS lda (pStack) get op context bmi .60 no prev op, go get arg2 - + cmp EXP.AOPS we have arg1 A=op1 arg2 X=op2 bcc .60 - + inc pStack prev op has precedence - + tay ldx ACOS.OPS2FPU,y jsr CODE.FPUCALL go compute (arg1 op1 arg2) - + .60 lda EXP.AOPS we must compute arg2 op2 arg3 before >PUSHA @@ -122,22 +122,22 @@ EXP.Eval.R lda EXP.AOPS bra .80 .90 lda #E.ESYN - + .99 tay Save Err code .98 >PULLA tax bpl .98 - + sec .HS 90 BCC .88 clc pla sta EXP.AOPS - + tya - + rts *-------------------------------------- EXP.FNjmpX jmp (J.ACOS.FN,x) @@ -145,19 +145,19 @@ EXP.FNjmpX jmp (J.ACOS.FN,x) EXP.CreateStrConst lda #'$' sta EXP.TYPE - + ldy #0 - + .1 jsr CORE.GetNextChar bcs .91 - + cmp #'"' beq .2 - + sta (ZPConstBufPtr),y iny bne .1 - + .2 lda #0 sta (ZPConstBufPtr),y @@ -170,14 +170,14 @@ EXP.CreateStrConst adc ZPConstBufPtr sta ZPConstBufPtr bcc .3 - + inc ZPConstBufPtr+1 .3 jsr CORE.GetNextCharNB skip " clc rts - + .91 lda #E.ESYN * sec rts @@ -189,12 +189,12 @@ EXP.Int16 >PUSHW ZPInputBufPtr bcs .9 jsr CODE.PUSHINT16 - + >POP 4 clc - -.9 rts + +.9 rts *-------------------------------------- EXP.VARLookup >LDA.G hVars @@ -217,10 +217,10 @@ EXP.VARLookup >LDA.G hVars bcs .99 jsr CORE.GetVarType - + cpx EXP.TYPE bne .90 - + clc rts @@ -233,7 +233,7 @@ EXP.VARLookup >LDA.G hVars phy pha KeyID - + jsr CORE.GetVarType stx EXP.TYPE @@ -241,16 +241,16 @@ EXP.VARLookup >LDA.G hVars lda STRID sta EXP.ADDR - + lda STRID+1 sta EXP.ADDR+1 - + inc STRID bne .10 - + inc STRID+1 - bra .10 - + bra .10 + .11 lda ZPDataBufPtr sta EXP.ADDR diff --git a/BIN/ACOS.S.FN.txt b/BIN/ACOS.S.FN.txt index 0297a265..dc1011bb 100644 --- a/BIN/ACOS.S.FN.txt +++ b/BIN/ACOS.S.FN.txt @@ -13,17 +13,17 @@ FN.KEY sec rts *-------------------------------------- -FN.LEN jsr CORE.GetCharNB - bcs .90 - - cmp #'(' - bne .90 +FN.LEN jsr CORE.CheckOP + bcs .99 jsr EXP.Eval bcs .99 - + lda EXP.TYPE - beq .91 + beq .90 + + jsr CORE.CheckCP + bcs .99 ldx #0 @@ -37,52 +37,31 @@ FN.LEN jsr CORE.GetCharNB clc rts - -.90 lda #E.CSYN - sec - rts -.91 lda #E.TMISMATCH +.90 lda #E.TMISMATCH sec -.99 rts +.99 rts *-------------------------------------- -FN.LEFTd jsr CORE.GetCharNB - bcs .90 - - cmp #'(' - bne .90 - - jsr CORE.GetNextCharNB skip ( - bcs .90 +FN.LEFTd jsr CORE.CheckOP + bcs .99 jsr EXP.Eval bcs .99 - - lda EXP.TYPE - beq .91 - jsr CORE.GetCharNB - bcs .90 - - cmp #',' - bne .90 - - jsr CORE.GetNextCharNB skip , - bcs .90 + lda EXP.TYPE + beq .90 + + jsr CORE.CheckComma + bcs .99 jsr EXP.Eval bcs .99 - + lda EXP.TYPE - bne .91 - - jsr CORE.GetCharNB - bcs .90 - - cmp #')' bne .90 - jsr CORE.GetNextCharNB skip ) + jsr CORE.CheckCP + bcs .99 ldx #0 @@ -97,14 +76,10 @@ FN.LEFTd jsr CORE.GetCharNB clc rts - -.90 lda #E.CSYN - sec - rts -.91 lda #E.TMISMATCH +.90 lda #E.TMISMATCH sec -.99 rts +.99 rts *-------------------------------------- FN.MIDd FN.PDL @@ -112,10 +87,76 @@ FN.PEEK FN.RANDOM FN.RIGHTd FN.RNDd -FN.STRd + lda #E.CSYN + sec + rts +*-------------------------------------- +FN.STRd jsr CORE.CheckOP + bcs .99 + + jsr EXP.Eval + bcs .99 + + lda EXP.TYPE + bne .90 + + jsr CORE.CheckCP + bcs .99 + + ldx #0 + +.1 lda CCODE.STR,x + jsr CODE.EmitByte + inx + cpx #CCODE.STR.LEN + bne .1 + + lda #'$' + sta EXP.TYPE + + clc + rts + +.90 lda #E.TMISMATCH + sec +.99 rts +*-------------------------------------- FN.TIMEd -FN.VAL + lda #E.CSYN + sec + rts +*-------------------------------------- +FN.VAL jsr CORE.CheckOP + bcs .99 + + jsr EXP.Eval + bcs .99 + + lda EXP.TYPE + beq .90 + + jsr CORE.CheckCP + bcs .99 + + ldx #0 + +.1 lda CCODE.VAL,x + jsr CODE.EmitByte + inx + cpx #CCODE.VAL.LEN + bne .1 + + stz EXP.TYPE + + clc + rts + +.90 lda #E.TMISMATCH + sec +.99 rts +*-------------------------------------- FN.WHENd +*-------------------------------------- FN.WIDTH lda #E.CSYN sec diff --git a/BIN/ACOS.S.txt b/BIN/ACOS.S.txt index 5ff19d93..eac3cbee 100644 --- a/BIN/ACOS.S.txt +++ b/BIN/ACOS.S.txt @@ -472,7 +472,7 @@ CCODE.FPRINTINT.LEN .EQ *-CCODE.FPRINTINT CCODE.LEN >PULLW ZPPtr1 ldy #$FF - + .1 iny lda (ZPPtr1),y bne .1 @@ -488,19 +488,35 @@ CCODE.LEFT >PULLW ZPPtr2 cnt sta ZPPtr1+1 ldy #0 - + .1 lda (ZPPtr1),y beq .8 - + iny cpy ZPPtr2 bne .1 - + lda #0 sta (ZPPtr1),y -.8 +.8 CCODE.LEFT.LEN .EQ *-CCODE.LEFT +*-------------------------------------- +CCODE.STR >PULLYA int + pha + >PUSHW ZPStrBuf + >PUSHW L.MSG.INT16 + pla + >PUSHYA + >PUSHBI 2 + >SYSCALL sprintf + >PUSHW ZPStrBuf +CCODE.STR.LEN .EQ *-CCODE.STR +*-------------------------------------- +CCODE.VAL >PULLYA str + >SYSCALL atoi + >PUSHYA +CCODE.VAL.LEN .EQ *-CCODE.VAL *-------------------------------------- .INB usr/src/bin/acos.s.code .INB usr/src/bin/acos.s.core diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index 39bd4c71..67b0ffd2 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -262,31 +262,32 @@ NSC.Write php .8 plp rts *-------------------------------------- -NSC.Select sta $C300 +NSC.Select +* sta $C300 lda $C00B Workaround for Ultrawarp bug lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #8 Read 8 bytes... + ldy #8 Read 8 bytes... -.3 lda DS1216E.PATTERN-1,x - phx - ldx #8 ....of 8 bits +.3 lda DS1216E.PATTERN-1,y + phy + + ldy #8 ....of 8 bits -.4 ldy #0 +.4 ldx #0 lsr bcc .5 - iny + inx -.5 pha - lda $C300,y Write Pattern bit in A0, with A2=0 - pla - dex +.5 bit $C300,x Write Pattern bit in A0, with A2=0 + + dey bne .4 - plx - dex + ply + dey bne .3 rts diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index b40eb094..6ea387e1 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -1,10 +1,10 @@ NEW AUTO 3,1 *-------------------------------------- -IO.D2.SeekTimeR .EQ 58 LIBBLKDEV Recalibration -IO.D2.SeekTimeF .EQ 58 LIBBLKDEV Track Formatter -IO.D2.SeekTimeB .EQ 58 LIBBLKDEV Boot Block -IO.D2.SeekTimeP .EQ 58 ProDOS.FX initial +IO.D2.SeekTimeR .EQ 28 LIBBLKDEV Recalibration +IO.D2.SeekTimeF .EQ 28 LIBBLKDEV Track Formatter +IO.D2.SeekTimeB .EQ 28 LIBBLKDEV Boot Block +IO.D2.SeekTimeP .EQ 28 ProDOS.FX initial IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128 *-------------------------------------- IO.D2.Ph0Off .EQ $C080 diff --git a/LIB/LIBBLKDEV.S.BB.txt b/LIB/LIBBLKDEV.S.BB.txt index 45c63812..3e5544ef 100644 --- a/LIB/LIBBLKDEV.S.BB.txt +++ b/LIB/LIBBLKDEV.S.BB.txt @@ -390,17 +390,18 @@ BB.Seek lda BB.HdrTrk get track we're on cmp BB.TargetQTrack bne .3 + lsr CS if X,Y on + lda #0 jsr BB.Wait100usecA lda IO.D2.Ph0Off,y - ldy BB.Slotn0 - lda IO.D2.DrvOn,y + bcc .90 lda IO.D2.Ph0Off,x - lda IO.D2.DrvOn,y +.90 *-------------------------------------- BB.Read ldx BB.Slotn0 diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index b6650a0b..21a2631b 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -85,7 +85,6 @@ D2.MoveHead.SEI lda D2.CurrentQTrack jsr D2.SeekPhOnY we are on 0/4 or 2/4 track - lda #1 bra .9 no wait, next operation will be phy/plx/Ph0On,y .1 cmp D2.TargetQTrack we are on 1/4 or 3/4 @@ -129,24 +128,23 @@ D2.MoveHead.SEI lda D2.CurrentQTrack .8 lda #IO.D2.SeekTimeF -.9 jsr D2.Wait100usecA ...wait... + jsr D2.Wait100usecA ...wait... - lda D2.CurrentQTrack +.9 lda D2.CurrentQTrack cmp D2.TargetQTrack bne .3 + lsr CS if X,Y on + jsr D2.Wait25600usec lda IO.D2.Ph0Off,y - ldy D2.Slotn0 - lda IO.D2.DrvOn,y + bcc .90 lda IO.D2.Ph0Off,x - lda IO.D2.DrvOn,y - - rts +.90 rts D2.SeekPhOnY and #6 ora D2.Slotn0 diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index 51f9c0f3..65fbb208 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -530,7 +530,7 @@ CIFS2.FOpen jsr ReadSocket jsr CheckSMBStatus bcs .90 - >DEBUG + >LDYAI S.FD.REG >SYSCALL2 GetMem bcs .91 @@ -569,13 +569,14 @@ CIFS2.FOpen jsr ReadSocket >SYSCALL2 mknod .91 jsr FreeRespData - + stz CIFS.Status bra .90 .9 jsr Exit.NODATA beq .99 .90 >POP 6 + .99 rts *-------------------------------------- CIFS.FClose jsr GetPFD @@ -631,22 +632,82 @@ CIFS2.FClose sta hFILE lda hFILE jsr CIFS.CloseDir - lda hResp - >SYSCALL2 FreeMem - jmp Exit.OK .9 jmp Exit.NODATA .99 rts *-------------------------------------- -CIFS.FRead - clc - >RET 5 +CIFS.FRead ldy #4 hNod + lda (pStack),y + + jsr GetPFD + + jsr GetCtx + + ldx #S.SMB.H.CMD.READ.ANDX + jsr RequestSetupX + + ldx #0 + +.1 lda SMB.ComRead.H,x + sta (ZPReqPtr),y + iny + inx + cpx #SMB.ComRead.H.Len + bne .1 + + jsr ReqSetupPtr2 + + ldy #S.FD.REG.REF + lda (pFD),y + pha + iny + lda (pFD),y + + ldy #S.NETBIOS+S.SMB.H+6 FileID + sta (ZPReqPtr),y + pla + dey + sta (ZPReqPtr),y + + + + jsr SetReqLen + + jsr WriteSocket + bcs .9 + + jmp Sleep + +.9 >RET 5 *-------------------------------------- -CIFS2.FRead +CIFS2.FRead jsr ReadSocket + bcs .9 + + jsr GetRespData + + jsr CheckSMBStatus + bcs .90 + + lda hResp + >SYSCALL2 FreeMem + + ldy #1 + lda (pStack),y + ora (pStack) clc - >RET 5 + beq .90 + + stz CIFS.Status Back to CIFS.FRead for next chunk + + jmp Sleep2 + +.9 jsr Exit.NODATA + beq .99 + +.90 >POP 5 +.99 rts *-------------------------------------- CIFS.FWrite ldy #4 hNod lda (pStack),y @@ -785,6 +846,8 @@ CIFS2.FWrite jsr ReadSocket clc beq .90 + stz CIFS.Status Back to CIFS.FWrite for next chunk + jmp Sleep2 .9 jsr Exit.NODATA @@ -924,7 +987,8 @@ CIFS2.Rename jsr ReadSocket jsr CheckSMBStatus bcs .99 - jmp Exit.OK + jsr Exit.OK + bra .99 .9 jmp Exit.NODATA diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index 838baf34..2af60505 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -1181,12 +1181,12 @@ SMB.ComRead.H .DA #10 WORD COUNT .HS FF000000 NO MORE CMD .BS 2 FID .BS 4 Offset - .BS 2 MaxCountOfBytesToReturn + .HS 0001 MaxCountOfBytesToReturn .HS 0000 MinCountOfBytesToReturn .HS 00000000 Timeout .HS 0000 Remaining - .HS 0000 ByteCount SMB.ComRead.H.Len .EQ *-SMB.ComRead.H +* .BS 2 ByteCount *-------------------------------------- SMB.ComWrite.H .DA #12 WORD COUNT .HS FF000000 NO MORE CMD diff --git a/ProDOS.FX/ProDOS.S.IRQ.txt b/ProDOS.FX/ProDOS.S.IRQ.txt index f3f7f830..7bd51991 100644 --- a/ProDOS.FX/ProDOS.S.IRQ.txt +++ b/ProDOS.FX/ProDOS.S.IRQ.txt @@ -12,8 +12,8 @@ IRQ ldx #$FA save 6 bytes of page 0 inx bne .2 - lda mslot - sta IRQ.DoneCn+2 +* lda mslot +* sta IRQ.DoneCn+2 * ldx #0 @@ -57,11 +57,11 @@ IRQ.Done ldx #$FA inx bne .1 - lda CLRC8ROM +* lda CLRC8ROM -IRQ.DoneCn lda $C100 SELF MODIFIED - lda IRQ.DoneCn+2 - sta mslot +*IRQ.DoneCn lda $C100 SELF MODIFIED +* lda IRQ.DoneCn+2 +* sta mslot rti *-------------------------------------- diff --git a/ProDOS.FX/ProDOS.S.LDR.txt b/ProDOS.FX/ProDOS.S.LDR.txt index a299c60b..407da201 100644 --- a/ProDOS.FX/ProDOS.S.LDR.txt +++ b/ProDOS.FX/ProDOS.S.LDR.txt @@ -354,11 +354,12 @@ LDR.LCBNK1 lda RRAMWRAMBNK1 switch in LC bank 1 DS1216E.DATA1 .EQ idxl DS1216E.DATA2 .EQ A1L *-------------------------------------- -LDR.ClkDevScan lda RDCXROM - - php +LDR.ClkDevScan php sei + lda RDCXROM + php + sta SETCXROM sta $C300 @@ -376,32 +377,34 @@ LDR.ClkDevScan lda RDCXROM dex bne .1 - - sta $C300 +*-------------------------------------- +* sta $C300 lda $C00B Workaround for Ultrawarp bug lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #8 Read 8 bytes... + ldy #8 Read 8 bytes... -.3 ldy #8 ....of 8 bits +.3 lda DS1216E.SIG-1,x + phy + + ldy #8 ....of 8 bits + +.4 ldx #0 + lsr + bcc .5 - lda DS1216E.SIG-1,x + inx -.4 lsr - bcs .5 +.5 bit $C300,x Write Pattern bit in A0, with A2=0 - bit $C300 - bra .50 - -.5 bit $C301 Write Pattern bit in A0, with A2=0 - -.50 dey + dey bne .4 - dex + ply + dey bne .3 - +*-------------------------------------- ldx #8 .6 ldy #8 @@ -421,7 +424,9 @@ LDR.ClkDevScan lda RDCXROM sta CLRCXROM -.8 ldx #8 +.8 plp + + ldx #8 .9 lda DS1216E.DATA1-1,x cmp DS1216E.DATA2-1,x diff --git a/ProDOS.FX/ProDOS.S.NCLK.txt b/ProDOS.FX/ProDOS.S.NCLK.txt index f95378f4..afbcee46 100644 --- a/ProDOS.FX/ProDOS.S.NCLK.txt +++ b/ProDOS.FX/ProDOS.S.NCLK.txt @@ -7,36 +7,39 @@ NEW *-------------------------------------- DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS *-------------------------------------- -NCLK.START lda RDCXROM - - php +NCLK.START php sei NO IRQ !!! + lda RDCXROM + php + sta SETCXROM - sta $C300 +* sta $C300 lda $C00B Workaround for Ultrawarp bug lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #8 Read 8 bytes... + ldy #8 Read 8 bytes... -.1 ldy #8 ....of 8 bits - - lda DS1216E.PATTERN-1,x - -.2 lsr - bcs .3 +.1 lda DS1216E.PATTERN-1,y + phy - bit $C300 - bra .30 + ldy #8 ....of 8 bits -.3 bit $C301 Write Pattern bit in A0, with A2=0 +.2 ldx #0 + lsr + bcc .3 -.30 dey + inx + +.3 bit $C300,x Write Pattern bit in A0, with A2=0 + + dey bne .2 - dex + ply + dey bne .1 ldx #8 @@ -102,7 +105,8 @@ NCLK.START lda RDCXROM sta CLRCXROM -.8 rts +.8 plp + rts *-------------------------------------- DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0 *-------------------------------------- diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 2a556665..2365af5c 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -782,10 +782,9 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end bit #1 A = Current QT bne .1 - + jsr XRW.SeekPhOnY we are on 0/4 or 2/4 track : PhY on - lda #1 bra .9 no wait, next operation will be phy/plx/Ph0On,y .1 cmp XRW.TargetQTrack we are on 1/4 or 3/4 @@ -829,23 +828,23 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end .8 lda XRW.SeekTime -.9 jsr XRW.Wait100usecA ...wait... + jsr XRW.Wait100usecA ...wait... - lda XRW.CurrentQTrack +.9 lda XRW.CurrentQTrack cmp XRW.TargetQTrack bne .3 + lsr CS if X,Y on + jsr XRW.Wait25600usec lda IO.D2.Ph0Off,y - ldy A2L - lda IO.D2.DrvOn,y - + bcc .90 + lda IO.D2.Ph0Off,x - lda IO.D2.DrvOn,y - clc Exit wit CC (recalibrate) +.90 clc Exit wit CC (recalibrate) rts *-------------------------------------- XRW.SeekPhOnY and #6 diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index 77826667..52646ca5 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -52,14 +52,15 @@ NSC.Print sty TmpPtr1 DS1216E.DATA1 .EQ $10 DS1216E.DATA2 .EQ $18 *-------------------------------------- -NSC.Detect lda RDCXROM - - php +NSC.Detect php sei + lda RDCXROM + php + sta SETCXROM - sta $C300 +* sta $C300 lda $C00B Workaround for Ultrawarp bug ldx #8 @@ -75,40 +76,40 @@ NSC.Detect lda RDCXROM dex bne .1 - sta $C300 +* sta $C300 lda $C00B Workaround for Ultrawarp bug lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #8 Read 8 bytes... + ldy #8 Read 8 bytes... -.3 ldy #8 ....of 8 bits - - lda DS1216E.PATTERN-1,x +.3 lda DS1216E.PATTERN-1,x + phy -.4 lsr - bcs .5 + ldy #8 ....of 8 bits + +.4 ldx #0 + lsr + bcc .5 - bit $C300 - bra .50 + inx + +.5 bit $C300,x Write Pattern bit in A0, with A2=0 -.5 bit $C301 Write Pattern bit in A0, with A2=0 - -.50 dey + dey bne .4 - dex + ply + dey bne .3 - +*-------------------------------------- ldx #8 .6 ldy #8 .7 lda $C304 - lsr ror DS1216E.DATA2-1,x - dey bne .7 @@ -120,7 +121,9 @@ NSC.Detect lda RDCXROM sta CLRCXROM -.8 ldx #8 +.8 plp +*-------------------------------------- + ldx #8 .81 lda DS1216E.DATA1-1,x cmp DS1216E.DATA2-1,x @@ -129,7 +132,7 @@ NSC.Detect lda RDCXROM dex bne .81 - sec +* sec from CMP rts .9 clc