Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-04-10 16:51:47 +01:00
parent ed74949a4a
commit 295dcbce1a
9 changed files with 261 additions and 57 deletions

View File

@ -16,7 +16,7 @@ ZS.START
* MyPtr .BS 2
ZS.END .ED
*---------------------------------------
* File Header (16 Bytes)
* File Header (16 Bytes)
*---------------------------------------
CS.START cld
jmp (.1,x)
@ -84,7 +84,7 @@ CS.END
* Put your constant here :
* MSG.TEST .AZ "Test Message"
*---------------------------------------
* Per Process DATA segement (0 filled before INIT)
* Per Process DATA segment (0 filled before INIT)
*---------------------------------------
.DUMMY
.OR 0

View File

@ -97,23 +97,23 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD
jsr MLI
.DA #MLIOPEN
.DA MLIOPEN00
.DA MLIOPENK
bcs .9
lda MLIOPEN00+5
sta MLIREAD00+1
sta MLICLOSE00+1
lda MLIOPENK+5
sta MLIREADK+1
sta MLICLOSEK+1
jsr MLI
.DA #MLIREAD
.DA MLIREAD00
.DA MLIREADK
php
pha
jsr MLI
.DA #MLICLOSE
.DA MLICLOSE00
.DA MLICLOSEK
pla
plp
@ -148,18 +148,18 @@ A2osX.QC.PrintYA
MLISETPREFIX00 .DA #1
.DA A2osX.QC.Prefix
*--------------------------------------
MLIOPEN00 .DA #3
MLIOPENK .DA #3
.DA A2osX.QC.Prefix
.DA $C00
.BS 1
*--------------------------------------
MLIREAD00 .DA #4
MLIREADK .DA #4
.BS 1
.DA $2000
.DA $8000
.BS 2
*--------------------------------------
MLICLOSE00 .DA #1
MLICLOSEK .DA #1
.BS 1
*--------------------------------------
SYSKERNEL >PSTR "SYS/KERNEL"

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
@ -12,20 +11,25 @@ AUTO 4,1
.INB INC/MONITOR.I
.INB INC/MLI.I
.INB INC/MLI.E.I
.INB INC/ZP.I
.INB INC/GFX.I
*--------------------------------------
TmpPtr1 .EQ $0 main & aux ZP
TmpPtr2 .EQ $2 main & aux ZP
*--------------------------------------
A2osX.LOGOLOAD .EQ $2000
A2osX.KMLOAD .EQ $2000
A2osX.KMMAXLEN .EQ $6000
A2osX.OpenBuff1 .EQ $8000 1024 Buffer for MLIOPEN01
A2osX.OpenBuff2 .EQ $8400 1024 Buffer for MLIOPEN02
A2osX.ReadBuff .EQ $8800 512 Buffer for MLIREAD01
Boot.Prefix .EQ $8A00 MLI.MAXPATH
KM.Filename .EQ $8A80 MLI.MAXPATH
LOGO.Filename .EQ $8A80 MLI.MAXPATH
KM.Filename .EQ $8B00 MLI.MAXPATH
*--------------------------------------
* Kernel Stage 0
*--------------------------------------
SYSTEM.START .EQ *
.PH $1000
A2osX.Init0 >LDYAI $2000
@ -67,10 +71,10 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest
>LDYAI MSG.SYSMEM.KO
jsr PrintFYA
bra *
.1 lda #$8C Reset 80 col screen ($0C:HOME)
jsr $C300
*--------------------------------------
.1 jsr A2osX.Prefix
jsr A2osX.Screen80 Reset 80 col screen ($0C:HOME)
>LDYAI MSG.INIT0
jsr PrintFYA
@ -104,26 +108,6 @@ A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0
.DA MLICLOSE01
bcs *
*--------------------------------------
A2osX.Prefix >LDYAI MSG.BOOTPREFIX
jsr PrintFYA
jsr MLI
.DA #MLIGETPREFIX
.DA MLIGETPREFIX01
bcs *
ldx Boot.Prefix
stx A2osX.QC.B.Start+4
ldy #1
.1 lda Boot.Prefix,y
sta A2osX.QC.B.Start+4,y
ora #$80
jsr COUT
iny
dex
bne .1
jsr CROUT
*--------------------------------------
A2osX.RamDrv >LDYAI MSG.RAMDRV
jsr PrintFYA
@ -167,12 +151,179 @@ A2osX.EnumKM >LDYAI MSG.KMENUM
*--------------------------------------
A2osX.MLIQuit >LDYAI MSG.INIT0OK
jsr PrintFYA
>DEBUG
>DEBUGOA
jsr MLI
.DA #MLIQUIT
.DA MLIQUIT01
bra *
*--------------------------------------
A2osX.Prefix >LDYAI MSG.BOOTPREFIX
jsr PrintFYA
jsr MLI
.DA #MLIGETPREFIX
.DA MLIGETPREFIX01
bcs *
ldx Boot.Prefix
stx A2osX.QC.B.Start+4
ldy #1
.1 lda Boot.Prefix,y
sta A2osX.QC.B.Start+4,y
iny
dex
bne .1
rts
*--------------------------------------
A2osX.Screen80 lda #$8C
jsr $C300
ldx Boot.Prefix
.1 lda Boot.Prefix,x
sta LOGO.Filename,x
dex
bpl .1
ldx Boot.Prefix
ldy #0
.2 inx
iny
lda A2osX.LOGO,y
sta LOGO.Filename,x
cpy A2osX.LOGO
bne .2
jsr MLI
.DA #MLIOPEN
.DA MLIOPEN00
bcs .99
lda MLIOPEN00+5
sta MLIREAD00+1
sta MLICLOSE00+1
jsr MLI
.DA #MLIREAD
.DA MLIREAD00
bcs .98
jsr .98
bra A2osX.ScreenDLGR
.98 jsr MLI
.DA #MLICLOSE
.DA MLICLOSE00
.99 rts
*--------------------------------------
A2osX.ScreenDLGR
lda #20
sta WNDTOP
sta CV
jsr VTAB
sta CLRHIRES
sta SETMIXED
sta CLRTEXT
sta SET80STORE
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
phy
tay
lda PALETTE.AUX,y
ply
sta SETPAGE2
sta (TmpPtr2),y
pla
lsr
lsr
lsr
lsr
sta CLRPAGE2
sta (TmpPtr2),y
iny
cpy #40
bne .2
lda TmpPtr1
clc
adc #80
sta TmpPtr1
bcc .3
inc TmpPtr1+1
.3 ldy #0
.4 lda (TmpPtr1),y
pha
and #$f
phy
tay
lda PALETTE.AUX,y
ply
asl
asl
asl
asl
sta SETPAGE2
ora (TmpPtr2),y
sta (TmpPtr2),y
pla
and #$f0
sta CLRPAGE2
ora (TmpPtr2),y
sta (TmpPtr2),y
iny
cpy #40
bne .2
lda TmpPtr1
clc
adc #80
sta TmpPtr1
bcc .3
inc TmpPtr1+1
lda TmpPtr1
clc
adc #80
sta TmpPtr1
bcc .7
inc TmpPtr1+1
.7 inx
cpx #20
bne .1
rts
*--------------------------------------
DisableRamDRV php
sei
lda DEVPTRS3D2
@ -377,7 +528,7 @@ LoadKM ldx Boot.Prefix
.DA MLICLOSE02
.99 rts
*--------------------------------------
.INB USR/SRC/X.PRINTF.S
.INB USR/SRC/SHARED/X.PRINTF.S
*--------------------------------------
MSG.INIT0 .AZ "A2osX[Stage0]:Init\n"
MSG.SYSMEM .AZ "Checking System Memory..."
@ -405,6 +556,19 @@ MLIONLINE01 .DA #2
.DA #0
.DA MLIONLINE01BUF
MLIONLINE01BUF .BS 256
*--------------------------------------
MLIOPEN00 .DA #3 For DIR listing
.DA LOGO.Filename
.DA A2osX.OpenBuff1
.BS 1
MLIREAD00 .DA #4
.BS 1
.DA A2osX.LOGOLOAD
.DA 2048
.BS 2
MLICLOSE00 .DA #1
.BS 1
*--------------------------------------
MLIOPEN01 .DA #3 For DIR listing
.DA Boot.Prefix
.DA A2osX.OpenBuff1
@ -416,6 +580,7 @@ MLIREAD01 .DA #4
.BS 2
MLICLOSE01 .DA #1
.BS 1
*--------------------------------------
MLIOPEN02 .DA #3
.DA KM.Filename
.DA A2osX.OpenBuff2
@ -427,19 +592,29 @@ MLIREAD02 .DA #4
.BS 2
MLICLOSE02 .DA #1
.BS 1
*--------------------------------------
MLIQUIT01 .DA #4
.DA #0
.DA 0
.DA #0
.DA 0
*--------------------------------------
A2osX.LOGO >PSTR "A2OSX.LOGO"
SYS >PSTR "SYS/"
KM.PREFIX >PSTR "KM."
*--------------------------------------
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
*--------------------------------------
PALETTE.AUX .HS 00080109020A030B040C050D060E070F
*--------------------------------------
.EP
*--------------------------------------
A2osX.QC.B.Start
.INB USR/SRC/A2OSX.S.QC
.LIST ON
SYSTEM.END .EQ *
.LIST OFF
*--------------------------------------
MAN
SAVE USR/SRC/A2OSX.S

