Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-08-24 12:20:23 +02:00
parent 27fa64618a
commit da07bf58a7
11 changed files with 112 additions and 116 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -143,16 +143,14 @@ CS.RUN >SYSCALL GetChar
.4 ldy #S.STAT.P.DRIVE .4 ldy #S.STAT.P.DRIVE
lda (ZPFileStat),y ProDOS Device ? lda (ZPFileStat),y ProDOS Device ?
bne .5 bne CS.RUN.DEV
ldy #S.STAT.P.TYPE ldy #S.STAT.P.TYPE
lda (ZPFileStat),y lda (ZPFileStat),y
cmp #$0F Directory ? cmp #$0F Directory ?
bne .6 bne CS.RUN.FILE
jmp CS.RUN.DIR jmp CS.RUN.DIR
.5 jmp CS.RUN.DEV
.6 jmp CS.RUN.FILE
.9 jsr LeaveSubDir .9 jsr LeaveSubDir
bcs .92 bcs .92
@ -168,10 +166,6 @@ CS.RUN >SYSCALL GetChar
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CS.RUN.DIR CS.RUN.DIR
.8 jsr GetNextEntry
clc
.9 rts
*--------------------------------------
CS.RUN.DEV CS.RUN.DEV
.8 jsr GetNextEntry .8 jsr GetNextEntry
clc clc
@ -351,17 +345,14 @@ MSG.USAGE .AZ "Usage : CHTYP [File *,? wildcards allowed] [File type : 0xx (Hex
MSG.OK .AZ "[OK]" MSG.OK .AZ "[OK]"
MSG.ERR .AZ "[%h]\r\n" MSG.ERR .AZ "[%h]\r\n"
MSG.FILE .AZ "CHTYP File:%S..." MSG.FILE .AZ "CHTYP File:%S..."
Tmp .BS 1
*-------------------------------------- *--------------------------------------
PRODOS.FT.COUNT .EQ 7 PRODOS.FT.COUNT .EQ 6
PRODOS.FT.ID .HS 0406FAFCFDE2FF PRODOS.FT.ID .HS 0406FAFCFDFF
PRODOS.FT.TXT .AS "TXT" PRODOS.FT.TXT .AS "TXT"
.AS "BIN" .AS "BIN"
.AS "S-C" .AS "ASM"
.AS "BAS" .AS "BAS"
.AS "VAR" .AS "VAR"
.AS "ATK"
.AS "SYS" .AS "SYS"
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

