mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-21 05:29:49 +00:00
Kernel 0.93
This commit is contained in:
parent
ed74949a4a
commit
295dcbce1a
@ -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
|
||||
|
@ -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"
|
||||
|
231
A2osX.S.txt
231
A2osX.S.txt
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* GFX Devices
|
||||
|
@ -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
|
@ -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
|
@ -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 *
|
||||
|
Loading…
x
Reference in New Issue
Block a user