mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-24 14:31:05 +00:00
Kernel version 0.9 : Change in API to conform with stdlib & stdio
This commit is contained in:
parent
d0682caab7
commit
62ad3573b9
@ -29,7 +29,7 @@ Print A (char) to File
|
||||
## Out:
|
||||
+ CC = success
|
||||
|
||||
# PutCA
|
||||
# PutCharA
|
||||
Print A (char) to StdOut
|
||||
|
||||
## In:
|
||||
@ -38,21 +38,21 @@ Print A (char) to StdOut
|
||||
## Out:
|
||||
+ CC = success
|
||||
|
||||
# FGetCA
|
||||
Get char from File
|
||||
# GetChar
|
||||
Get char from StdIn
|
||||
|
||||
## In:
|
||||
+ A = hFILE
|
||||
+ none.
|
||||
|
||||
## Out:
|
||||
+ CC = success
|
||||
+ A = char
|
||||
|
||||
# GetC
|
||||
Get char from StdIn
|
||||
# GetCA
|
||||
Get char from File
|
||||
|
||||
## In:
|
||||
+ none.
|
||||
+ A = hFILE
|
||||
|
||||
## Out:
|
||||
+ CC = success
|
||||
@ -108,17 +108,17 @@ Scan a PStr (in progress)
|
||||
## Out:
|
||||
|
||||
# PrintFYA/SPrintFYA/FPrintFYA
|
||||
Prints Pascal/C-Style String
|
||||
Prints C-Style String
|
||||
|
||||
## In:
|
||||
+ PrintFYA :
|
||||
PrintFYA :
|
||||
+ Y,A = PTR to CStr
|
||||
+ SPrintFYA :
|
||||
SPrintFYA :
|
||||
+ Y,A = PTR to CStr
|
||||
+ PULLW = Ptr to Dst Buffer
|
||||
+ FPrintFYA :
|
||||
FPrintFYA :
|
||||
+ Y,A = PTR to CStr
|
||||
+ PULLB = hDev
|
||||
+ PULLB = hNode
|
||||
|
||||
## Out:
|
||||
+ CC : success
|
||||
|
Binary file not shown.
Binary file not shown.
@ -32,14 +32,14 @@ SRC.PrintLineErr ldx #0
|
||||
.1 lda UsrBuf256,x
|
||||
beq .2
|
||||
phx
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
inx
|
||||
bcc .1
|
||||
rts
|
||||
|
||||
.2 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
|
||||
ldx #0
|
||||
@ -50,19 +50,19 @@ SRC.PrintLineErr ldx #0
|
||||
beq .4
|
||||
phx
|
||||
lda #'-'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
bcs .9
|
||||
bra .3
|
||||
|
||||
.4 lda #'^'
|
||||
phx
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
bcs .9
|
||||
|
||||
.5 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SRC.ParseLine ldx UsrBuf256
|
||||
@ -326,12 +326,12 @@ SRC.ParseLine.OpCode
|
||||
.21 inx
|
||||
lda SRC.AM.StrBuf,x
|
||||
phx
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
cpx SRC.AM.StrBuf
|
||||
bne .21
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
|
||||
.20 ldy #ASM.PC
|
||||
|
@ -110,7 +110,7 @@ SYM.Dump >LDYA L.MSG.SYMBOLS
|
||||
rts
|
||||
|
||||
.5 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
ldy #SYM.DumpCount
|
||||
lda (pData),y
|
||||
|
@ -241,11 +241,11 @@ CS.RUN.PRINT sty BytesRead Y,A = Bytes read
|
||||
bra .7
|
||||
|
||||
.4 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
lda #10
|
||||
|
||||
.6 >SYSCALL PutCA
|
||||
.6 >SYSCALL PutCharA
|
||||
bcs .9
|
||||
|
||||
.7 inc ByteIndex
|
||||
|
@ -239,9 +239,9 @@ CS.RUN.CheckErr bcs .1
|
||||
rts
|
||||
|
||||
.2 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
pla
|
||||
sec
|
||||
.9 rts
|
||||
|
@ -14,7 +14,7 @@ SCRN.Init ldy #ScreenH
|
||||
>SYSCALL PrintFYA
|
||||
bcs .9
|
||||
lda #12
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
@ -162,7 +162,7 @@ SCRN.UpdateLineAtALenY
|
||||
pla
|
||||
bcs .11
|
||||
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
.11 ply
|
||||
plx
|
||||
bcs .9
|
||||
@ -305,7 +305,7 @@ SCRN.ClearEOLA pha
|
||||
pha
|
||||
|
||||
lda #' '
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcc .1
|
||||
plx
|
||||
rts
|
||||
@ -332,7 +332,7 @@ SCRN.InvLineA sta .2+1
|
||||
.1 pha
|
||||
|
||||
lda #' '
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
pla
|
||||
bcs .9
|
||||
|
||||
|
@ -162,7 +162,7 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
|
||||
|
||||
.4 phx
|
||||
lda #'0'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
dex
|
||||
bne .4
|
||||
|
@ -243,7 +243,7 @@ CS.RUN.DIR ldy #bAllmostAll
|
||||
|
||||
.1 lda #' '
|
||||
phx
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
bcs .9
|
||||
dex
|
||||
@ -401,9 +401,9 @@ CS.RUN.NewLine ldy #ColCount
|
||||
beq CS.RUN.NewLine.8
|
||||
CS.RUN.NewLine.1
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
rts
|
||||
CS.RUN.NewLine.8
|
||||
clc
|
||||
|
@ -73,9 +73,9 @@ CS.RUN >LDYA L.MSG0
|
||||
bcs .9
|
||||
|
||||
.6 lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
.7 inc DEV.ID
|
||||
lda DEV.ID
|
||||
|
@ -292,11 +292,11 @@ NSC.Dump ldx #1
|
||||
lda DS1216E.DATA+2
|
||||
jsr PrintBCD
|
||||
lda #'/'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda DS1216E.DATA+1
|
||||
jsr PrintBCD
|
||||
lda #'/'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda DS1216E.DATA
|
||||
jsr PrintBCD
|
||||
|
||||
@ -309,15 +309,15 @@ NSC.Dump ldx #1
|
||||
.4 and #$3F
|
||||
jsr PrintBCD
|
||||
lda #':'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda DS1216E.DATA+5
|
||||
jsr PrintBCD
|
||||
lda #':'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda DS1216E.DATA+6
|
||||
jsr PrintBCD
|
||||
lda #'.'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda DS1216E.DATA+7
|
||||
jsr PrintBCD
|
||||
rts
|
||||
@ -328,12 +328,12 @@ PrintBCD pha
|
||||
lsr
|
||||
lsr
|
||||
ora #$30
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
pla
|
||||
and #$0f
|
||||
ora #$30
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
GetBCD lda (ZPPtr1),y
|
||||
|
@ -533,10 +533,10 @@ CS.RUN.OVERWRITE.KEY
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
CS.RUN.CR lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
@ -653,7 +653,7 @@ CS.RUN.Copy stz .90+1
|
||||
bmi .8
|
||||
|
||||
lda #'.'
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
|
@ -677,7 +677,7 @@ SetCharAtXY cmp #$40
|
||||
|
||||
sta CLRWRITEAUX
|
||||
plp
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetCharAtXY php
|
||||
|
@ -269,9 +269,9 @@ SYS.FreeStkObjA .EQ $AC
|
||||
* .EQ $AE
|
||||
*--------------------------------------
|
||||
SYS.FPutCAY .EQ $B0
|
||||
SYS.PutCA .EQ $B2
|
||||
SYS.FGetCA .EQ $B4
|
||||
SYS.GetC .EQ $B6
|
||||
SYS.PutCharA .EQ $B2
|
||||
SYS.GetCA .EQ $B4
|
||||
SYS.GetChar .EQ $B6
|
||||
SYS.FPutS .EQ $B8
|
||||
SYS.PutSYA .EQ $BA
|
||||
SYS.FGetS .EQ $BC
|
||||
|
@ -79,10 +79,10 @@ CS.RUN lda #0
|
||||
bcc .2
|
||||
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs .9
|
||||
|
||||
>LDYA L.SHELL
|
||||
@ -153,7 +153,7 @@ INPUT.CHARIN tax save char...
|
||||
lda (pData),y
|
||||
bne .1
|
||||
txa
|
||||
.1 >SYSCALL PutCA
|
||||
.1 >SYSCALL PutCharA
|
||||
rts
|
||||
|
||||
.2 cpx #13 CR
|
||||
|
@ -489,11 +489,11 @@ Cmd.Exec.ECHO lda ARGS
|
||||
|
||||
Cmd.Exec.ECHO.CR
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bcs Cmd.Exec.ECHO.RTS
|
||||
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
Cmd.Exec.ECHO.RTS
|
||||
rts
|
||||
@ -562,7 +562,7 @@ Cmd.Exec.READ lda ARGS
|
||||
cmp #'"'
|
||||
beq .1
|
||||
phx
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
plx
|
||||
bcs .99
|
||||
bra .3
|
||||
|
@ -159,7 +159,7 @@ CS.RUN ldy #VarBuffer READ Command ?
|
||||
lda (pData),y
|
||||
bpl .13
|
||||
|
||||
>SYSCALL GetC
|
||||
>SYSCALL GetChar
|
||||
bcs .8
|
||||
|
||||
.13 jsr CheckSleep
|
||||
@ -181,7 +181,7 @@ CS.RUN ldy #VarBuffer READ Command ?
|
||||
bcs CS.RUN.EXIT.RTS
|
||||
|
||||
.1 >SYSCALL Sleep
|
||||
>SYSCALL GetC
|
||||
>SYSCALL GetChar
|
||||
bcs .1 no char
|
||||
|
||||
jsr CS.CHARIN
|
||||
@ -219,7 +219,7 @@ CS.RUN.READ lda #0
|
||||
sta (pData)
|
||||
|
||||
.1 >SYSCALL Sleep
|
||||
>SYSCALL GetC
|
||||
>SYSCALL GetChar
|
||||
bcs .1 no char
|
||||
|
||||
jsr CS.CHARIN
|
||||
@ -289,13 +289,13 @@ CS.RUN.BATCH jsr CSH.Run
|
||||
|
||||
.90 jsr CSH.GetChar
|
||||
bcs .92
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
.91 jsr CSH.GetNextChar
|
||||
bcs .92
|
||||
cmp #13
|
||||
beq .92
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
bra .91
|
||||
|
||||
.92 pla
|
||||
@ -409,7 +409,7 @@ CS.CHARIN tax
|
||||
bne .8
|
||||
|
||||
txa
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
@ -417,9 +417,9 @@ CS.CHARIN tax
|
||||
CS.CHARIN.CTRL cpx #13 CR
|
||||
bne .10
|
||||
txa
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda #10
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
|
||||
lda (pData) CmdBuffer
|
||||
ora #$80
|
||||
@ -513,14 +513,27 @@ PrintPrompt >LDYA L.ENV.PS1
|
||||
plp
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CmdLine.CLR jsr CmdLine.DEL
|
||||
bne CmdLine.CLR
|
||||
rts
|
||||
CmdLine.CLR lda (pData)
|
||||
beq .9
|
||||
|
||||
tay
|
||||
lda #8
|
||||
|
||||
.1 sta (pData),y
|
||||
dey
|
||||
bne .1
|
||||
jsr CmdLine.SET
|
||||
|
||||
lda #0
|
||||
sta (pData)
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CmdLine.DEL lda (pData)
|
||||
beq .9
|
||||
|
||||
lda #8
|
||||
>SYSCALL PutCA
|
||||
>SYSCALL PutCharA
|
||||
lda (pData)
|
||||
dec
|
||||
sta (pData)
|
||||
|
@ -16,27 +16,27 @@ K.FPutCAY sta K.PutC.Char
|
||||
sty K.PutC.Node
|
||||
tya
|
||||
phy
|
||||
bne K.PutCA.1
|
||||
K.PutCA.8 ply
|
||||
bne K.PutCharA.1
|
||||
K.PutCharA.8 ply
|
||||
clc
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # PutCA
|
||||
* # PutCharA
|
||||
* Print A (char) to StdOut
|
||||
* ## In:
|
||||
* A : char to print
|
||||
* ## Out:
|
||||
* CC = success
|
||||
*\--------------------------------------
|
||||
K.PutCA sta K.PutC.Char
|
||||
K.PutCharA sta K.PutC.Char
|
||||
phy
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
beq K.PutCA.8 NUL
|
||||
beq K.PutCharA.8 NUL
|
||||
|
||||
phx
|
||||
|
||||
K.PutCA.1 sta K.PutC.Node
|
||||
K.PutCharA.1 sta K.PutC.Node
|
||||
jsr K.GetMemPtrA
|
||||
>STYA pDev
|
||||
|
||||
@ -44,27 +44,27 @@ K.PutCA.1 sta K.PutC.Node
|
||||
lda (pDev),y
|
||||
asl
|
||||
tax
|
||||
jsr K.PutCA.Jmp
|
||||
jsr K.PutCharA.Jmp
|
||||
|
||||
plx
|
||||
ply
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.PutCA.Jmp jmp (.1,x)
|
||||
.1 .DA K.PutCA.REG
|
||||
K.PutCharA.Jmp jmp (.1,x)
|
||||
.1 .DA K.PutCharA.REG
|
||||
.DA K.CHR.IOERR DIR
|
||||
.DA K.PutCA.CDEV
|
||||
.DA K.PutCharA.CDEV
|
||||
.DA K.CHR.IOERR BDEV
|
||||
.DA K.CHR.IOERR LNK
|
||||
.DA K.CHR.IOERR DSOCK
|
||||
.DA K.PutCA.SSOCK
|
||||
.DA K.PutCA.FIFO
|
||||
.DA K.PutCharA.SSOCK
|
||||
.DA K.PutCharA.FIFO
|
||||
*--------------------------------------
|
||||
K.PutCA.REG lda K.PutC.Node
|
||||
K.PutCharA.REG lda K.PutC.Node
|
||||
ldy K.PutC.Char
|
||||
jmp K.FWriteAY
|
||||
*--------------------------------------
|
||||
K.PutCA.CDEV ldy #S.NODE.DEV.JMP
|
||||
K.PutCharA.CDEV ldy #S.NODE.DEV.JMP
|
||||
lda (pDev),y
|
||||
sta .1+1
|
||||
iny
|
||||
@ -74,7 +74,8 @@ K.PutCA.CDEV ldy #S.NODE.DEV.JMP
|
||||
ldx #DEVMGR.WRITE
|
||||
.1 jmp $ffff
|
||||
*--------------------------------------
|
||||
K.PutCA.SSOCK lda (pDev) #S.NODE.HANDLER
|
||||
K.PutCharA.SSOCK
|
||||
lda (pDev) #S.NODE.HANDLER
|
||||
jsr K.GetMemPtrA
|
||||
>STYA .1
|
||||
|
||||
@ -87,7 +88,7 @@ K.PutCA.SSOCK lda (pDev) #S.NODE.HANDLER
|
||||
tax Function Offset for write
|
||||
.1 jmp $ffff
|
||||
*--------------------------------------
|
||||
K.PutCA.FIFO ldy #S.NODE.FIFO.S
|
||||
K.PutCharA.FIFO ldy #S.NODE.FIFO.S
|
||||
lda (pDev),y
|
||||
beq .9 Remote PS did not opened yet the pipe
|
||||
cmp #S.NODE.FIFO.S.Closed
|
||||
@ -123,16 +124,7 @@ K.PutCA.FIFO ldy #S.NODE.FIFO.S
|
||||
K.PutC.Char .BS 1
|
||||
K.PutC.Node .BS 1
|
||||
*/--------------------------------------
|
||||
* # FGetCA
|
||||
* Get char from File
|
||||
* ## In:
|
||||
* A = hFILE
|
||||
* ## Out:
|
||||
* CC = success
|
||||
* A = char
|
||||
*\--------------------------------------
|
||||
*/--------------------------------------
|
||||
* # GetC
|
||||
* # GetChar
|
||||
* Get char from StdIn
|
||||
* ## In:
|
||||
* none.
|
||||
@ -140,10 +132,18 @@ K.PutC.Node .BS 1
|
||||
* CC = success
|
||||
* A = char
|
||||
*\--------------------------------------
|
||||
K.GetC ldy #S.PS.hStdIn
|
||||
K.GetChar ldy #S.PS.hStdIn
|
||||
lda (pPs),y
|
||||
|
||||
K.FGetCA sta K.PutC.Node
|
||||
*/--------------------------------------
|
||||
* # GetCA
|
||||
* Get char from File
|
||||
* ## In:
|
||||
* A = hFILE
|
||||
* ## Out:
|
||||
* CC = success
|
||||
* A = char
|
||||
*\--------------------------------------
|
||||
K.GetCA sta K.PutC.Node
|
||||
|
||||
jsr K.GetMemPtrA
|
||||
>STYA pDev
|
||||
|
@ -103,7 +103,7 @@ K.SScanF.IsDigit
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # PrintFYA/SPrintFYA/FPrintFYA
|
||||
* Prints Pascal/C-Style String
|
||||
* Prints C-Style String
|
||||
* ## In:
|
||||
* PrintFYA :
|
||||
* Y,A = PTR to CStr
|
||||
@ -112,7 +112,7 @@ K.SScanF.IsDigit
|
||||
* PULLW = Ptr to Dst Buffer
|
||||
* FPrintFYA :
|
||||
* Y,A = PTR to CStr
|
||||
* PULLB = hDev
|
||||
* PULLB = hNode
|
||||
* ## Out:
|
||||
* CC : success
|
||||
* CS : error code from Output
|
||||
@ -154,16 +154,13 @@ K.SPrintFYA >STYA ZPPtr1
|
||||
|
||||
K.FPrintFYA >STYA ZPPtr1
|
||||
|
||||
K.PPrintFYA ldx #$01 PSTR
|
||||
.HS 2C bit abs
|
||||
K.PrintFYA ldx #$00 CSTR
|
||||
>STYA ZPPtr1
|
||||
stx Printf.GetCharAtPtr1Y+1
|
||||
K.PrintFYA >STYA ZPPtr1
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 jsr Printf.GetCharAtPtr1Y
|
||||
.1 lda (ZPPtr1),y
|
||||
beq .99
|
||||
iny
|
||||
cmp #'%'
|
||||
bne .10
|
||||
|
||||
@ -171,9 +168,10 @@ K.PrintFYA ldx #$00 CSTR
|
||||
lda #' '
|
||||
sta PADCHAR
|
||||
|
||||
.2 ldx #PrintFTBL1.END-PrintFTBL1-1
|
||||
jsr Printf.GetCharAtPtr1Y
|
||||
.2 ldx #PrintFTBL2-PrintFTBL1-1
|
||||
lda (ZPPtr1),y
|
||||
beq .99
|
||||
iny
|
||||
|
||||
.3 cmp PrintFTBL1,x do we have a %x command?
|
||||
beq .8 yes, jmp to it!
|
||||
@ -220,9 +218,11 @@ K.PrintFYA ldx #$00 CSTR
|
||||
.10 cmp #'\'
|
||||
bne .20
|
||||
|
||||
ldx #PrintFTBL2.END-PrintFTBL2-1
|
||||
jsr Printf.GetCharAtPtr1Y
|
||||
ldx #PrintFTBL2.OUT-PrintFTBL2-1
|
||||
lda (ZPPtr1),y
|
||||
beq .99
|
||||
iny
|
||||
|
||||
.12 cmp PrintFTBL2,x
|
||||
beq .13
|
||||
dex
|
||||
@ -238,9 +238,7 @@ K.PrintFYA ldx #$00 CSTR
|
||||
PrintFESC jmp (PrintFJMP,x)
|
||||
*--------------------------------------
|
||||
PrintFTBL1 .AS "abBdDuefhHiILnNsS"
|
||||
PrintFTBL1.END
|
||||
PrintFTBL2 .AS "befnr\%"
|
||||
PrintFTBL2.END
|
||||
PrintFTBL2.OUT .HS 08.1B.0C.0A.0D \b\e\f\n\r
|
||||
.DA #'\' \\
|
||||
.DA #'%' \%
|
||||
@ -499,28 +497,7 @@ PrintF.SS ldy #$00 PSTR
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Printf.GetCharAtPtr1Y
|
||||
lda #$ff Self Modified PSTR/CSTR
|
||||
bne .1
|
||||
|
||||
lda (ZPPtr1),y CSTR
|
||||
beq .9
|
||||
iny advance to next char...
|
||||
bne .9
|
||||
inc ZPPtr1+1 Allow >256 CStrings
|
||||
rts
|
||||
|
||||
|
||||
.1 tya PSTR
|
||||
cmp (ZPPtr1)
|
||||
beq .9
|
||||
iny
|
||||
lda (ZPPtr1),y NZ
|
||||
|
||||
.9 clc no error, but end of string
|
||||
rts
|
||||
*--------------------------------------
|
||||
Printf.Cout jmp K.PutCA
|
||||
Printf.Cout jmp K.PutCharA
|
||||
|
||||
Printf.Cout.Ptr sta $ffff Self modified
|
||||
|
||||
|
@ -1,357 +0,0 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
LOMEM $A00
|
||||
INC 1
|
||||
AUTO 6
|
||||
*--------------------------------------
|
||||
Kernel.Init2 sei
|
||||
|
||||
>LDAXI MSG.Init2
|
||||
jsr PrintFAX
|
||||
|
||||
>LDYAI A2osX.GP
|
||||
>STYA ZPPtr1
|
||||
>LDYAI A2osX.SYSCALL
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.D1-A2osX.GP^$FFFF
|
||||
>STYA ZPPtr3
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
|
||||
>LDAXI MSG.D2
|
||||
jsr PrintFAX
|
||||
|
||||
sta SETALTZP
|
||||
lda RRAMWRAMBNK2
|
||||
lda RRAMWRAMBNK2
|
||||
|
||||
>LDYAI A2osX.D2
|
||||
>STYA ZPPtr1
|
||||
>LDYAI $D000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.E0-A2osX.D2^$FFFF
|
||||
>STYA ZPPtr3
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
|
||||
>LDAXI MSG.D1
|
||||
jsr PrintFAX
|
||||
|
||||
sta SETALTZP
|
||||
lda RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
|
||||
>LDYAI A2osX.D1
|
||||
>STYA ZPPtr1
|
||||
>LDYAI $D000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.D2-A2osX.D1^$FFFF
|
||||
>STYA ZPPtr3
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
|
||||
>LDAXI MSG.E0
|
||||
jsr PrintFAX
|
||||
|
||||
sta SETALTZP
|
||||
lda RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
|
||||
>LDYAI A2osX.E0
|
||||
>STYA ZPPtr1
|
||||
>LDYAI $E000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.E0.E-A2osX.E0^$FFFF
|
||||
>STYA ZPPtr3
|
||||
jsr Kernel.Move
|
||||
|
||||
>LDYAI D.STACK.TOP
|
||||
>STYA pStack init Soft Stack
|
||||
|
||||
sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F
|
||||
cli
|
||||
|
||||
jsr KConfigLoad
|
||||
|
||||
lda A2osX.HZ
|
||||
pha push HZ
|
||||
>LDAXI MSG.HZ
|
||||
jsr PrintFAX
|
||||
|
||||
jsr CPU.Init
|
||||
|
||||
>LDAXI MSG.Init2.OK
|
||||
jsr PrintFAX
|
||||
rts Do NOT replace this JSR/RTS with a JMP
|
||||
*--------------------------------------
|
||||
Kernel.Move ldy #0
|
||||
.1 inc ZPPtr3
|
||||
bne .2
|
||||
inc ZPPtr3+1
|
||||
beq .9
|
||||
|
||||
.2 lda (ZPPtr1),y
|
||||
sta (ZPPtr2),y
|
||||
iny
|
||||
bne .1
|
||||
|
||||
inc ZPPtr1+1
|
||||
inc ZPPtr2+1
|
||||
bne .1
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CPU.Init >LDAXI MSG.CPU
|
||||
jsr PrintFAX
|
||||
|
||||
jsr Detect6502 A = CPU type
|
||||
sta A2osX.CPUTYPE
|
||||
ldx MSG.CPUTYPEH,y
|
||||
lda MSG.CPUTYPEL,y
|
||||
jsr PrintFAX
|
||||
|
||||
lda MACHID
|
||||
and #MACHID.TYPE
|
||||
cmp #MACHID.TYPE.IIc
|
||||
beq CPU.Init.Z80
|
||||
|
||||
>LDAXI MSG.CPU.SPEED
|
||||
jsr PrintFAX
|
||||
|
||||
stz A2osX.RANDOM16
|
||||
stz A2osX.RANDOM16+1
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
.1 bit VBL
|
||||
bpl .2
|
||||
|
||||
.2 bit VBL
|
||||
bmi .2
|
||||
|
||||
ldx #0 Count LO
|
||||
lda #0 Count HI
|
||||
|
||||
.3 ldy #3 (2)
|
||||
|
||||
.4 nop (2)
|
||||
dey (2)
|
||||
bne .4 (2*)
|
||||
|
||||
inc A2osX.RANDOM16 (6)
|
||||
bne .5 (2*)
|
||||
|
||||
inc A2osX.RANDOM16+1 (6)
|
||||
bit VBL (4)
|
||||
bpl .3 (2*)
|
||||
bmi .6
|
||||
|
||||
.5 nop (2)
|
||||
nop (2)
|
||||
nop (2)
|
||||
bit VBL (4)
|
||||
bpl .3 (2*)
|
||||
|
||||
.6 plp
|
||||
|
||||
stz A2osX.CPUSPEED
|
||||
|
||||
.7 sec
|
||||
lda A2osX.RANDOM16
|
||||
sbc #100
|
||||
tax
|
||||
lda A2osX.RANDOM16+1
|
||||
sbc /100
|
||||
bcc .8
|
||||
|
||||
stx A2osX.RANDOM16
|
||||
sta A2osX.RANDOM16+1
|
||||
inc A2osX.CPUSPEED
|
||||
bra .7
|
||||
|
||||
.8 lda A2osX.RANDOM16
|
||||
sta A2osX.CPUSPEED+1
|
||||
pha push CPU speed LO
|
||||
lda A2osX.CPUSPEED
|
||||
pha push CPU speed HI
|
||||
>LDAXI MSG.CPU.SPEEDOK
|
||||
jsr PrintFAX
|
||||
|
||||
CPU.Init.Z80 >LDAXI MSG.Z80
|
||||
jsr PrintFAX
|
||||
jsr DetectZ80
|
||||
bcs .9
|
||||
sta A2osX.Z80SLOT
|
||||
pha Push Z80Slot
|
||||
|
||||
tax
|
||||
lda #A2osX.SLOTS.Z80
|
||||
sta A2osX.SLOTS,x
|
||||
|
||||
>LDAXI MSG.Z80.OK
|
||||
jsr PrintFAX
|
||||
rts
|
||||
|
||||
.9 >LDAXI MSG.Z80.KO
|
||||
jsr PrintFAX
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Out:
|
||||
* A = $60, 6502
|
||||
* A = $61, 65C02
|
||||
* A = $62, 65R02
|
||||
* A = $63, 65816
|
||||
*--------------------------------------
|
||||
Detect6502 ldy #0 Test 6502 BCD bug
|
||||
sed
|
||||
lda #$99
|
||||
clc
|
||||
adc #$01
|
||||
cld
|
||||
bmi .9 BUG!, we have 6502
|
||||
|
||||
ldy #3 test 65C816 TYX Instruction
|
||||
ldx #0
|
||||
.OP 65816
|
||||
tyx TYX: if 65C816, x becomes non-zero
|
||||
.OP 65C02
|
||||
bne .9 worked! 65C816
|
||||
|
||||
dey y=2 -> R65C02
|
||||
ldx $EA save zp $EA
|
||||
stz $EA store 0 in $EA
|
||||
* .OP 65R02
|
||||
.HS F7EA For compatibility with A2osX.ASM
|
||||
* smb 7,$EA if not Rockwell, assemble as nop nop
|
||||
* .OP 65C02
|
||||
asl $EA cs if Rockwell
|
||||
stx $EA restore zp $EA
|
||||
bcs .9
|
||||
|
||||
dey y=1 -> 65C02
|
||||
|
||||
.9 tya
|
||||
ora #$60
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Out:
|
||||
* A = Z80 Slot
|
||||
*--------------------------------------
|
||||
DetectZ80 ldx #Z80Code.Size
|
||||
.1 lda Z80Code.Start-1,x
|
||||
sta $1000-1,x 00000H for Z80
|
||||
dex
|
||||
bne .1
|
||||
|
||||
stz ZPPtr1
|
||||
lda #$C1
|
||||
sta ZPPtr1+1
|
||||
|
||||
.2 sta (ZPPtr1)
|
||||
lda $100D
|
||||
bmi .8
|
||||
inc ZPPtr1+1
|
||||
lda ZPPtr1+1
|
||||
cmp #$C8
|
||||
beq .9 CS
|
||||
clc
|
||||
adc #$20
|
||||
sta $100A
|
||||
bra .2
|
||||
|
||||
.8 lda ZPPtr1+1
|
||||
and #$0F
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KConfigLoad >LDAXI MSG.KCREAD
|
||||
jsr PrintFAX
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN00
|
||||
bcs .9
|
||||
|
||||
lda MLIOPEN00+5
|
||||
sta MLIREAD00+1
|
||||
sta MLICLOSE00+1
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIREAD
|
||||
.DA MLIREAD00
|
||||
php
|
||||
pha
|
||||
jsr MLI
|
||||
.DA #MLICLOSE
|
||||
.DA MLICLOSE00
|
||||
pla
|
||||
plp
|
||||
bcs .9
|
||||
|
||||
>LDAXI MSG.KCREAD.OK
|
||||
jsr PrintFAX
|
||||
rts
|
||||
|
||||
.9 >LDAXI MSG.KCREAD.KO
|
||||
jsr PrintFAX
|
||||
rts
|
||||
*--------------------------------------
|
||||
Z80Code.Start .HS 31FFFF START: LD SP,0FFFFH Init Stack
|
||||
.HS 3EFF LD A,0FFH Set Flag
|
||||
.HS 320D00 LD (FLAG),A
|
||||
.HS 3200E1 LD (0E100H),A Back to 6502
|
||||
.HS 18F3 JR START Loop
|
||||
.HS 00 FLAG: .DB 0
|
||||
Z80Code.Size .EQ *-Z80Code.Start
|
||||
*--------------------------------------
|
||||
MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 Global Page...\n"
|
||||
MSG.D1 >CSTR " - $D000 Bank1...\n"
|
||||
MSG.D2 >CSTR " - $D000 Bank2...\n"
|
||||
MSG.E0 >CSTR " - $E000...\n"
|
||||
MSG.HZ >CSTR "Kernel SYS Timer Set For %d0 hz Machine.\n"
|
||||
MSG.Init2.OK >CSTR "A2osX[Stage2]:Complete.\n"
|
||||
*--------------------------------------
|
||||
MSG.CPU >CSTR "Checking CPU..."
|
||||
MSG.CPU.SPEED >CSTR "Detecting CPU Speed..."
|
||||
MSG.CPUTYPEL .DA #MSG.6502
|
||||
.DA #MSG.65C02
|
||||
.DA #MSG.65R02
|
||||
.DA #MSG.65816
|
||||
MSG.CPUTYPEH .DA /MSG.6502
|
||||
.DA /MSG.65C02
|
||||
.DA /MSG.65R02
|
||||
.DA /MSG.65816
|
||||
MSG.6502 >CSTR "6502.\n"
|
||||
MSG.65C02 >CSTR "65C02.\n"
|
||||
MSG.65R02 >CSTR "65R02.\n"
|
||||
MSG.65816 >CSTR "65816.\n"
|
||||
MSG.CPU.SPEEDOK >CSTR "%d.%02d Mhz.\n"
|
||||
MSG.Z80 >CSTR "Detecting Z80 CPU..."
|
||||
MSG.Z80.OK >CSTR "Detected In Slot %d.\n"
|
||||
MSG.Z80.KO >CSTR "Not Detected.\n"
|
||||
MSG.KCREAD >CSTR "Reading Kernel Config File..."
|
||||
MSG.KCREAD.OK >CSTR "OK\n"
|
||||
MSG.KCREAD.KO >CSTR "\nError While Reading Kernel Config File, Using Default.\n"
|
||||
A2OSXCONF >PSTR "A2osX.KCONFIG"
|
||||
*--------------------------------------
|
||||
MLIOPEN00 .DA #3
|
||||
.DA A2OSXCONF
|
||||
.DA $1000
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
MLIREAD00 .DA #4
|
||||
.BS 1
|
||||
.DA A2osX.HZ
|
||||
.DA 16
|
||||
.BS 2
|
||||
*--------------------------------------
|
||||
MLICLOSE00 .DA #1
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.INIT2
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
ASM
|
@ -1,515 +0,0 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
LOMEM $A00
|
||||
INC 1
|
||||
AUTO 6
|
||||
*--------------------------------------
|
||||
Kernel.Init3 sta SETALTZP
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
jsr MemMgrInit
|
||||
jsr PS0Init
|
||||
bcs *
|
||||
>LDYAI MSG.Init3
|
||||
>SYSCALL PrintFYA
|
||||
|
||||
>LDYAI MSG.DEV
|
||||
>SYSCALL PrintFYA
|
||||
jsr DevMgrInit
|
||||
bcs *
|
||||
|
||||
>LDYAI MSG.IRQ
|
||||
>SYSCALL PrintFYA
|
||||
jsr IrqMgrInit
|
||||
bcs *
|
||||
|
||||
>LDYAI MSG.EVT
|
||||
>SYSCALL PrintFYA
|
||||
jsr EvtMgrInit
|
||||
bcs *
|
||||
|
||||
>LDYAI MSG.FLT
|
||||
>SYSCALL PrintFYA
|
||||
jsr FltMgrInit
|
||||
bcs *
|
||||
|
||||
>LDYAI MSG.TSK
|
||||
>SYSCALL PrintFYA
|
||||
jsr TskMgrInit
|
||||
bcs *
|
||||
|
||||
ldy #S.PS.hPREFIX
|
||||
lda (pPs),y
|
||||
>SYSCALL GetMemPtrA
|
||||
|
||||
>PUSHYA
|
||||
>LDYAI MSG.Prefix
|
||||
>SYSCALL PrintFYA
|
||||
|
||||
>PUSHWI STARTUP.CMDLINE
|
||||
>LDYAI MSG.Startup
|
||||
>SYSCALL PrintFYA
|
||||
|
||||
>LDYAI STARTUP.CMDLINE
|
||||
>SYSCALL ExpandPStrYA
|
||||
phx Save Expanded CMDLINE for discard
|
||||
>SYSCALL CreateProcessYA
|
||||
bcs .9
|
||||
pla
|
||||
>SYSCALL FreeMemA ...discard...
|
||||
|
||||
>LDYAI MSG.Init3.OK
|
||||
>SYSCALL PrintFYA
|
||||
|
||||
>LDYAI TskMgr.Table
|
||||
>STYA pPs
|
||||
|
||||
>DEBUGOA
|
||||
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
jmp K.KernelRun
|
||||
|
||||
.9 >PUSHA
|
||||
>LDYAI MSG.StartupErr
|
||||
>SYSCALL PrintFYA
|
||||
bra * No need to discard Expanded CMDLINE
|
||||
*--------------------------------------
|
||||
MemMgrInit >LDYAI MemMgr.MHiMem
|
||||
>STYA MemMgr.HiMem
|
||||
>STYA MemMgr.Free
|
||||
>LDYAI MemMgr.MLoMem
|
||||
>STYA MemMgr.LoMem
|
||||
stz MemMgr.LastSlot Reserve Slot #0
|
||||
|
||||
sta SETWRITEAUX
|
||||
|
||||
>LDYAI MemMgr.XHiMem
|
||||
>STYA MemMgr.HiMem
|
||||
>STYA MemMgr.Free
|
||||
>LDYAI MemMgr.XLoMem
|
||||
>STYA MemMgr.LoMem
|
||||
stz MemMgr.LastSlot Reserve Slot #0
|
||||
|
||||
sta CLRWRITEAUX
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PS0Init ldx #S.DEV*2 NUL,SYS
|
||||
|
||||
.1 lda DevMgr.NUL-1,x
|
||||
sta DevMgr.Table-1,x
|
||||
dex
|
||||
bne .1
|
||||
|
||||
lda #2
|
||||
sta DevMgr.Count
|
||||
|
||||
>LDYAI TskMgr.Table Select Process 0 (Kernel)
|
||||
>STYA pPs
|
||||
|
||||
ldy #S.PS-1
|
||||
lda #0
|
||||
|
||||
.2 sta (pPs),y Blank PS0
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
>LDYAI DEV.SYS
|
||||
>SYSCALL MkNodYA
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
sta (pPs),y
|
||||
ldy #S.PS.hStdOut
|
||||
sta (pPs),y
|
||||
ldy #S.PS.hStdErr
|
||||
sta (pPs),y
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgr.NUL cld
|
||||
jmp (DevMgr.NUL.Code,x)
|
||||
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED
|
||||
.BS 6
|
||||
>PSTR "NUL" NAME
|
||||
.HS 00 NAME must Be 4 bytes long
|
||||
*--------------------------------------
|
||||
DevMgr.SYS cld
|
||||
jmp (DevMgr.SYS.Code,x)
|
||||
.DA #S.DEV.S.WRITE+S.DEV.S.READ
|
||||
.BS 6
|
||||
>PSTR "SYS" NAME
|
||||
.HS 00 NAME must Be 4 bytes long
|
||||
*--------------------------------------
|
||||
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||
*--------------------------------------
|
||||
SETMOUSE .EQ $12 Sets mouse mode
|
||||
SERVEMOUSE .EQ $13 Services mouse interrupt
|
||||
READMOUSE .EQ $14 Reads mouse position
|
||||
*--------------------------------------
|
||||
IrqMgrInit php
|
||||
sei
|
||||
>LDYA $FFFE
|
||||
>STYA K.IrqMgrOldFFFE
|
||||
>LDYAI K.IrqHandlerAuxLC
|
||||
>STYA $FFFE
|
||||
|
||||
>LDYAI IrqHandler
|
||||
>STYA K.MLI.PARAMS+2
|
||||
>MLICALL MLIALLOCIRQ
|
||||
bcs .9
|
||||
|
||||
lda K.MLI.PARAMS+1
|
||||
sta ProDOS.INTNUM
|
||||
|
||||
stz ZPPtr1 Try finding a Mouse Card...
|
||||
lda #$C1
|
||||
sta ZPPtr1+1
|
||||
|
||||
.1 ldx #Mouse.SIG-Mouse.OFS-1
|
||||
|
||||
.2 ldy Mouse.OFS,x
|
||||
lda (ZPPtr1),y
|
||||
cmp Mouse.SIG,x
|
||||
bne .3
|
||||
dex
|
||||
bpl .2
|
||||
bra .4
|
||||
|
||||
.3 inc ZPPtr1+1 no match, try next slot....
|
||||
lda ZPPtr1+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 plp
|
||||
sec
|
||||
rts
|
||||
|
||||
.4 lda ZPPtr1+1
|
||||
|
||||
sta K.IrqMgrVBL.MSM+2
|
||||
sta K.IrqMgrVBL.MRM+2
|
||||
|
||||
and #$0f
|
||||
sta K.IrqMgrVBL.0n
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
|
||||
sta K.IrqMgrVBL.n0
|
||||
|
||||
ldy #SERVEMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta K.IrqMgrVBL.MSM+1
|
||||
|
||||
ldy #READMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta K.IrqMgrVBL.MRM+1
|
||||
|
||||
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
|
||||
|
||||
ldy #SETMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta .7+1
|
||||
|
||||
lda #9 #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE
|
||||
|
||||
ldx ZPPtr1+1 DEVSLOTCn
|
||||
stx .7+2
|
||||
ldy K.IrqMgrVBL.n0
|
||||
|
||||
.7 jsr $ffff self Modified, CALL SETMOUSE
|
||||
bcs *
|
||||
|
||||
bit RRAMWRAMBNK1 Back To LC Ram
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
inc K.IrkMgr.VBL set=1 awaiting IrqMgr confirmation
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Mouse.OFS .HS 05070B0CFB
|
||||
Mouse.SIG .HS 38180120D6
|
||||
*--------------------------------------
|
||||
DevMgrInit stz ZPPtr1
|
||||
lda #$C1
|
||||
sta ZPPtr1+1
|
||||
lda #1
|
||||
sta DEV.HEADER+S.DEV.BUSID
|
||||
|
||||
.1 lda #1
|
||||
sta DEV.HEADER+S.DEV.DEVID
|
||||
|
||||
ldx #SmartPort.SIG-SmartPort.OFS-1
|
||||
|
||||
.2 ldy SmartPort.OFS,x Check if there is a smartport firmware
|
||||
lda (ZPPtr1),y
|
||||
cmp SmartPort.SIG,x
|
||||
bne .8 not a Disk Controller...
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
bne .3 $0, Disk II, 16sect
|
||||
|
||||
jsr DevMgrInit.DII
|
||||
ldy #A2osX.SLOTS.DII
|
||||
bra .7
|
||||
|
||||
.3 inc
|
||||
beq .7 $ff, Disk II 13 Sect, ignore
|
||||
|
||||
ldy #7
|
||||
lda (ZPPtr1),y
|
||||
bne .4 $Cn07=00 : SmartPort
|
||||
|
||||
jsr DevMgrInit.SP
|
||||
ldy #A2osX.SLOTS.SP
|
||||
bra .7
|
||||
|
||||
.4 jsr DevMgrInit.BLK
|
||||
ldy #A2osX.SLOTS.BLK
|
||||
|
||||
.7 lda ZPPtr1+1
|
||||
and #$0f
|
||||
tax
|
||||
tya
|
||||
sta A2osX.SLOTS,x
|
||||
|
||||
.8 inc DEV.HEADER+S.DEV.BUSID
|
||||
inc ZPPtr1+1
|
||||
lda ZPPtr1+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.DII >LDYAI A2osX.DIIDrv
|
||||
>STYA DEV.HEADER+S.DEV.DRV.JMP
|
||||
jsr DevMgrInit.AddDev
|
||||
inc DEV.HEADER+S.DEV.DEVID
|
||||
jsr DevMgrInit.AddDev
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.BLK ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
sta DEV.HEADER+S.DEV.ROM.JMP
|
||||
lda ZPPtr1+1
|
||||
sta DEV.HEADER+S.DEV.ROM.JMP+1
|
||||
|
||||
>LDYAI A2osX.BlkDrv
|
||||
>STYA DEV.HEADER+S.DEV.DRV.JMP
|
||||
|
||||
jsr DevMgrInit.AddDev
|
||||
inc DEV.HEADER+S.DEV.DEVID
|
||||
jsr DevMgrInit.AddDev
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.SP ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
clc
|
||||
adc #3 Compute smartport entry point
|
||||
sta .1+1
|
||||
sta .3+1
|
||||
sta DEV.HEADER+S.DEV.ROM.JMP
|
||||
lda ZPPtr1+1
|
||||
sta .1+2
|
||||
sta .3+2
|
||||
sta DEV.HEADER+S.DEV.ROM.JMP+1
|
||||
|
||||
>LDYAI A2osX.PrtDrv
|
||||
>STYA DEV.HEADER+S.DEV.DRV.JMP
|
||||
|
||||
.1 jsr $ffff Self Modified
|
||||
.DA #0 Status
|
||||
.DA SP.CTRL.STATUS
|
||||
bcs .9
|
||||
lda SP.CTRL.STATUS.DATA
|
||||
beq .9 no device
|
||||
|
||||
.2 lda #1
|
||||
sta SP.DEV.STATUS.DEVID
|
||||
|
||||
.3 jsr $ffff Self Modified
|
||||
.DA #0 Status
|
||||
.DA SP.DEV.STATUS
|
||||
bcs .7
|
||||
lda SP.DEV.STATUS.DATA+S.DEVSTAT.S
|
||||
sta DEV.HEADER+S.DEV.S
|
||||
|
||||
jsr DevMgrInit.AddDev
|
||||
|
||||
.7 inc SP.DEV.STATUS.DEVID
|
||||
inc DEV.HEADER+S.DEV.DEVID
|
||||
dec SP.CTRL.STATUS.DATA
|
||||
bne .3
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddDev
|
||||
lda DevMgr.Count
|
||||
cmp #K.DEV.MAX
|
||||
beq .9
|
||||
|
||||
inc DevMgr.Count
|
||||
>SYSCALL GetDevByIDA
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda DEV.HEADER+S.DEV.BUSID
|
||||
ora #$30
|
||||
sta DEV.HEADER+S.DEV.NAME+2 SnDy
|
||||
|
||||
lda DEV.HEADER+S.DEV.DEVID
|
||||
ora #$30
|
||||
sta DEV.HEADER+S.DEV.NAME+4 SxDn
|
||||
|
||||
ldy #S.DEV-1
|
||||
|
||||
.1 lda DEV.HEADER,y
|
||||
sta (ZPPtr2),y
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #DEVMGR.ERROOH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEV.HEADER clc
|
||||
jmp ($ffff,x)
|
||||
.DA #S.DEV.S.BLOCK S
|
||||
.BS 1 F
|
||||
.BS 1 BUS.ID
|
||||
.BS 1 DEV.ID
|
||||
.BS 2 ROM.JMP
|
||||
.BS 1
|
||||
>PSTR "S1D1" 5 bytes
|
||||
*--------------------------------------
|
||||
SmartPort.OFS .HS 010305
|
||||
SmartPort.SIG .HS 200003
|
||||
*--------------------------------------
|
||||
SP.CTRL.STATUS .DA #3
|
||||
.DA #0
|
||||
.DA SP.CTRL.STATUS.DATA
|
||||
.DA #0
|
||||
SP.CTRL.STATUS.DATA
|
||||
.BS 8 DevCnt
|
||||
SP.DEV.STATUS .DA #3
|
||||
SP.DEV.STATUS.DEVID
|
||||
.BS 1
|
||||
.DA SP.DEV.STATUS.DATA
|
||||
.DA #3 return DIB
|
||||
SP.DEV.STATUS.DATA
|
||||
.BS S.DEVSTAT
|
||||
*--------------------------------------
|
||||
EvtMgrInit lda #$A5
|
||||
sta A2osX.TIMER16
|
||||
lda #$9B
|
||||
sta A2osX.TIMER16+1
|
||||
|
||||
lda /EvtMgr.Table
|
||||
sta pEvent+1
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
FltMgrInit stz FltMgr.Table
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0
|
||||
>STYA .2+1
|
||||
|
||||
ldx #K.PS.MAX-1
|
||||
|
||||
.1 lda #0
|
||||
ldy #S.PS-1
|
||||
|
||||
.2 sta $ffff,y Self Modified
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
lda .2+1
|
||||
clc
|
||||
adc #S.PS
|
||||
sta .2+1
|
||||
bcc .3
|
||||
|
||||
inc .2+2
|
||||
.3 dex
|
||||
bne .1
|
||||
|
||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||
>SYSCALL GetMem0YA make sure blank!!
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
ldy #S.PS.hENV
|
||||
sta (pPs),y
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
>STYA K.MLI.PARAMS+1
|
||||
>MLICALL MLIGETPREFIX
|
||||
bcs .9
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
>SYSCALL NewPStrYA
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
ldy #S.PS.hPREFIX
|
||||
sta (pPs),y
|
||||
|
||||
>PUSHWI UsrBuf256 push ENV value
|
||||
>PUSHWI I.ENV.A2osX push ENV name
|
||||
>SYSCALL SetEnv
|
||||
bcs .9
|
||||
|
||||
>LDYAI I.ENV.PATH
|
||||
>SYSCALL PutEnvYA
|
||||
bcs .9
|
||||
|
||||
>LDYAI I.ENV.LIB
|
||||
>SYSCALL PutEnvYA
|
||||
bcs .9
|
||||
|
||||
>LDYAI I.ENV.DRV
|
||||
>SYSCALL PutEnvYA
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DEV.SYS >PSTR "SYS"
|
||||
I.ENV.A2osX >PSTR "A2OSX"
|
||||
I.ENV.PATH >PSTR "PATH=${A2OSX}SBIN/;${A2OSX}BIN/"
|
||||
I.ENV.LIB >PSTR "LIB=${A2OSX}LIB/"
|
||||
I.ENV.DRV >PSTR "DRV=${A2OSX}DRV/"
|
||||
STARTUP.CMDLINE >PSTR "${A2OSX}SBIN/SHELL ${A2OSX}A2osX.STARTUP"
|
||||
*--------------------------------------
|
||||
MSG.Init3 >CSTR "A2osX[Stage3]:Init\r\n"
|
||||
MSG.DEV >CSTR "-Device Manager...\r\n"
|
||||
MSG.IRQ >CSTR "-Interrupt Manager...\r\n"
|
||||
MSG.EVT >CSTR "-Event Manager...\r\n"
|
||||
MSG.FLT >CSTR "-Path Filter...\r\n"
|
||||
MSG.TSK >CSTR "-Task Manager...\r\n"
|
||||
MSG.Prefix >CSTR "Prefix:%S\r\n"
|
||||
MSG.Startup >CSTR "Executing Kernel Startup Script...\r\nCmd:%S\r\n"
|
||||
MSG.StartupErr >CSTR "Failed : [$%h]\r\n"
|
||||
MSG.Init3.OK >CSTR "A2osX[Stage3]:Complete.\r\n"
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.INIT3
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
ASM
|
@ -112,9 +112,9 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
.DA K.FPutCAY $B0
|
||||
.DA K.PutCA
|
||||
.DA K.FGetCA
|
||||
.DA K.GetC
|
||||
.DA K.PutCharA
|
||||
.DA K.GetCA
|
||||
.DA K.GetChar
|
||||
.DA K.FPutS
|
||||
.DA K.PutSYA
|
||||
.DA K.FGetS
|
||||
|
Loading…
Reference in New Issue
Block a user