Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-06-26 21:34:12 +02:00
parent ba6ee5fd3f
commit b899f75648
9 changed files with 137 additions and 117 deletions

Binary file not shown.

Binary file not shown.

View File

@ -210,23 +210,29 @@ A2osX.ScreenDLGR
sta WNDTOP sta WNDTOP
sta CV sta CV
jsr VTAB jsr VTAB
sta CLRHIRES sta CLRHIRES
sta SETMIXED sta SETMIXED
sta CLRTEXT sta CLRTEXT
sta SET80DISP
sta SET80STORE sta SET80STORE
sta SETIOUDIS
sta SETDHIRES sta SETDHIRES
lda #A2osX.LOGOLOAD+S.BM lda #A2osX.LOGOLOAD+S.BM
sta TmpPtr1 sta TmpPtr1
lda /A2osX.LOGOLOAD+S.BM lda /A2osX.LOGOLOAD+S.BM
sta TmpPtr1+1 sta TmpPtr1+1
ldx #0 ldx #0
.1 lda SCR.BASEL,x .1 lda SCR.BASEL,x
sta TmpPtr2 sta TmpPtr2
lda SCR.BASEH,x lda SCR.BASEH,x
sta TmpPtr2+1 sta TmpPtr2+1
ldy #0 ldy #0
.2 lda (TmpPtr1),y .2 lda (TmpPtr1),y
pha pha
and #$f and #$f
@ -247,12 +253,15 @@ A2osX.ScreenDLGR
iny iny
cpy #40 cpy #40
bne .2 bne .2
lda TmpPtr1 lda TmpPtr1
clc clc
adc #40 adc #40
sta TmpPtr1 sta TmpPtr1
bcc .3 bcc .3
inc TmpPtr1+1 inc TmpPtr1+1
.3 ldy #0 .3 ldy #0
.4 lda (TmpPtr1),y .4 lda (TmpPtr1),y
@ -278,12 +287,15 @@ A2osX.ScreenDLGR
iny iny
cpy #40 cpy #40
bne .4 bne .4
lda TmpPtr1 lda TmpPtr1
clc clc
adc #40 adc #40
sta TmpPtr1 sta TmpPtr1
bcc .7 bcc .7
inc TmpPtr1+1 inc TmpPtr1+1
.7 inx .7 inx
cpx #20 cpx #20
bne .1 bne .1

View File