@ -270,7 +270,7 @@ CS.RUN.DIR >LDA.G bAllmostAll
*-------------------------------------- *--------------------------------------
CS.RUN.FILE ldy #bLong CS.RUN.FILE ldy #bLong
lda (pData),y lda (pData),y
bmi .8 bmi .1
>PUSHW ZPFileName >PUSHW ZPFileName
>PUSHBI 2 >PUSHBI 2
@ -283,35 +283,32 @@ CS.RUN.FILE ldy #bLong
clc clc
rts rts
.8 jsr CS.RUN.PUSHDATES .1 jsr CS.RUN.PUSHDATES
ldy #S.STAT.SIZE+3 ldy #S.STAT.SIZE+3
lda (ZPFileStat),y ldx #4
.2 lda (ZPFileStat),y
>PUSHA >PUSHA
dey dey
lda (ZPFileStat),y dex
>PUSHA bne .2
dey
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
jsr Mod2CSTR jsr Mod2CSTR
>PUSHEA.G MOD File Mod >PUSHEA.G MOD File Mod
ldy #S.STAT.P.AUXTYPE+1 ldy #S.STAT.P.AUXTYPE+1
lda (ZPFileStat),y lda (ZPFileStat),y
>PUSHA >PUSHA
dey dey
lda (ZPFileStat),y lda (ZPFileStat),y
>PUSHA AuxType >PUSHA
dey dey Type
lda (ZPFileStat),y lda (ZPFileStat),y
jsr FileType2PSTR jsr FileType2PSTR
>PUSHYA Type >PUSHYA
>PUSHW ZPFileName >PUSHW ZPFileName
>PUSHBI 16 >PUSHBI 16
@ -427,7 +424,7 @@ CS.QUIT jsr LeaveSubDir
FileType2PSTR ldy #0 FileType2PSTR ldy #0
.1 cmp PRODOS.FT.HEX,y .1 cmp PRODOS.FT.HEX,y
beq .2 beq .8
iny iny
cpy #PRODOS.FT.TXT-PRODOS.FT.HEX cpy #PRODOS.FT.TXT-PRODOS.FT.HEX
@ -438,17 +435,21 @@ FileType2PSTR ldy #0
lsr lsr
lsr lsr
lsr lsr
tax ora #$30
lda HEXDIGIT,x cmp #$3A
sta PRODOS.FT.DFLT+2 bcc .2
adc #6
.2 sta PRODOS.FT.DFLT+2
pla pla
and #$0F and #$0F
tax ora #$30
lda HEXDIGIT,x cmp #$3A
sta PRODOS.FT.DFLT+3 bcc .3
adc #6
.3 sta PRODOS.FT.DFLT+3
.2 tya .8 tya
asl asl
asl CC asl CC
adc L.PRODOS.FT.TXT adc L.PRODOS.FT.TXT
@ -530,7 +531,6 @@ PRODOS.FT.TXT >PSTR "TXT"
PRODOS.FT.DFLT >PSTR "$ " PRODOS.FT.DFLT >PSTR "$ "
MSG.NODATE .AZ " <No-Date> " MSG.NODATE .AZ " <No-Date> "
FMT.DateTime .AZ "%d-%b-%y %H:%M" FMT.DateTime .AZ "%d-%b-%y %H:%M"
HEXDIGIT .AS '0123456789ABCDEF'
TYPES .AS "-dbclssp" TYPES .AS "-dbclssp"
ACCESS .AS "rwxrwxrwx" ACCESS .AS "rwxrwxrwx"
*-------------------------------------- *--------------------------------------

View File

@ -34,6 +34,7 @@ CS.START cld
.DA CS.QUIT .DA CS.QUIT
L.MSG0 .DA MSG0 L.MSG0 .DA MSG0
L.MSG1 .DA MSG1 L.MSG1 .DA MSG1
L.MSG2 .DA MSG2
L.MSG2.C .DA MSG2.C L.MSG2.C .DA MSG2.C
L.MSG2.B .DA MSG2.B L.MSG2.B .DA MSG2.B
.DA 0 .DA 0
@ -101,16 +102,7 @@ DumpFD ldy #S.FD.DEV.DRVPTR+1
>SYSCALL printf >SYSCALL printf
rts rts
*-------------------------------------- *--------------------------------------
DumpDIB >LDA.G DEV.DIB+S.DIB.S DumpDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1
bpl .1 char device...
>PUSHBI 0
>PUSHB.G DEV.DIB+S.DIB.SIZE+2
>PUSHB.G DEV.DIB+S.DIB.SIZE+1
>PUSHB.G DEV.DIB+S.DIB.SIZE
.1 >PUSHB.G DEV.DIB+S.DIB.VERSION+1
>PUSHB.G DEV.DIB+S.DIB.VERSION >PUSHB.G DEV.DIB+S.DIB.VERSION
>PUSHEA.G DEV.DIB+S.DIB.IDS >PUSHEA.G DEV.DIB+S.DIB.IDS
@ -123,36 +115,44 @@ DumpDIB >LDA.G DEV.DIB+S.DIB.S
ldy #DEV.SFLAGS+7 ldy #DEV.SFLAGS+7
ldx #7 ldx #7
.2 lsr .1 lsr
pha pha
lda #'-' lda #'-'
bcc .3 bcc .2
lda MSG.SFLAGS,x lda MSG.SFLAGS,x
.3 sta (pData),y .2 sta (pData),y
pla pla
dey dey
dex dex
bpl .2 bpl .1
>PUSHEA.G DEV.SFLAGS >PUSHEA.G DEV.SFLAGS
>LDA.G DEV.DIB+S.DIB.S >PUSHBI 8
bpl .4 >LDYA L.MSG2
>SYSCALL printf
bcs .9
>PUSHBI 12 >LDA.G DEV.DIB+S.DIB.S
bpl .4 char device...
>PUSHBI 0
>PUSHB.G DEV.DIB+S.DIB.SIZE+2
>PUSHB.G DEV.DIB+S.DIB.SIZE+1
>PUSHB.G DEV.DIB+S.DIB.SIZE
>PUSHBI 4
>LDYA L.MSG2.B >LDYA L.MSG2.B
bra .8 bra .8
.4 >PUSHBI 8 .4 >PUSHBI 0
>LDYA L.MSG2.C >LDYA L.MSG2.C
.8 >SYSCALL printf .8 >SYSCALL printf
rts .9 rts
*-------------------------------------- *--------------------------------------
*--------------------------------------
CS.EVENT sec CS.EVENT sec
rts rts
*-------------------------------------- *--------------------------------------
@ -162,8 +162,9 @@ CS.QUIT clc
CS.END CS.END
MSG0 .AZ "ID Name Addr. Status Typ/Sub IDString Version Size (BLK)" MSG0 .AZ "ID Name Addr. Status Typ/Sub IDString Version Size (BLK)"
MSG1 .AZ "%03d %7s $%H " MSG1 .AZ "%03d %7s $%H "
MSG2.B .AZ "%s $%h/$%h %16S %03d.%03d %10u" MSG2 .AZ "%s $%h/$%h %16S %03d.%03d "
MSG2.C .AZ "%s $%h/$%h %16S %03d.%03d n/a" MSG2.B .AZ "%10u"
MSG2.C .AZ "n/a"
MSG.SFLAGS .AS "BWRLNEIO" MSG.SFLAGS .AS "BWRLNEIO"
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

