diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 441431d0..4e218c0f 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 031f8d36..69f607e2 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/A2osX.S.txt b/A2osX.S.txt index 57f70ad8..17a27b5a 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -210,23 +210,29 @@ A2osX.ScreenDLGR sta WNDTOP sta CV jsr VTAB + sta CLRHIRES sta SETMIXED sta CLRTEXT + sta SET80DISP sta SET80STORE + sta SETIOUDIS sta SETDHIRES lda #A2osX.LOGOLOAD+S.BM sta TmpPtr1 lda /A2osX.LOGOLOAD+S.BM sta TmpPtr1+1 + ldx #0 + .1 lda SCR.BASEL,x sta TmpPtr2 lda SCR.BASEH,x sta TmpPtr2+1 ldy #0 + .2 lda (TmpPtr1),y pha and #$f @@ -247,12 +253,15 @@ A2osX.ScreenDLGR iny cpy #40 bne .2 + lda TmpPtr1 clc adc #40 sta TmpPtr1 bcc .3 + inc TmpPtr1+1 + .3 ldy #0 .4 lda (TmpPtr1),y @@ -278,12 +287,15 @@ A2osX.ScreenDLGR iny cpy #40 bne .4 + lda TmpPtr1 clc adc #40 sta TmpPtr1 bcc .7 + inc TmpPtr1+1 + .7 inx cpx #20 bne .1 diff --git a/BIN/IRC.S.txt b/BIN/IRC.S.txt index e61373fc..2d32fdd0 100644 --- a/BIN/IRC.S.txt +++ b/BIN/IRC.S.txt @@ -37,8 +37,10 @@ bEscMode .BS 1 TimeOut .BS 1 +bJoin .BS 1 hMsgBuf .BS 1 ZPMsgPtr .BS 2 + ZPMsgPfxPtr .BS 2 ZPMsgCmdPtr .BS 2 ZPMsgArgPtr .BS 2 @@ -92,13 +94,18 @@ L.SEQ.INIT .DA SEQ.INIT L.SEQ.BAR .DA SEQ.BAR L.SEQ.TXTCLR .DA SEQ.TXTCLR L.SEQ.PRIVMSG .DA SEQ.PRIVMSG +L.SEQ.INFOMSG .DA SEQ.INFOMSG L.SEQ.DUMPMSG .DA SEQ.DUMPMSG L.SEQ.RESET .DA SEQ.RESET L.IRC.CMDS .DA IRC.CMDS -J.IRC.CMDS .DA CS.RUN.CMD.PING +J.IRC.CMDS .DA CS.RUN.CMD.JOIN + .DA CS.RUN.CMD.PING .DA CS.RUN.CMD.PRIVMSG .DA CS.RUN.CMD.MODE .DA CS.RUN.CMD.353 + .DA CS.RUN.CMD.375 + .DA CS.RUN.CMD.372 + .DA CS.RUN.CMD.376 J.ESC .DA CS.RUN.CHARIN.LEFT .DA CS.RUN.CHARIN.DOWN .DA CS.RUN.CHARIN.UP @@ -252,7 +259,7 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol jsr CS.RUN.JOIN bcs .99 - >LDYA pData + >LDYA pData NULLSTRING jsr CS.RUN.STATUSPDATE bcs .99 @@ -262,15 +269,21 @@ CS.RUN.LOOP >SLEEP >SYSCALL feof bcs .9 tay - bne .2 +* bne .2 + beq .77 + + lda $427 + eor #$80 + sta $427 + bra .2 - >PUSHWI MSGSIZE +.77 >PUSHWI MSGSIZE >PUSHW ZPMsgPtr lda hFile >SYSCALL fgets bcs .9 -.1 jsr CS.RUN.REQ + jsr CS.RUN.REQ bcs .9 .2 ldy #S.PS.hStdIn @@ -536,31 +549,6 @@ CS.RUN.JOIN >LDYA L.MSG.JOIN >PUSHBI 2 .2 >SYSCALL FPrintF - bcs .9 - -.3 >SLEEP - - >PUSHWI MSGSIZE - >PUSHW ZPMsgPtr - lda hFile - >SYSCALL fgets - bcs .9 - -.4 jsr CS.RUN.SPLITMSG - jsr CS.RUN.DUMPMSG - - ldy #$ff - -.5 iny - lda IRC.REP.JOIN,y - beq .8 - - cmp (ZPMsgCmdPtr),y - beq .5 - - bra .3 - -.8 clc .9 rts *-------------------------------------- CS.RUN.REQ jsr CS.RUN.SPLITMSG @@ -609,6 +597,13 @@ CS.RUN.REQ jsr CS.RUN.SPLITMSG .8 clc .9 rts *-------------------------------------- +CS.RUN.CMD.JOIN sec + ror bJoin + lda #'J' + sta $427 + clc + rts +*-------------------------------------- CS.RUN.CMD.PING >PUSHB hFile >PUSHW L.IRC.PONG @@ -618,7 +613,17 @@ CS.RUN.CMD.PING >PUSHB hFile rts *-------------------------------------- CS.RUN.CMD.PRIVMSG - >PUSHW L.SEQ.PRIVMSG + ldy #0 + +.1 iny + lda (ZPMsgPfxPtr),y + beq .2 + eor #'!' + bne .1 + + sta (ZPMsgPfxPtr),y + +.2 >PUSHW L.SEQ.PRIVMSG >PUSHW ZPMsgPfxPtr >PUSHW ZPMsgExtPtr @@ -633,6 +638,15 @@ CS.RUN.CMD.MODE *-------------------------------------- CS.RUN.CMD.353 >LDYA ZPMsgExtPtr jmp CS.RUN.STATUSPDATE + +CS.RUN.CMD.375 +CS.RUN.CMD.372 +CS.RUN.CMD.376 + >PUSHW L.SEQ.INFOMSG + >PUSHW ZPMsgExtPtr + >PUSHBI 2 + >SYSCALL PrintF + rts *-------------------------------------- CS.RUN.SPLITMSG >LDYA pData >STYA ZPMsgPfxPtr @@ -767,7 +781,7 @@ CS.RUN.CHARIN bit bEscMode bpl .4 cmp #'[' - beq .9 + beq .8 stz bEscMode @@ -779,7 +793,8 @@ CS.RUN.CHARIN bit bEscMode dex bpl .1 -.9 rts + clc + rts .2 txa asl @@ -792,7 +807,8 @@ CS.RUN.CHARIN bit bEscMode sec ror bEscMode - clc + +.8 clc rts .5 cmp #C.SPACE @@ -802,10 +818,10 @@ CS.RUN.CHARIN bit bEscMode bne CS.RUN.CHARIN.INS lda TextLen - beq .9 + beq .8 lda TextPtr - beq .9 + beq .8 lda #C.BS >SYSCALL PutChar @@ -831,10 +847,13 @@ CS.RUN.CHARIN.INS .8 clc rts - +*-------------------------------------- CS.RUN.CHARIN.CTRL cmp #C.CR - bne .8 + bne .1 + + bit bJoin + bpl .8 >PUSHW L.SEQ.PRIVMSG @@ -848,10 +867,17 @@ CS.RUN.CHARIN.CTRL bcs .9 jmp CS.RUN.TXTCLR + +.1 cmp #$14 Ctrl-T + bne .8 + + lda #3 + sec + rts .8 clc .9 rts - +*-------------------------------------- CS.RUN.CHARIN.LEFT lda TextPtr beq .9 @@ -923,7 +949,7 @@ MSG.SKTERR .AZ "Socket Error : $%h\r\n" MSG.NICK .AZ "Registering User..." MSG.USER .AZ "Connecting User..." MSG.JOIN .AZ "Joining Channel..." -MSG.TOPBAR .AZ "A2osX IRC %d.%d %s:%s %s" +MSG.TOPBAR .AZ "A2osX IRC %d.%d Server:%s:%s Nick:%s" MSG.STATUSBAR .AZ "%s:%s" MSG.STATUSBARMSG .AZ "STATUS:%s" *-------------------------------------- @@ -935,10 +961,14 @@ IRC.REP.NOIDENT .AZ "*** No Ident response" IRC.REP.001 .AZ "001" IRC.REP.JOIN .AZ "JOIN" *-------------------------------------- -IRC.CMDS .AZ "PING" +IRC.CMDS .AZ "JOIN" + .AZ "PING" .AZ "PRIVMSG" .AZ "MODE" .AZ "353" + .AZ "375" + .AZ "372" + .AZ "376" .DA #0 *-------------------------------------- IRC.NICK .AZ "NICK %s\r\n" @@ -951,8 +981,9 @@ IRC.PRIVMSG .AZ "PRIVMSG %s :%s\r\n" SEQ.INIT .AZ "\ec\e(B\e)0\e[?7l\e[2;20r\e[22;1H\e[?7h" SEQ.BAR .AZ "\e7\e[%d;1H\e[7m\e[37;40m%80s\e[0m\e8" SEQ.TXTCLR .AZ "\e[22;1H\e[K\r\n\e[K\r\n\e[K\e[22;1H" -SEQ.PRIVMSG .AZ "\e7\e[20;1H\r\n\e[7m%s:\e[0m%s\r\n\e8" +SEQ.PRIVMSG .AZ "\e7\e[20;1H\r\n\e[7m%s:\e[0m%s\e8" SEQ.DUMPMSG .AZ "\e7\e[20;1H\r\n\e[7m%s \e[0m%s %s %s\e8" +SEQ.INFOMSG .AZ "\e7\e[20;1H%s\r\n\e8" SEQ.RESET .AZ "\ec" *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index 793aeb97..9b0fd0d2 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -2,7 +2,7 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -IO.D2.SeekTime .EQ 124 +IO.D2.SeekTime .EQ 200 *-------------------------------------- IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0On .EQ $C081 diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index f252603b..c6c4eebc 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -80,11 +80,7 @@ D2MoveHead >PULLB MoveTo bcs .9 jsr D2MoveHead.1 - - jsr D2.Wait25600usec - jsr D2.Wait25600usec - jsr D2.Wait25600usec - jsr D2.Wait25600usec + clc .9 rts @@ -93,15 +89,11 @@ D2MoveHead.1 pha jsr D2.QPhaseOn - lda #IO.D2.SeekTime - jsr D2.Wait100usecA pla cmp MoveTo - beq .8 + beq D2.AllPhasesOff - pha - bcs .2 * Current < Target, must move in @@ -116,15 +108,14 @@ D2MoveHead.1 sta MoveFrom - pla - - jsr D2.AllPhasesOff -* lda #IO.D2.SeekTime -* jsr D2.Wait100usecA - bra .1 + lda #IO.D2.SeekTime + jsr D2.Wait100usecA -.8 jsr D2.Wait25600usec - jsr D2.Wait25600usec + jsr D2.AllPhasesOff + + lda #IO.D2.SeekTime + jsr D2.Wait100usecA + bra .1 *-------------------------------------- D2.AllPhasesOff ldx Slotn0 lda IO.D2.Ph0Off,x @@ -133,26 +124,19 @@ D2.AllPhasesOff ldx Slotn0 lda IO.D2.Ph3Off,x rts *-------------------------------------- -D2.QPhaseOff clc - .HS B0 BCS -D2.QPhaseOn sec - pha - php +D2.QPhaseOn pha and #6 - adc Slotn0 + ora Slotn0 tax - plp pla inc and #6 - adc Slotn0 + ora Slotn0 tay - lda IO.D2.Ph0Off,x - nop - nop - lda IO.D2.Ph0Off,y + lda IO.D2.Ph0On,x + lda IO.D2.Ph0On,y rts *-------------------------------------- D2.Wait25600usec diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 5749c356..e3be0010 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -1076,13 +1076,14 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED iny ora (ZPPtrSKT),y bne .8 some DATA... + jsr SKT.CheckStream bcs .9 lda #$ff no DATA, EOF = true * clc rts .8 lda #0 ...EOF = false -* clc + clc .9 rts *-------------------------------------- SKT.CheckStream lda #S.SOCKET.T.STREAM diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 751a0386..5bb00cda 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -166,7 +166,7 @@ L5398 ldy #64 sty XRW.RetryCnt L539D jsr XRW.ReadAddr read next address field. - bcc L53BE branch if read ok. + bcc L53BE if CC A = current track L53A4 dec XRW.RetryCnt one less chance. bne L539D branch to retry. @@ -188,15 +188,7 @@ XRW.Recalibrate lda #MLI.E.IO anticipate a bad drive error. jsr XRW.Seek bra L5398 -L53BE ldy XRW.UnitIndex - - lda XRW.AddrField.V - sta XRW.D2VolNum-1,y - - lda XRW.AddrField.T - sta XRW.D2Trk-1,y - - cmp XRW.ReqTrack +L53BE cmp XRW.ReqTrack beq L53D5 lda XRW.ReqTrack @@ -731,8 +723,8 @@ XRW.Read.RTS rts * A = target track *-------------------------------------- XRW.Seek ldx XRW.UnitIndex - cmp XRW.D2Trk-1,x - beq XRW.Read.RTS +* cmp XRW.D2Trk-1,x +* beq XRW.Read.RTS pha save target track @@ -755,14 +747,11 @@ XRW.Seek ldx XRW.UnitIndex pha jsr XRW.QPhaseOn - jsr XRW.WaitSeekTime pla cmp XRW.TargetQTrack - beq .8 + beq XRW.AllPhasesOff - pha - bcs .2 * Current < Target, must move in @@ -777,13 +766,11 @@ XRW.Seek ldx XRW.UnitIndex sta XRW.CurrentQTrack - pla + jsr XRW.WaitSeekTime jsr XRW.AllPhasesOff -* jsr XRW.WaitSeekTime + jsr XRW.WaitSeekTime bra .1 - -.8 jsr XRW.Wait25600usec *-------------------------------------- XRW.AllPhasesOff ldx A2L @@ -793,26 +780,19 @@ XRW.AllPhasesOff lda IO.D2.Ph3Off,x rts *-------------------------------------- -XRW.QPhaseOff clc - .HS B0 BCS -XRW.QPhaseOn sec - pha - php +XRW.QPhaseOn pha and #6 - adc A2L + ora A2L tax - plp pla inc and #6 - adc A2L + ora A2L tay - lda IO.D2.Ph0Off,x - nop - nop - lda IO.D2.Ph0Off,y + lda IO.D2.Ph0On,x + lda IO.D2.Ph0On,y rts *-------------------------------------- XRW.Trk2Qtrk asl x2 @@ -893,11 +873,19 @@ L56D2 lda IO.D2.RData,x read 'even bit' nibl tay if final checksum non-zero, bne rderr then error. -L56E6 lda IO.D2.RData,x first bit-slip nibl - bpl L56E6 *** no page cross *** +*L56E6 lda IO.D2.RData,x first bit-slip nibl +* bpl L56E6 *** no page cross *** - cmp #$DE - bne rderr +* cmp #$DE +* bne rderr + + ldy XRW.UnitIndex Succesfull REad, update Drive table + + lda XRW.AddrField.V + sta XRW.D2VolNum-1,y + + lda XRW.AddrField.T + sta XRW.D2Trk-1,y and exit with A = Trk clc normal read ok rts diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 6611db58..d35905d7 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -495,9 +495,11 @@ CPU.Init.6502 >PUSHWI MSG.CPU nop (2) nop (2) nop (2) - - dec - bne .22 + nop (2) + nop (2) + nop (2) + nop (2) + nop (2) inc A2osX.RANDOM16 (6) bne .5 (2*) @@ -512,7 +514,10 @@ CPU.Init.6502 >PUSHWI MSG.CPU nop (2) 3+2+2+2+2 if from BNE -.6 eor VBL (4) +.6 dec + bne .22 + + eor VBL (4) bpl .20 (2*) bit ZPPtr1 //c ? @@ -1144,7 +1149,7 @@ MSG.KCREAD .AZ "Reading Kernel Config File..." MSG.KCREAD.OK .AZ "OK\n" MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n" MSG.PRODOSFX .AZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\n" -MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" +MSG.Init2.OK .AZ "A2osX[Stage2]:Complete." *-------------------------------------- MSG.Init3 .AZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n" MSG.DEV .AZ "Device Manager..." @@ -1211,8 +1216,7 @@ SBININITD .AZ "${ROOT}sbin/initd" MLIGETFILEINFOEX00 .DA #2 .DA MLIOPEN00.FN - .DA FIEX -FIEX .BS S.FIEX + .BS S.FIEX *-------------------------------------- MLIOPEN00 .DA #3 .DA MLIOPEN00.FN