@ -37,8 +37,10 @@ bEscMode .BS 1
TimeOut .BS 1 TimeOut .BS 1
bJoin .BS 1
hMsgBuf .BS 1 hMsgBuf .BS 1
ZPMsgPtr .BS 2 ZPMsgPtr .BS 2
ZPMsgPfxPtr .BS 2 ZPMsgPfxPtr .BS 2
ZPMsgCmdPtr .BS 2 ZPMsgCmdPtr .BS 2
ZPMsgArgPtr .BS 2 ZPMsgArgPtr .BS 2
@ -92,13 +94,18 @@ L.SEQ.INIT .DA SEQ.INIT
L.SEQ.BAR .DA SEQ.BAR L.SEQ.BAR .DA SEQ.BAR
L.SEQ.TXTCLR .DA SEQ.TXTCLR L.SEQ.TXTCLR .DA SEQ.TXTCLR
L.SEQ.PRIVMSG .DA SEQ.PRIVMSG L.SEQ.PRIVMSG .DA SEQ.PRIVMSG
L.SEQ.INFOMSG .DA SEQ.INFOMSG
L.SEQ.DUMPMSG .DA SEQ.DUMPMSG L.SEQ.DUMPMSG .DA SEQ.DUMPMSG
L.SEQ.RESET .DA SEQ.RESET L.SEQ.RESET .DA SEQ.RESET
L.IRC.CMDS .DA IRC.CMDS 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.PRIVMSG
.DA CS.RUN.CMD.MODE .DA CS.RUN.CMD.MODE
.DA CS.RUN.CMD.353 .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 J.ESC .DA CS.RUN.CHARIN.LEFT
.DA CS.RUN.CHARIN.DOWN .DA CS.RUN.CHARIN.DOWN
.DA CS.RUN.CHARIN.UP .DA CS.RUN.CHARIN.UP
@ -252,7 +259,7 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol
jsr CS.RUN.JOIN jsr CS.RUN.JOIN
bcs .99 bcs .99
>LDYA pData >LDYA pData NULLSTRING
jsr CS.RUN.STATUSPDATE jsr CS.RUN.STATUSPDATE
bcs .99 bcs .99
@ -262,15 +269,21 @@ CS.RUN.LOOP >SLEEP
>SYSCALL feof >SYSCALL feof
bcs .9 bcs .9
tay tay
bne .2 * bne .2
beq .77
lda $427
eor #$80
sta $427
bra .2
>PUSHWI MSGSIZE .77 >PUSHWI MSGSIZE
>PUSHW ZPMsgPtr >PUSHW ZPMsgPtr
lda hFile lda hFile
>SYSCALL fgets >SYSCALL fgets
bcs .9 bcs .9
.1 jsr CS.RUN.REQ jsr CS.RUN.REQ
bcs .9 bcs .9
.2 ldy #S.PS.hStdIn .2 ldy #S.PS.hStdIn
@ -536,31 +549,6 @@ CS.RUN.JOIN >LDYA L.MSG.JOIN
>PUSHBI 2 >PUSHBI 2
.2 >SYSCALL FPrintF .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 .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.REQ jsr CS.RUN.SPLITMSG CS.RUN.REQ jsr CS.RUN.SPLITMSG
@ -609,6 +597,13 @@ CS.RUN.REQ jsr CS.RUN.SPLITMSG
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.CMD.JOIN sec
ror bJoin
lda #'J'
sta $427
clc
rts
*--------------------------------------
CS.RUN.CMD.PING >PUSHB hFile CS.RUN.CMD.PING >PUSHB hFile
>PUSHW L.IRC.PONG >PUSHW L.IRC.PONG
@ -618,7 +613,17 @@ CS.RUN.CMD.PING >PUSHB hFile
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.CMD.PRIVMSG 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 ZPMsgPfxPtr
>PUSHW ZPMsgExtPtr >PUSHW ZPMsgExtPtr
@ -633,6 +638,15 @@ CS.RUN.CMD.MODE
*-------------------------------------- *--------------------------------------
CS.RUN.CMD.353 >LDYA ZPMsgExtPtr CS.RUN.CMD.353 >LDYA ZPMsgExtPtr
jmp CS.RUN.STATUSPDATE 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 CS.RUN.SPLITMSG >LDYA pData
>STYA ZPMsgPfxPtr >STYA ZPMsgPfxPtr
@ -767,7 +781,7 @@ CS.RUN.CHARIN bit bEscMode
bpl .4 bpl .4
cmp #'[' cmp #'['
beq .9 beq .8
stz bEscMode stz bEscMode
@ -779,7 +793,8 @@ CS.RUN.CHARIN bit bEscMode
dex dex
bpl .1 bpl .1
.9 rts clc
rts
.2 txa .2 txa
asl asl
@ -792,7 +807,8 @@ CS.RUN.CHARIN bit bEscMode
sec sec
ror bEscMode ror bEscMode
clc
.8 clc
rts rts
.5 cmp #C.SPACE .5 cmp #C.SPACE
@ -802,10 +818,10 @@ CS.RUN.CHARIN bit bEscMode
bne CS.RUN.CHARIN.INS bne CS.RUN.CHARIN.INS
lda TextLen lda TextLen
beq .9 beq .8
lda TextPtr lda TextPtr
beq .9 beq .8
lda #C.BS lda #C.BS
>SYSCALL PutChar >SYSCALL PutChar
@ -831,10 +847,13 @@ CS.RUN.CHARIN.INS
.8 clc .8 clc
rts rts
*--------------------------------------
CS.RUN.CHARIN.CTRL CS.RUN.CHARIN.CTRL
cmp #C.CR cmp #C.CR
bne .8 bne .1
bit bJoin
bpl .8
>PUSHW L.SEQ.PRIVMSG >PUSHW L.SEQ.PRIVMSG
@ -848,10 +867,17 @@ CS.RUN.CHARIN.CTRL
bcs .9 bcs .9
jmp CS.RUN.TXTCLR jmp CS.RUN.TXTCLR
.1 cmp #$14 Ctrl-T
bne .8
lda #3
sec
rts
.8 clc .8 clc
.9 rts .9 rts
*--------------------------------------
CS.RUN.CHARIN.LEFT CS.RUN.CHARIN.LEFT
lda TextPtr lda TextPtr
beq .9 beq .9
@ -923,7 +949,7 @@ MSG.SKTERR .AZ "Socket Error : $%h\r\n"
MSG.NICK .AZ "Registering User..." MSG.NICK .AZ "Registering User..."
MSG.USER .AZ "Connecting User..." MSG.USER .AZ "Connecting User..."
MSG.JOIN .AZ "Joining Channel..." 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.STATUSBAR .AZ "%s:%s"
MSG.STATUSBARMSG .AZ "STATUS:%s" MSG.STATUSBARMSG .AZ "STATUS:%s"
*-------------------------------------- *--------------------------------------
@ -935,10 +961,14 @@ IRC.REP.NOIDENT .AZ "*** No Ident response"
IRC.REP.001 .AZ "001" IRC.REP.001 .AZ "001"
IRC.REP.JOIN .AZ "JOIN" IRC.REP.JOIN .AZ "JOIN"
*-------------------------------------- *--------------------------------------
IRC.CMDS .AZ "PING" IRC.CMDS .AZ "JOIN"
.AZ "PING"
.AZ "PRIVMSG" .AZ "PRIVMSG"
.AZ "MODE" .AZ "MODE"
.AZ "353" .AZ "353"
.AZ "375"
.AZ "372"
.AZ "376"
.DA #0 .DA #0
*-------------------------------------- *--------------------------------------
IRC.NICK .AZ "NICK %s\r\n" 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.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.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.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.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" SEQ.RESET .AZ "\ec"
*-------------------------------------- *--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF SA.LOCAL .DA #AF.INET S.SOCKADDR.AF