@ -165,34 +165,36 @@ CS.RUN.PRINT >LEA.G MD5Buf
>SYSCALL puts >SYSCALL puts
lda #0 lda #0
sec
rts * sec
* rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT sec CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT >LDA.G hFullPath CS.QUIT ldy #hFullPath
beq .1 jsr .8
>SYSCALL FreeMem ldy #hDataBuf
jsr .8
.1 >LDA.G hDataBuf
beq .2
>SYSCALL FreeMem
.2 >LDA.G hFile .2 >LDA.G hFile
beq .3 beq .3
>SYSCALL fclose >SYSCALL fclose
.3
.7 lda hLIBCRYPT .3 lda hLIBCRYPT
beq .8 beq .4
>SYSCALL UnloadLib >SYSCALL UnloadLib
.8 clc .4 clc
rts rts
.8 lda (pData),y
beq .9
>SYSCALL FreeMem
.9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------

View File

@ -333,7 +333,7 @@ AUTO 4,1
*-------------------------------------- *--------------------------------------
.MA PUSHL .MA PUSHL
ldy #3 ldy #3
:1 lda (pData),y :1 lda ]1,y
>PUSHA >PUSHA
dey dey
bpl :1 bpl :1
@ -342,7 +342,7 @@ AUTO 4,1
.MA PULLL .MA PULLL
ldy #0 ldy #0
:1 >PULLA :1 >PULLA
sta (pData),y sta ]1,y
iny iny
cpy #4 cpy #4
bne :1 bne :1
@ -350,7 +350,7 @@ AUTO 4,1
*-------------------------------------- *--------------------------------------
.MA PUSHF .MA PUSHF
ldy #4 ldy #4
:1 lda (pData),y :1 lda ]1,y
>PUSHA >PUSHA
dey dey
bpl :1 bpl :1
@ -359,7 +359,7 @@ AUTO 4,1
.MA PULLF .MA PULLF
ldy #0 ldy #0
:1 >PULLA :1 >PULLA
sta (pData),y sta ]1,y
iny iny
cpy #5 cpy #5
bne :1 bne :1

View File

