Kernel 0.92

This commit is contained in:
Rémy GIBERT 2018-11-30 17:00:36 +01:00
parent 6efb851d03
commit 1d907e3d9a
12 changed files with 68 additions and 49 deletions

Binary file not shown.

Binary file not shown.

View File

@ -38,29 +38,29 @@ A2osX.QC.Start1 sei
lda #$CF protect zero page, stack and page 1 lda #$CF protect zero page, stack and page 1
sta MEMTABL sta MEMTABL
lda #$8C Reset 80 col screen ($0C=FF=HOME) lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300 jsr $C300
>LDYAI MSG.INIT1 >LDYAI MSG.INIT1
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
.3 jsr MLI .3 jsr MLI
.DA #MLISETPREFIX .DA #MLISETPREFIX
.DA MLISETPREFIX00 .DA MLISETPREFIX00
bcc .4 bcc .4
>LDYAI MSG.SETPREFIXKO >LDYAI MSG.SETPREFIXKO
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
>LDYAI A2osX.QC.Prefix >LDYAI A2osX.QC.Prefix
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
>DEBUG >DEBUG
bra .3 bra .3
.4 >LDYAI MSG.SETPREFIXOK .4 >LDYAI MSG.SETPREFIXOK
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
jsr A2osX.QC.KLoad jsr A2osX.QC.KLoad
bcs * bcs *
@ -71,13 +71,13 @@ A2osX.QC.Start1 sei
* jsr SETPWRC * jsr SETPWRC
.8 >LDYAI MSG.INIT1OK .8 >LDYAI MSG.INIT1OK
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
>DEBUGOA >DEBUGOA
jmp $2000 jmp $2000
*-------------------------------------- *--------------------------------------
A2osX.QC.KLoad >LDYAI MSG.KLOAD A2osX.QC.KLoad >LDYAI MSG.KLOAD
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
ldx A2osX.QC.Prefix ldx A2osX.QC.Prefix
@ -93,7 +93,7 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD
stx A2osX.QC.Prefix stx A2osX.QC.Prefix
>LDYAI A2osX.QC.Prefix >LDYAI A2osX.QC.Prefix
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
jsr MLI jsr MLI
.DA #MLIOPEN .DA #MLIOPEN
@ -121,18 +121,18 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD
.9 pha .9 pha
>LDYAI MSG.KLOAD.KO >LDYAI MSG.KLOAD.KO
jsr A2osX.QC.PrintAX jsr A2osX.QC.PrintYA
pla pla
jsr PRBYTE jsr PRBYTE
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
A2osX.QC.PrintAX A2osX.QC.PrintYA
sta TmpPtr1 >STYA TmpPtr1
stx TmpPtr1+1
lda (TmpPtr1) lda (TmpPtr1)
tax tax
beq .9 beq .9
ldy #1 ldy #1
.1 lda (TmpPtr1),y .1 lda (TmpPtr1),y

View File

@ -112,7 +112,9 @@ A2osX.Prefix >LDYAI MSG.BOOTPREFIX
bcs * bcs *
ldx Boot.Prefix ldx Boot.Prefix
stx A2osX.QC.B.Start+4 stx A2osX.QC.B.Start+4
ldy #1 ldy #1
.1 lda Boot.Prefix,y .1 lda Boot.Prefix,y
sta A2osX.QC.B.Start+4,y sta A2osX.QC.B.Start+4,y
ora #$80 ora #$80
@ -160,10 +162,11 @@ A2osX.SetupQC lda RRAMWRAMBNK2
A2osX.EnumKM >LDYAI MSG.KMENUM A2osX.EnumKM >LDYAI MSG.KMENUM
jsr PrintFYA jsr PrintFYA
jsr EnumKM jsr EnumKM
bcs *
*-------------------------------------- *--------------------------------------
A2osX.MLIQuit >LDYAI MSG.INIT0OK A2osX.MLIQuit >LDYAI MSG.INIT0OK
jsr PrintFYA jsr PrintFYA
>DEBUGOA >DEBUGOA
jsr MLI jsr MLI
.DA #MLIQUIT .DA #MLIQUIT
@ -229,6 +232,7 @@ EnumKM.EL .EQ $27
*-------------------------------------- *--------------------------------------
EnumKM ldx #0 EnumKM ldx #0
ldy Boot.Prefix ldy Boot.Prefix
.1 inx .1 inx
lda SYS,x lda SYS,x
sta Boot.Prefix+1,y sta Boot.Prefix+1,y
@ -242,7 +246,7 @@ EnumKM ldx #0
.DA #MLIOPEN .DA #MLIOPEN
.DA MLIOPEN01 .DA MLIOPEN01
bcs .99 bcs .99
lda MLIOPEN01+5 lda MLIOPEN01+5
sta MLIREAD01+1 sta MLIREAD01+1
sta MLICLOSE01+1 sta MLICLOSE01+1
@ -259,20 +263,27 @@ EnumKM ldx #0
.3 >LDYA EnumKM.BPTR .3 >LDYA EnumKM.BPTR
>STYA TmpPtr1 >STYA TmpPtr1
lda (TmpPtr1) lda (TmpPtr1)
and #$F0 Empty ? and #$F0 Empty ?
beq .5 yes, skip beq .5 yes, skip
and #$C0 anything out of type 1,2 or 3 ? and #$C0 anything out of type 1,2 or 3 ?
bne .5 yes, skip bne .5 yes, skip
lda (TmpPtr1) lda (TmpPtr1)
and #$0F and #$0F
cmp KM.PREFIX at least enough chars for KM.*? cmp KM.PREFIX at least enough chars for KM.*?
bcc .5 no, skip bcc .5 no, skip
ldy #$10 file type ldy #$10 file type
lda (TmpPtr1),y lda (TmpPtr1),y
cmp #$06 'BIN'? cmp #$06 'BIN'?
bne .5 skip bne .5 skip
ldy KM.PREFIX ldy KM.PREFIX
.4 lda (TmpPtr1),y .4 lda (TmpPtr1),y
cmp KM.PREFIX,y cmp KM.PREFIX,y
bne .5 bne .5
@ -292,18 +303,19 @@ EnumKM ldx #0
bne .3 bne .3
bra .2 bra .2
.8 jsr MLI
.DA #MLICLOSE
.DA MLICLOSE01
rts
.98 cmp #MLI.E.EOF .98 cmp #MLI.E.EOF
beq .8 beq .8
pha pha
jsr .8 jsr .8
pla pla
.99 sec .99 sec
rts rts
.8 jsr MLI
.DA #MLICLOSE
.DA MLICLOSE01
rts
*-------------------------------------- *--------------------------------------
EnumKM.EC .BS 1 EnumKM.EC .BS 1
EnumKM.BPTR .BS 2 EnumKM.BPTR .BS 2