View File

@ -2,7 +2,7 @@ NEW
AUTO 3,1 AUTO 3,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
IO.D2.SeekTime .EQ 124 IO.D2.SeekTime .EQ 200
*-------------------------------------- *--------------------------------------
IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0Off .EQ $C080
IO.D2.Ph0On .EQ $C081 IO.D2.Ph0On .EQ $C081

View File

@ -80,11 +80,7 @@ D2MoveHead >PULLB MoveTo
bcs .9 bcs .9
jsr D2MoveHead.1 jsr D2MoveHead.1
jsr D2.Wait25600usec
jsr D2.Wait25600usec
jsr D2.Wait25600usec
jsr D2.Wait25600usec
clc clc
.9 rts .9 rts
@ -93,15 +89,11 @@ D2MoveHead.1
pha pha
jsr D2.QPhaseOn jsr D2.QPhaseOn
lda #IO.D2.SeekTime
jsr D2.Wait100usecA
pla pla
cmp MoveTo cmp MoveTo
beq .8 beq D2.AllPhasesOff
pha
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -116,15 +108,14 @@ D2MoveHead.1
sta MoveFrom sta MoveFrom
pla lda #IO.D2.SeekTime
jsr D2.Wait100usecA
jsr D2.AllPhasesOff
* lda #IO.D2.SeekTime
* jsr D2.Wait100usecA
bra .1
.8 jsr D2.Wait25600usec jsr D2.AllPhasesOff
jsr D2.Wait25600usec
lda #IO.D2.SeekTime
jsr D2.Wait100usecA
bra .1
*-------------------------------------- *--------------------------------------
D2.AllPhasesOff ldx Slotn0 D2.AllPhasesOff ldx Slotn0
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
@ -133,26 +124,19 @@ D2.AllPhasesOff ldx Slotn0
lda IO.D2.Ph3Off,x lda IO.D2.Ph3Off,x
rts rts
*-------------------------------------- *--------------------------------------
D2.QPhaseOff clc D2.QPhaseOn pha
.HS B0 BCS
D2.QPhaseOn sec
pha
php
and #6 and #6
adc Slotn0 ora Slotn0
tax tax
plp
pla pla
inc inc
and #6 and #6
adc Slotn0 ora Slotn0
tay tay
lda IO.D2.Ph0Off,x lda IO.D2.Ph0On,x
nop lda IO.D2.Ph0On,y
nop
lda IO.D2.Ph0Off,y
rts rts
*-------------------------------------- *--------------------------------------
D2.Wait25600usec D2.Wait25600usec

View File

@ -1076,13 +1076,14 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
iny iny
ora (ZPPtrSKT),y ora (ZPPtrSKT),y
bne .8 some DATA... bne .8 some DATA...
jsr SKT.CheckStream jsr SKT.CheckStream
bcs .9 bcs .9
lda #$ff no DATA, EOF = true lda #$ff no DATA, EOF = true
* clc * clc
rts rts
.8 lda #0 ...EOF = false .8 lda #0 ...EOF = false
* clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SKT.CheckStream lda #S.SOCKET.T.STREAM SKT.CheckStream lda #S.SOCKET.T.STREAM

View File

