mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
70a6741086
commit
3c7188a189
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
13
A2osX.S.txt
13
A2osX.S.txt
|
@ -176,14 +176,17 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
|
|||
sta LOGO.Filename,x
|
||||
dex
|
||||
bne .1
|
||||
|
||||
ldx Boot.Prefix
|
||||
ldy #0
|
||||
|
||||
.2 inx
|
||||
iny
|
||||
lda A2osX.LOGO,y
|
||||
sta LOGO.Filename,x
|
||||
cpy A2osX.LOGO
|
||||
bne .2
|
||||
|
||||
stx LOGO.Filename
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
|
@ -197,6 +200,7 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
|
|||
.DA #MLIREAD
|
||||
.DA MLIREAD00
|
||||
bcs .98
|
||||
|
||||
jsr .98
|
||||
bra A2osX.ScreenDLGR
|
||||
|
||||
|
@ -216,12 +220,13 @@ A2osX.ScreenDLGR
|
|||
sta SETMIXED
|
||||
sta SET80DISP
|
||||
sta SET80STORE
|
||||
sta CLRPAGE2
|
||||
|
||||
* bit RDIOUDIS
|
||||
* sta SETIOUDIS
|
||||
bit RDIOUDIS
|
||||
sta SETIOUDIS
|
||||
sta SETDHIRES
|
||||
* bmi .10
|
||||
* sta CLRIOUDIS
|
||||
bmi .10
|
||||
sta CLRIOUDIS
|
||||
|
||||
.10 sta CLRTEXT
|
||||
|
||||
|
|
|
@ -90,6 +90,7 @@ L.IRC.USER .DA IRC.USER
|
|||
L.IRC.JOIN .DA IRC.JOIN
|
||||
L.IRC.JOINKEY .DA IRC.JOINKEY
|
||||
L.IRC.PONG .DA IRC.PONG
|
||||
L.IRC.PART .DA IRC.PART
|
||||
L.SEQ.INIT .DA SEQ.INIT
|
||||
L.SEQ.BAR .DA SEQ.BAR
|
||||
L.SEQ.TXTCLR .DA SEQ.TXTCLR
|
||||
|
@ -268,16 +269,11 @@ CS.RUN.LOOP >SLEEP
|
|||
lda hFile
|
||||
>SYSCALL feof
|
||||
bcs .9
|
||||
tay
|
||||
* bne .2
|
||||
beq .77
|
||||
|
||||
lda $427
|
||||
eor #$C0
|
||||
sta $427
|
||||
bra .2
|
||||
|
||||
.77 >PUSHWI MSGSIZE
|
||||
tay
|
||||
bne .2
|
||||
|
||||
>PUSHWI MSGSIZE
|
||||
>PUSHW ZPMsgPtr
|
||||
lda hFile
|
||||
>SYSCALL fgets
|
||||
|
@ -285,6 +281,8 @@ CS.RUN.LOOP >SLEEP
|
|||
|
||||
jsr CS.RUN.REQ
|
||||
bcs .9
|
||||
|
||||
>SLEEP
|
||||
|
||||
.2 ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
|
@ -475,9 +473,7 @@ CS.RUN.NICK >LDYA L.MSG.NICK
|
|||
|
||||
bra .1
|
||||
|
||||
.8 lda #"N"
|
||||
sta $427
|
||||
clc
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.USER >LDYA L.MSG.USER
|
||||
|
@ -519,9 +515,7 @@ CS.RUN.USER >LDYA L.MSG.USER
|
|||
|
||||
bra .1
|
||||
|
||||
.8 lda #"U"
|
||||
sta $427
|
||||
clc
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.JOIN >LDYA L.MSG.JOIN
|
||||
|
@ -603,8 +597,7 @@ CS.RUN.REQ jsr CS.RUN.SPLITMSG
|
|||
*--------------------------------------
|
||||
CS.RUN.CMD.JOIN sec
|
||||
ror bJoin
|
||||
lda #"J"
|
||||
sta $427
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -875,6 +868,15 @@ CS.RUN.CHARIN.CTRL
|
|||
.1 cmp #$14 Ctrl-T
|
||||
bne .8
|
||||
|
||||
>PUSHB hFile
|
||||
|
||||
>PUSHW L.IRC.PART
|
||||
lda #4 channel
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL FPrintF
|
||||
|
||||
lda #3
|
||||
sec
|
||||
rts
|
||||
|
@ -980,10 +982,11 @@ IRC.USER .AZ "USER %s 0 * :%s\r\n"
|
|||
IRC.JOIN .AZ "JOIN %s\r\n"
|
||||
IRC.JOINKEY .AZ "JOIN %s %s\r\n"
|
||||
IRC.PONG .AZ "PONG %s\r\n"
|
||||
IRC.PART .AZ "PART %s\r\n"
|
||||
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%79s\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.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"
|
||||
|
|
|
@ -228,13 +228,13 @@ bterr2 bcs booterr
|
|||
jmp kernel go execute kernel code.
|
||||
*--------------------------------------
|
||||
booterr
|
||||
* jsr clrscrn clear video
|
||||
* ldy #BB.MSG.ERR.Len-1
|
||||
jsr clrscrn clear video
|
||||
ldy #BB.MSG.ERR.Len-1
|
||||
|
||||
*.1 lda BB.MSG.ERR,y
|
||||
* sta scrn,y
|
||||
* dey
|
||||
* bpl .1
|
||||
.1 lda BB.MSG.ERR,y
|
||||
sta scrn,y
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
jmp $ff69
|
||||
*--------------------------------------
|
||||
|
@ -254,8 +254,8 @@ endcode ldx BB.Slotn0
|
|||
|
||||
jmp BB.Seek
|
||||
*--------------------------------------
|
||||
*BB.MSG.ERR .AS -"ERR"
|
||||
*BB.MSG.ERR.Len .EQ *-BB.MSG.ERR
|
||||
BB.MSG.ERR .AS -"BOOT ERROR"
|
||||
BB.MSG.ERR.Len .EQ *-BB.MSG.ERR
|
||||
BB.ProDOS .DA #$26 $20 = storage type + 6 = "PRODOS" len
|
||||
.AS "PRODOS"
|
||||
*--------------------------------------
|
||||
|
@ -282,7 +282,8 @@ BB.ReadBlock lda blok figure out track & sector.
|
|||
|
||||
ldx BB.Slotn0
|
||||
lda IO.D2.DrvOn,x
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
||||
jsr BB.AllPhasesOff
|
||||
|
||||
jsr BB.Seek go read sector.
|
||||
|
||||
|
@ -304,97 +305,67 @@ BB.Seek lda BB.HdrTrk get track we're on
|
|||
jsr BB.Trk2Qtrk
|
||||
sta BB.TargetQTrack
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda BB.TargetQTrack
|
||||
sec
|
||||
sbc BB.CurrentQTrack
|
||||
beq .8
|
||||
|
||||
bcc .2
|
||||
|
||||
* Current < Target, must move in
|
||||
|
||||
cmp #2
|
||||
bcc .5 one QT remaining
|
||||
|
||||
lda BB.CurrentQTrack
|
||||
inc
|
||||
inc
|
||||
bra .3
|
||||
|
||||
* Current > Target, must move out
|
||||
|
||||
.2 cmp #$FF
|
||||
bcs .6 one QT remaining
|
||||
|
||||
lda BB.CurrentQTrack
|
||||
dec
|
||||
|
||||
.3 and #$FE
|
||||
|
||||
sta BB.CurrentQTrack
|
||||
|
||||
.1 lda BB.CurrentQTrack
|
||||
pha
|
||||
|
||||
and #6
|
||||
ora BB.Slotn0
|
||||
tax
|
||||
tya
|
||||
beq .4
|
||||
|
||||
lda IO.D2.Ph0Off,y
|
||||
pla
|
||||
pha
|
||||
|
||||
inc
|
||||
and #6
|
||||
ora BB.Slotn0
|
||||
tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
lda IO.D2.Ph0On,y
|
||||
|
||||
pla
|
||||
|
||||
cmp BB.TargetQTrack
|
||||
beq .8
|
||||
|
||||
bcs .2
|
||||
|
||||
* Current < Target, must move in
|
||||
|
||||
inc
|
||||
|
||||
.HS B0 BCS
|
||||
|
||||
* Current > Target, must move out
|
||||
|
||||
.2 dec
|
||||
|
||||
sta BB.CurrentQTrack
|
||||
|
||||
jsr BB.WaitSeekTime
|
||||
|
||||
.4 lda IO.D2.Ph0On,x
|
||||
txa
|
||||
tay
|
||||
|
||||
|
||||
jsr BB.AllPhasesOff
|
||||
|
||||
jsr BB.WaitSeekTime
|
||||
bra .1
|
||||
|
||||
* Last QTrack
|
||||
|
||||
.5 tya
|
||||
inc
|
||||
inc
|
||||
bra .7
|
||||
|
||||
.6 tya
|
||||
|
||||
* sec
|
||||
adc #5
|
||||
|
||||
.7 and #$f6
|
||||
tax
|
||||
|
||||
|
||||
jsr BB.WaitSeekTime lda IO.D2.Ph0On,x
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
|
||||
|
||||
jsr BB.WaitSeekTime
|
||||
|
||||
.80 jsr BB.Wait25600usec
|
||||
|
||||
lda IO.D2.Ph0Off,y
|
||||
.8 jsr BB.Wait25600usec
|
||||
jsr BB.Wait25600usec
|
||||
jsr BB.AllPhasesOff
|
||||
bcs BB.Read ALWAYS
|
||||
*--------------------------------------
|
||||
BB.AllPhasesOff ldx BB.Slotn0
|
||||
lda IO.D2.Ph0Off,x
|
||||
bra BB.Read
|
||||
|
||||
.8 tya
|
||||
beq BB.Read
|
||||
|
||||
tax
|
||||
|
||||
bra .80
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
BB.WaitSeekTime lda #IO.D2.SeekTime
|
||||
.HS 2C BIT ABS
|
||||
BB.Wait25600usec
|
||||
lda #0
|
||||
phx
|
||||
|
||||
.1 ldx #19 (2)
|
||||
|
||||
.2 dex (2) delay 86 usec.
|
||||
|
@ -406,7 +377,7 @@ BB.Wait25600usec
|
|||
sec (6)
|
||||
sbc #1 (2)
|
||||
bne .1 (2+)
|
||||
plx
|
||||
|
||||
rts (6)
|
||||
*--------------------------------------
|
||||
BB.Trk2Qtrk asl x2
|
||||
|
|
|
@ -94,7 +94,6 @@ D2MoveHead >PULLB MoveTo
|
|||
bcs .9
|
||||
|
||||
jsr D2MoveHead.1
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
@ -133,6 +132,7 @@ D2MoveHead.1
|
|||
bra .1
|
||||
|
||||
.8 jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
*--------------------------------------
|
||||
D2.AllPhasesOff ldx Slotn0
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
@ -158,8 +158,8 @@ D2.QPhaseOn pha
|
|||
*--------------------------------------
|
||||
D2.Wait25600usec
|
||||
lda #0
|
||||
D2.Wait100usecA phx (3)
|
||||
|
||||
D2.Wait100usecA
|
||||
.1 ldx #18 (2)
|
||||
|
||||
.2 dex (2)
|
||||
|
@ -172,7 +172,6 @@ D2.Wait100usecA phx (3)
|
|||
sbc #1 (2)
|
||||
bne .1 (3)
|
||||
|
||||
plx (4)
|
||||
rts (6)
|
||||
*/--------------------------------------
|
||||
* # D2TrkRead16s
|
||||
|
|
|
@ -1079,9 +1079,11 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
|||
|
||||
jsr SKT.CheckStream
|
||||
bcs .9
|
||||
|
||||
lda #$ff no DATA, EOF = true
|
||||
* clc
|
||||
rts
|
||||
|
||||
.8 lda #0 ...EOF = false
|
||||
clc
|
||||
.9 rts
|
||||
|
@ -1101,6 +1103,7 @@ SKT.CheckTCP ldy #S.SOCKET.O
|
|||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
beq .8
|
||||
|
||||
bcc .90
|
||||
|
||||
lda #MLI.E.IO
|
||||
|
|
|
@ -192,7 +192,7 @@ TCP.IN.JMP.ESTBLSH
|
|||
|
||||
.5 lda (ZPFrameInPtr),y
|
||||
eor SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
||||
bne .9 Missed a frame.....
|
||||
bne .90 Missed a frame.....go send ACK
|
||||
|
||||
dey
|
||||
dex
|
||||
|
@ -231,11 +231,10 @@ TCP.IN.JMP.ESTBLSH
|
|||
jsr SKT.StoreTCB update socket
|
||||
|
||||
lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||
jsr TCP.SetSocketTCPO FIN received, Send FIN.ACK
|
||||
jsr TCP.OUT.SendOptA FIN received, Send FIN.ACK
|
||||
|
||||
lda #S.SOCKET.TCP.S.LASTACK
|
||||
ldy #S.SOCKET.TCP.S
|
||||
sta (ZPPtrSKT),y
|
||||
jmp SKT.StoreTCB.S
|
||||
|
||||
.8 ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
|
@ -246,6 +245,9 @@ TCP.IN.JMP.ESTBLSH
|
|||
.80 clc
|
||||
rts
|
||||
|
||||
.90 lda #S.TCP.OPTIONS.ACK
|
||||
jsr TCP.OUT.SendOptA
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -27,7 +27,7 @@ XRW.START cld $D8 to flag language card bank 1 (main)
|
|||
lda #$01
|
||||
sta XRW.montimeh
|
||||
|
||||
L59A6 lda XRW.LastUnitUsed
|
||||
.1 lda XRW.LastUnitUsed
|
||||
and #$70
|
||||
tax
|
||||
beq L59BD branch if no previous ever (boot only).
|
||||
|
@ -39,8 +39,8 @@ L59A6 lda XRW.LastUnitUsed
|
|||
jsr XRW.Wait100usecA
|
||||
|
||||
lda XRW.montimeh
|
||||
bne L59A6
|
||||
|
||||
bne .1
|
||||
*--------------------------------------
|
||||
L59BD jsr XRW.AllPhasesOff make sure all motor phases are off
|
||||
|
||||
lda IO.D2.ReadMode,x turn off write enable X = slot $S0
|
||||
|
@ -49,7 +49,7 @@ L59BD jsr XRW.AllPhasesOff make sure all motor phases are off
|
|||
|
||||
lda A4L command #.
|
||||
cmp #$04 is the command allowed ?
|
||||
bcs .9 if not.
|
||||
bcs XRW.E.IO if not.
|
||||
|
||||
lda bloknml
|
||||
ldx bloknml+1
|
||||
|
@ -72,30 +72,7 @@ L59BD jsr XRW.AllPhasesOff make sure all motor phases are off
|
|||
lsr
|
||||
lsr
|
||||
sta XRW.ReqSector
|
||||
|
||||
jsr regrwts
|
||||
bcs .3 if error
|
||||
|
||||
inc buf+1
|
||||
|
||||
inc XRW.ReqSector
|
||||
inc XRW.ReqSector
|
||||
|
||||
jsr regrwts get 2nd half of block
|
||||
|
||||
dec buf+1
|
||||
|
||||
.3 rts
|
||||
|
||||
.9 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
regrwts ldy #1
|
||||
sty XRW.RecalibrateCnt
|
||||
|
||||
* now check if the motor is on, then start it
|
||||
|
||||
jsr XRW.CheckMotorOn
|
||||
|
||||
php save test results
|
||||
|
@ -126,15 +103,17 @@ L5362 lda IO.D2.DrvSel1,x
|
|||
|
||||
php now zero flag set.
|
||||
|
||||
L5372 lda A4L make sure this command needs seeking.
|
||||
beq L537C branch if status check.
|
||||
L5372
|
||||
* lda A4L make sure this command needs seeking.
|
||||
* beq L537C branch if status check.
|
||||
|
||||
* lda XRW.ReqTrack get destination track
|
||||
* jsr XRW.Seek and go to it.
|
||||
|
||||
* now at desired track. was the motor already on ?
|
||||
|
||||
L537C plp was motor on ?
|
||||
*L537C
|
||||
plp was motor on ?
|
||||
bne L538E if so, don't wait.
|
||||
|
||||
* motor was off, wait for it to speed up
|
||||
|
@ -156,6 +135,28 @@ L537F lda #1
|
|||
|
||||
L538E lda A4L get command #
|
||||
beq XRW.TestWP if 0 then status command
|
||||
*--------------------------------------
|
||||
jsr regrwts
|
||||
bcs .3 if error
|
||||
|
||||
inc buf+1
|
||||
|
||||
inc XRW.ReqSector
|
||||
inc XRW.ReqSector
|
||||
|
||||
lda A4L get command #
|
||||
jsr regrwts get 2nd half of block
|
||||
|
||||
dec buf+1
|
||||
|
||||
.3 rts
|
||||
|
||||
XRW.E.IO lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
regrwts ldy #1
|
||||
sty XRW.RecalibrateCnt
|
||||
|
||||
lsr set carry = 1 for read, 0 for write.
|
||||
bcs L5398 must prenibblize for write
|
||||
|
@ -550,8 +551,6 @@ XRW.WaitSeekTime
|
|||
lda #IO.D2.SeekTime
|
||||
|
||||
XRW.Wait100usecA
|
||||
phx (3)
|
||||
|
||||
.1 ldx #16 (2)
|
||||
|
||||
.2 dex (2)
|
||||
|
@ -569,7 +568,6 @@ XRW.Wait100usecA
|
|||
sbc #1 (2)
|
||||
bne .1 (3)
|
||||
|
||||
plx (4)
|
||||
rts (6)
|
||||
*--------------------------------------
|
||||
* read subroutine (16-sector format)
|
||||
|
@ -773,6 +771,7 @@ XRW.Seek ldx XRW.UnitIndex
|
|||
bra .1
|
||||
|
||||
.8 jsr XRW.Wait25600usec
|
||||
jsr XRW.Wait25600usec
|
||||
*--------------------------------------
|
||||
XRW.AllPhasesOff
|
||||
ldx A2L
|
||||
|
|
|
@ -120,6 +120,7 @@ Kernel.Init3 sta SETALTZP
|
|||
sta SET80DISP
|
||||
sta SET80STORE
|
||||
sta CLRPAGE2
|
||||
|
||||
bit RDIOUDIS
|
||||
sta SETIOUDIS
|
||||
sta SETDHIRES
|
||||
|
@ -1220,8 +1221,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
|
||||
|
|
Loading…
Reference in New Issue