@ -13,6 +13,8 @@ AUTO 4,1
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 TmpPtr1 .EQ $0
*-------------------------------------- *--------------------------------------
BUF.PREFIX .EQ $300
*--------------------------------------
AT.INIT >LDYAI MSG.INIT AT.INIT >LDYAI MSG.INIT
jsr PrintFYA jsr PrintFYA
@ -159,8 +161,6 @@ MLIGETPREFIX.PARAMS
.DA #1 .DA #1
.DA BUF.PREFIX .DA BUF.PREFIX
*-------------------------------------- *--------------------------------------
BUF.PREFIX .BS MLI.MAXPATH
*--------------------------------------
MAN MAN
SAVE /A2OSX.SRC/SYS/KM.APPLETALK.S SAVE /A2OSX.SRC/SYS/KM.APPLETALK.S
ASM ASM

View File

@ -13,23 +13,23 @@ AUTO 4,1
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 TmpPtr1 .EQ $0
TmpPtr2 .EQ $2 TmpPtr2 .EQ $2
offset .EQ $4
*-------------------------------------- *--------------------------------------
NSC.Init >LDYAI NSC.MSG0 NSC.Init >LDYAI NSC.MSG0
jsr NSC.Print jsr NSC.Print
lda MACHID lda MACHID
and #MACHID.CLK Clock already installed ? and #MACHID.CLK Clock already installed ?
beq .1 beq .1
>LDYAI NSC.MSG1 >LDYAI NSC.MSG1
jsr NSC.Print jmp NSC.Print
rts
.1 jsr NSC.Detect .1 jsr NSC.Detect
bcc .2 bcc .2
>LDYAI NSC.MSG2 >LDYAI NSC.MSG2
jsr NSC.Print jmp NSC.Print
rts
.2 jsr NSC.Install .2 jsr NSC.Install
@ -38,8 +38,10 @@ NSC.Init >LDYAI NSC.MSG0
sta MACHID sta MACHID
>LDYAI NSC.MSG3 >LDYAI NSC.MSG3
jsr NSC.Print jmp NSC.Print
rts *--------------------------------------
DS1216E.DATA1 .EQ $10
DS1216E.DATA2 .EQ $18
*-------------------------------------- *--------------------------------------
NSC.Detect php NSC.Detect php
sei sei
@ -116,19 +118,16 @@ NSC.Detect php
.9 clc .9 clc
rts rts
*-------------------------------------- *--------------------------------------
DS1216E.DATA1 .BS 8
DS1216E.DATA2 .BS 8
*--------------------------------------
NSC.Install lda DATETIME+1 NSC.Install lda DATETIME+1
sta TmpPtr1 sta TmpPtr1
sec sec
sbc #NSCDRV.B.START sbc #NSCDRV.B.START
sta NSCDRV.OFFSET sta offset
lda DATETIME+2 lda DATETIME+2
sta TmpPtr1+1 sta TmpPtr1+1
sbc /NSCDRV.B.START sbc /NSCDRV.B.START
sta NSCDRV.OFFSET+1 sta offset+1
ldy #1 ldy #1
@ -136,6 +135,7 @@ NSC.Install lda DATETIME+1
.1 lda NSCDRV.RELOC,x .1 lda NSCDRV.RELOC,x
beq .2 beq .2
sta TmpPtr2 sta TmpPtr2
inx inx
lda NSCDRV.RELOC,x lda NSCDRV.RELOC,x
@ -143,11 +143,11 @@ NSC.Install lda DATETIME+1
lda (TmpPtr2) lda (TmpPtr2)
clc clc
adc NSCDRV.OFFSET adc offset
sta (TmpPtr2) sta (TmpPtr2)
lda (TmpPtr2),y lda (TmpPtr2),y
adc NSCDRV.OFFSET+1 adc offset+1
sta (TmpPtr2),y sta (TmpPtr2),y
inx inx
@ -156,12 +156,12 @@ NSC.Install lda DATETIME+1
.2 lda RRAMWRAMBNK1 .2 lda RRAMWRAMBNK1
lda RRAMWRAMBNK1 lda RRAMWRAMBNK1
.3 ldy #0 .3 ldy #NSCDRV.SIZE-1 always < 128
.7 lda NSCDRV.B.START,y .7 lda NSCDRV.B.START,y
sta (TmpPtr1),y sta (TmpPtr1),y
iny dey
cpy #NSCDRV.SIZE bpl .7
bne .7
lda RROMBNK1 lda RROMBNK1
@ -169,7 +169,6 @@ NSC.Install lda DATETIME+1
sta DATETIME sta DATETIME
rts rts
*-------------------------------------- *--------------------------------------
NSCDRV.OFFSET .BS 2
NSCDRV.RELOC .DA NSCDRV.R1+1 NSCDRV.RELOC .DA NSCDRV.R1+1
.DA NSCDRV.R2+1 .DA NSCDRV.R2+1
.DA NSCDRV.R3+1 .DA NSCDRV.R3+1
@ -179,24 +178,26 @@ NSCDRV.RELOC .DA NSCDRV.R1+1
.DA NSCDRV.R7+1 .DA NSCDRV.R7+1
.DA NSCDRV.R8+1 .DA NSCDRV.R8+1
.DA NSCDRV.R9+1 .DA NSCDRV.R9+1
.DA 0 .DA #0
*-------------------------------------- *--------------------------------------
NSC.Print sta TmpPtr1 NSC.Print sty TmpPtr1
stx TmpPtr1+1 sta TmpPtr1+1
ldy #0 ldy #0
.1 lda (TmpPtr1),y .1 lda (TmpPtr1),y
beq .9 beq .8
ora #$80
jsr COUT jsr COUT
iny iny
bne .1 bne .1
.9 jmp CROUT
.8 jmp CROUT
*-------------------------------------- *--------------------------------------
NSC.MSG0 .AZ "NSC ('No-Slot-Clock'/DS1216E) Driver For A2osX" NSC.MSG0 .AZ -"NSC 'No-Slot-Clock'/DS1216E Driver For A2osX"
NSC.MSG1 .AZ "A Clock Driver Is Already Installed." NSC.MSG1 .AZ -"Clock Already Present!"
NSC.MSG2 .AZ "DS1216E Chip Not Detected." NSC.MSG2 .AZ -"No DS1216E Detected!"
NSC.MSG3 .AZ "DS1216E Driver Successfully Installed." NSC.MSG3 .AZ -"DS1216E Driver Successfully Installed."
*-------------------------------------- *--------------------------------------
* Driver For DS1216E * Driver For DS1216E
*-------------------------------------- *--------------------------------------