@ -166,7 +166,7 @@ L5398 ldy #64
sty XRW.RetryCnt sty XRW.RetryCnt
L539D jsr XRW.ReadAddr read next address field. 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. L53A4 dec XRW.RetryCnt one less chance.
bne L539D branch to retry. bne L539D branch to retry.
@ -188,15 +188,7 @@ XRW.Recalibrate lda #MLI.E.IO anticipate a bad drive error.
jsr XRW.Seek jsr XRW.Seek
bra L5398 bra L5398
L53BE ldy XRW.UnitIndex L53BE cmp XRW.ReqTrack
lda XRW.AddrField.V
sta XRW.D2VolNum-1,y
lda XRW.AddrField.T
sta XRW.D2Trk-1,y
cmp XRW.ReqTrack
beq L53D5 beq L53D5
lda XRW.ReqTrack lda XRW.ReqTrack
@ -731,8 +723,8 @@ XRW.Read.RTS rts
* A = target track * A = target track
*-------------------------------------- *--------------------------------------
XRW.Seek ldx XRW.UnitIndex XRW.Seek ldx XRW.UnitIndex
cmp XRW.D2Trk-1,x * cmp XRW.D2Trk-1,x
beq XRW.Read.RTS * beq XRW.Read.RTS
pha save target track pha save target track
@ -755,14 +747,11 @@ XRW.Seek ldx XRW.UnitIndex
pha pha
jsr XRW.QPhaseOn jsr XRW.QPhaseOn
jsr XRW.WaitSeekTime
pla pla
cmp XRW.TargetQTrack cmp XRW.TargetQTrack
beq .8 beq XRW.AllPhasesOff
pha
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -777,13 +766,11 @@ XRW.Seek ldx XRW.UnitIndex
sta XRW.CurrentQTrack sta XRW.CurrentQTrack
pla jsr XRW.WaitSeekTime
jsr XRW.AllPhasesOff jsr XRW.AllPhasesOff
* jsr XRW.WaitSeekTime jsr XRW.WaitSeekTime
bra .1 bra .1
.8 jsr XRW.Wait25600usec
*-------------------------------------- *--------------------------------------
XRW.AllPhasesOff XRW.AllPhasesOff
ldx A2L ldx A2L
@ -793,26 +780,19 @@ XRW.AllPhasesOff
lda IO.D2.Ph3Off,x lda IO.D2.Ph3Off,x
rts rts
*-------------------------------------- *--------------------------------------
XRW.QPhaseOff clc XRW.QPhaseOn pha
.HS B0 BCS
XRW.QPhaseOn sec
pha
php
and #6 and #6
adc A2L ora A2L
tax tax
plp
pla pla
inc inc
and #6 and #6
adc A2L ora A2L
tay tay
lda IO.D2.Ph0Off,x lda IO.D2.Ph0On,x
nop lda IO.D2.Ph0On,y
nop
lda IO.D2.Ph0Off,y
rts rts
*-------------------------------------- *--------------------------------------
XRW.Trk2Qtrk asl x2 XRW.Trk2Qtrk asl x2
@ -893,11 +873,19 @@ L56D2 lda IO.D2.RData,x read 'even bit' nibl
tay if final checksum non-zero, tay if final checksum non-zero,
bne rderr then error. bne rderr then error.
L56E6 lda IO.D2.RData,x first bit-slip nibl *L56E6 lda IO.D2.RData,x first bit-slip nibl
bpl L56E6 *** no page cross *** * bpl L56E6 *** no page cross ***
cmp #$DE * cmp #$DE
bne rderr * 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 clc normal read ok
rts rts

View File

@ -495,9 +495,11 @@ CPU.Init.6502 >PUSHWI MSG.CPU
nop (2) nop (2)
nop (2) nop (2)
nop (2) nop (2)
nop (2)
dec nop (2)
bne .22 nop (2)
nop (2)
nop (2)
inc A2osX.RANDOM16 (6) inc A2osX.RANDOM16 (6)
bne .5 (2*) bne .5 (2*)
@ -512,7 +514,10 @@ CPU.Init.6502 >PUSHWI MSG.CPU
nop (2) 3+2+2+2+2 if from BNE nop (2) 3+2+2+2+2 if from BNE
.6 eor VBL (4) .6 dec
bne .22
eor VBL (4)
bpl .20 (2*) bpl .20 (2*)
bit ZPPtr1 //c ? bit ZPPtr1 //c ?
@ -1144,7 +1149,7 @@ MSG.KCREAD .AZ "Reading Kernel Config File..."
MSG.KCREAD.OK .AZ "OK\n" MSG.KCREAD.OK .AZ "OK\n"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\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.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.Init3 .AZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n"
MSG.DEV .AZ "Device Manager..." MSG.DEV .AZ "Device Manager..."
@ -1211,8 +1216,7 @@ SBININITD .AZ "${ROOT}sbin/initd"
MLIGETFILEINFOEX00 MLIGETFILEINFOEX00
.DA #2 .DA #2
.DA MLIOPEN00.FN .DA MLIOPEN00.FN
.DA FIEX .BS S.FIEX
FIEX .BS S.FIEX
*-------------------------------------- *--------------------------------------
MLIOPEN00 .DA #3 MLIOPEN00 .DA #3
.DA MLIOPEN00.FN .DA MLIOPEN00.FN