View File

@ -26,12 +26,16 @@ CMD.Init >LDYAI 256
*-------------------------------------- *--------------------------------------
CMD.Quit ldy #CMD.hArgVBuf CMD.Quit ldy #CMD.hArgVBuf
jsr .8 jsr .8
ldy #CMD.hCLBuf ldy #CMD.hCLBuf
jsr .8 jsr .8
ldy #hFileBuf ldy #hFileBuf
.8 lda (pData),y
.8 lda (pData),y
beq .9 beq .9
>SYSCALL FreeMem >SYSCALL FreeMem
clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
* Input : CMD.IntCmd,ZPArgVBuf * Input : CMD.IntCmd,ZPArgVBuf

View File

@ -174,15 +174,9 @@ L.ERR.Messages .DA ERR.Messages
CS.INIT clc CS.INIT clc
CS.INIT.RTS rts CS.INIT.RTS rts
*-------------------------------------- *--------------------------------------
CS.RUN lda #'1' CS.RUN jsr CMD.Init
>SYSCALL putchar
jsr CMD.Init
bcs CS.INIT.RTS bcs CS.INIT.RTS
lda #'2'
>SYSCALL putchar
ldy #S.PS.ARGC ldy #S.PS.ARGC
lda (pPS),y lda (pPS),y
beq .1 no arg, continue starting interactive beq .1 no arg, continue starting interactive

View File

@ -15,12 +15,10 @@ PS.ArgV .BS 2
* ## RETURN VALUE * ## RETURN VALUE
* A = Child PSID * A = Child PSID
*\-------------------------------------- *\--------------------------------------
K.ExecL >DEBUG K.ExecL sty .1+1
sty .1+1
sta .2+1 sta .2+1
>PULLB PS.Flags >PULLB PS.Flags
lda #'1'
>SYSCALL putchar
>LDYAI 256 >LDYAI 256
jsr K.GetMem jsr K.GetMem
bcs .99 bcs .99
@ -34,8 +32,6 @@ K.ExecL >DEBUG
jsr K.Args2ArgV jsr K.Args2ArgV
bcs .9 bcs .9
lda #'2'
>SYSCALL putchar
jsr PS.Exec jsr PS.Exec

View File