View File

@ -298,6 +298,7 @@ CS.RUN.24 lda #S.BM.F.BBP4
stx ZPOutputRowBytes+1
jsr CS.RUN.GetOutputBuf
bcs CS.RUN.RTS
jsr DEBUG.ClrScr
@ -350,8 +351,24 @@ CS.RUN.24.LOOP inc ZPLineCount
.5 jsr CS.RUN.GetNearestColor
pha
jsr DEBUG.PLOT
lda ZPCntX
lsr
tay
pla
bcc .6
sta (ZPOutputBuf),y
bra .2
.6 asl
asl
asl
asl
ora (ZPOutputBuf),y
sta (ZPOutputBuf),y
bra .2
.8 jsr CS.RUN.WRITE
@ -572,7 +589,14 @@ CS.RUN.GetOutputBuf
sta ZPPtr1+1
bra .1
.8 lda ZPPtr1
.8 >LDYA.G ZPPtr1
>SYSCALL Getmem
bcs .9
>STYA ZPOutputBuf
txa
>STA.G hOutputBuf
lda ZPPtr1
>STA.G OutputDataLen
clc
adc ZPOutputBuf
@ -584,7 +608,7 @@ CS.RUN.GetOutputBuf
sta ZPOutputBuf+1
clc
rts
.9 rts
*--------------------------------------
CS.RUN.WRITE >PUSHWI S.BM
>PUSHEA.G PIX.Header