View File

@ -407,13 +407,14 @@ CS.QUIT >LDA.G PAK.hFileName
CS.END CS.END
LIBPAK .AZ "libpak.o" LIBPAK .AZ "libpak.o"
hLIBPAK .BS 1 hLIBPAK .BS 1
MSG1 .AS "PrintF:%e, %e, %e\r\n" MSG1 .AS "PrintF:\r\n"
.AS "%e, %e\r\n" .AS " %e, %e, %e, %e, %e\r\n"
.AZ "StrToF:%e, %e\r\n" .AS "StrToF:\r\n"
.AZ " %e, %e\r\n"
MSG2 .AZ "PI/3=%e\r\n" MSG2 .AZ "PI/3=%e\r\n"
MSG3 .AZ "COS(PI/3)=%e\r\n" MSG3 .AZ "COS(PI/3)=%e\r\n"
MSG4 .AZ "Long=%L\r\n" MSG4 .AZ "LRIntF(99,999,999.9)=%L\r\n"
MSG5 .AZ "Float=%e\r\n" MSG5 .AZ "Float(123456789)=%e\r\n"
CONST.PI .AZ "3.141592653" CONST.PI .AZ "3.141592653"
CONST.3 .AZ "3" CONST.3 .AZ "3"
FLOAT1 .HS 9B3EBC1FFD 99,999,999.9 FLOAT1 .HS 9B3EBC1FFD 99,999,999.9