@ -11,6 +11,7 @@ HEXBUF .EQ FAC
K.PrintF.PadL .EQ FAC+4 K.PrintF.PadL .EQ FAC+4
K.PrintF.PadC .EQ FAC+5 K.PrintF.PadC .EQ FAC+5
BCDBUF .EQ ARG BCDBUF .EQ ARG
HEXBUF.Signed .EQ ARG.SIGN
*/-------------------------------------- */--------------------------------------
* # PutChar * # PutChar
* Print A (char) to StdOut * Print A (char) to StdOut
@ -332,20 +333,25 @@ PrintF.B.1 ldx #8
PrintF.I sec signed short PrintF.I sec signed short
.HS 90 BCC .HS 90 BCC
PrintF.D clc unsigned short (BYTE) PrintF.D clc unsigned short (BYTE)
ldx #0 one byte
ror HEXBUF.Signed
jsr PrintF.GetByte jsr PrintF.GetByte
bcs PrintF.BB.RTS bcs PrintF.BB.RTS
sta HEXBUF sta HEXBUF
stz HEXBUF+1 stz HEXBUF+1
ldx #0 one byte
bra PrintF.DD.1 bra PrintF.DD.1
PrintF.II sec signed int PrintF.II sec signed int
.HS 90 BCC .HS 90 BCC
PrintF.DD clc unsigned int (WORD) PrintF.DD clc unsigned int (WORD)
ldx #1 two bytes
ror HEXBUF.Signed
jsr PrintF.GetByte jsr PrintF.GetByte
bcs PrintF.BB.RTS bcs PrintF.BB.RTS
sta HEXBUF sta HEXBUF
@ -354,6 +360,8 @@ PrintF.DD clc unsigned int (WORD)
bcs PrintF.BB.RTS bcs PrintF.BB.RTS
sta HEXBUF+1 sta HEXBUF+1
ldx #1 two bytes
PrintF.DD.1 stz HEXBUF+2 PrintF.DD.1 stz HEXBUF+2
stz HEXBUF+3 stz HEXBUF+3
bra PrintF.U.1 bra PrintF.U.1
@ -362,6 +370,8 @@ PrintF.L sec signed long
.HS 90 BCC .HS 90 BCC
PrintF.U clc unsigned long (DWORD) PrintF.U clc unsigned long (DWORD)
ror HEXBUF.Signed
ldx #$ff ldx #$ff
.1 jsr PrintF.GetByte .1 jsr PrintF.GetByte
@ -374,12 +384,14 @@ PrintF.U clc unsigned long (DWORD)
* ldx #3 4 bytes * ldx #3 4 bytes
PrintF.U.1 bcc PrintF.Hex2Dec unsigned, nothing to check PrintF.U.1 clc
bit HEXBUF.Signed
bpl PrintF.Hex2Dec unsigned, nothing to check
lda HEXBUF,x get sign lda HEXBUF,x get sign
bpl PrintF.Hex2Dec bpl PrintF.Hex2Dec
* sec sec
ldy #0 ldy #0
@ -395,7 +407,7 @@ PrintF.U.1 bcc PrintF.Hex2Dec unsigned, nothing to check
*-------------------------------------- *--------------------------------------
* Convert HEXBUF to ASCBUF decimal padded with 0 * Convert HEXBUF to ASCBUF decimal padded with 0
*-------------------------------------- *--------------------------------------
PrintF.Hex2Dec ror .31+1 PrintF.Hex2Dec ror HEXBUF.Signed
ldx #4 ldx #4
@ -425,8 +437,9 @@ PrintF.Hex2Dec ror .31+1
cld cld
.31 bit #$ff SELF MODIFIED -sign to print before digits ? bit HEXBUF.Signed
bpl .9 bpl .9
lda #'-' lda #'-'
jsr PrintF.COut jsr PrintF.COut

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF SYS/KM.APPLETALK .TF SYS/ATK/KM.APPLETALK
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB INC/MACROS.I
.INB INC/IO.I .INB INC/IO.I
@ -162,5 +162,5 @@ MLIGETPREFIX.PARAMS
.DA BUF.PREFIX .DA BUF.PREFIX
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SYS/ATK/KM.APPLETALK.S SAVE USR/SRC/SYS/KM.APPLETALK.S
ASM ASM

View File

@ -299,5 +299,5 @@ NSCDRV.SIZE .EQ *-NSCDRV.B.START
.FIN .FIN
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/SYS/KM.NSC.S SAVE USR/SRC/SYS/KM.NSC.S
ASM ASM

View File

@ -377,7 +377,7 @@ RW.BLOCK2.CT .BS 4 Creation time
RW.BLOCK2.TB .BS 2 Total Blocks RW.BLOCK2.TB .BS 2 Total Blocks
RW.BLOCK2.END .EQ * RW.BLOCK2.END .EQ *
*-------------------------------------- *--------------------------------------
.INB USR/SRC/BIN/X.PRINTF.S .INB USR/SRC/X.PRINTF.S
*-------------------------------------- *--------------------------------------
RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n"
RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n" RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n"
@ -662,5 +662,5 @@ RWDRVX.SIZE .EQ RWDRVX.B.END-RWDRVX.B.START
.FIN .FIN
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/SYS/KM.RAMWORKS.S SAVE USR/SRC/SYS/KM.RAMWORKS.S
ASM ASM

View File

@ -225,4 +225,4 @@ X.DigitCount .BS 1
X.DigitBuffer .BS 6 X.DigitBuffer .BS 6
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/X.PRINTF.S SAVE USR/SRC/X.PRINTF.S