View File

@ -4,6 +4,9 @@ NEW
.OP 65C02
.OR $2000
.TF BIN/USERADD
*--------------------------------------
USER.MAX .EQ 16
PASS.MAX .EQ 64
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
@ -33,7 +36,7 @@ CS.START cld
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data SegmentSize
.DA #16 Stack Size
.DA #64 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
@ -105,7 +108,7 @@ CS.RUN.ROOT sec
jsr CS.RUN.GetStr
bcs .9
>PUSHEA.G PW+S.PW.PASSWD
>PUSHW ZPStrPtr
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5
@ -141,7 +144,7 @@ CS.RUN.GetStr stz ZPStrLen
>SYSCALL putchar
bra .1
.2 cmp #3
.2 cmp #3 Ctrl-C
beq .9
cmp #C.CR
@ -162,7 +165,12 @@ CS.RUN.GetStr stz ZPStrLen
>SYSCALL printf
bra .1
.8 clc
.8 ldy ZPStrLen
lda #0
sta (ZPStrPtr),y
clc
.9 rts
*--------------------------------------
* Called if option S.PS.F.EVENT enabled in Header

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
* GFX Devices

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
ZPCmdPtr .EQ ZPDRV
ZPDstBMPtr .EQ ZPDRV+2
@ -831,6 +830,6 @@ SHIFT8.L7 .DA #%00000000,#%10000000,#%00000001,#%10000001,#%00000010,#%10000010
.DA #%00111100,#%10111100,#%00111101,#%10111101,#%00111110,#%10111110,#%00111111,#%10111111
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.OSD
SAVE USR/SRC/SYS/KERNEL.S.OSDX
LOAD USR/SRC/SYS/KERNEL.S
ASM

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
X.SLIST jmp (.1-SYS.SListGetData,x)
.1 .DA SLIST.GetData
@ -477,6 +476,6 @@ SLIST.BytePtr .BS 1
SLIST.BlockPtr .BS 1
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SLIST
SAVE USR/SRC/SYS/KERNEL.S.SLISTX
LOAD USR/SRC/SYS/KERNEL.S
ASM

View File

@ -19,7 +19,7 @@ AUTO 4,1
.INB USR/SRC/SYS/KERNEL.S.DEF
.INB USR/SRC/SYS/KERNEL.S.INIT
.INB USR/SRC/X.PRINTF.S
.INB USR/SRC/SHARED/X.PRINTF.S
A2osX.MAIN .PH A2osX.EndTables
.INB USR/SRC/SYS/KERNEL.S.CORE
@ -30,8 +30,8 @@ Mem.MLoMem .EQ *
.LIST OFF
.EP
A2osX.AUX .PH $1000
.INB USR/SRC/SYS/KERNEL.S.OSD
.INB USR/SRC/SYS/KERNEL.S.SLIST
.INB USR/SRC/SYS/KERNEL.S.OSDX
.INB USR/SRC/SYS/KERNEL.S.SLISTX
.INB USR/SRC/SYS/KERNEL.S.PWDX
.LIST ON
Mem.XLoMem .EQ *