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 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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