mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-11 12:29:35 +00:00
Kernel 0.94
This commit is contained in:
parent
30bf312f81
commit
7fe7639385
Binary file not shown.
0
BIN/SHUTDOWN.S.txt
Normal file
0
BIN/SHUTDOWN.S.txt
Normal file
32
ETC/INIT.txt
32
ETC/INIT.txt
|
@ -1,21 +1,23 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
#!/BIN/SH
|
|
||||||
ECHO *** A2osX INIT Script ***
|
|
||||||
# Main Screens
|
# Main Screens
|
||||||
NOHUP GETTY /dev/tty1 ${ROOT}SBIN/LOGIN &
|
${ROOT}sbin/getty /dev/tty1 ${ROOT}sbin/login
|
||||||
NOHUP GETTY /dev/tty2 ${ROOT}SBIN/LOGIN &
|
${ROOT}sbin/getty /dev/tty2 ${ROOT}sbin/login
|
||||||
NOHUP GETTY /dev/tty3 ${ROOT}SBIN/LOGIN &
|
${ROOT}sbin/getty /dev/tty3 ${ROOT}sbin/login
|
||||||
NOHUP GETTY /dev/tty4 ${ROOT}SBIN/LOGIN &
|
${ROOT}sbin/getty /dev/tty4 ${ROOT}sbin/login
|
||||||
|
${ROOT}sbin/getty /dev/tty5 ${ROOT}sbin/login
|
||||||
|
${ROOT}sbin/getty /dev/tty6 ${ROOT}sbin/login
|
||||||
|
${ROOT}sbin/getty /dev/tty7 ${ROOT}sbin/login
|
||||||
|
${ROOT}sbin/getty /dev/tty8 ${ROOT}sbin/login
|
||||||
# Serial Login
|
# Serial Login
|
||||||
#INSDRV SSC.DRV 9600,N,8,1,X
|
# ${ROOT}sbin/insdrv ssc.drv 9600,N,8,1,X
|
||||||
#INSDRV SSC.I.DRV 9600,N,8,1,X
|
# ${ROOT}sbin/insdrv ssc.i.drv 9600,N,8,1,X
|
||||||
#NOHUP GETTY /DEV/COM2 ${ROOT}SBIN/LOGIN &
|
# ${ROOT}sbin/getty /dev/com2 ${ROOT}sbin/login
|
||||||
#INSDRV PIC.DRV
|
# Extra devices
|
||||||
|
# ${ROOT}sbin/insdrv pic.drv
|
||||||
# GUI Section
|
# GUI Section
|
||||||
#INSDRV MOUSE.DRV
|
# ${ROOT}sbin/insdrv mouse.drv
|
||||||
#INSDRV DHGR.DRV
|
# ${ROOT}sbin/insdrv dhgr.drv
|
||||||
#NOHUP GUI &
|
# ${ROOT}bin/gui
|
||||||
ECHO *** End INIT ***
|
|
||||||
MAN
|
MAN
|
||||||
TEXT ETC/INIT
|
TEXT etc/init
|
||||||
|
|
149
SBIN/INITD.S.txt
149
SBIN/INITD.S.txt
|
@ -7,12 +7,16 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/MLI.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Zero Page Segment, up to 32 bytes
|
* Zero Page Segment, up to 32 bytes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
|
BufPtr .BS 2
|
||||||
|
hBuf .BS 1
|
||||||
|
hFile .BS 1
|
||||||
ZS.END
|
ZS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -36,86 +40,137 @@ CS.START cld
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.CTRLR .DA MSG.CTRLR
|
L.MSG.CTRLR .DA MSG.CTRLR
|
||||||
L.MSG.ETCINIT .DA MSG.ETCINIT
|
L.BINSH .DA BINSH
|
||||||
L.BINSHELL .DA BINSHELL
|
L.ETCINIT .DA ETCINIT
|
||||||
L.ETCINIT .DA ETCINIT
|
L.BINMEM .DA BINMEM
|
||||||
L.MSG.RUNNING .DA MSG.RUNNING
|
L.BINPS .DA BINPS
|
||||||
|
L.BINSHUTDOWN .DA BINSHUTDOWN
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called once at process creation
|
|
||||||
* Put code for loading LIB here
|
|
||||||
*--------------------------------------
|
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called until exit with CS
|
|
||||||
* if RUN exits with CC, RN entered again
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN ldy #S.PS.PID
|
CS.RUN ldy #S.PS.PID
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.PS.hStdIn
|
||||||
|
lda (pPS),y
|
||||||
|
>SYSCALL feof
|
||||||
|
bcs .99
|
||||||
|
tay
|
||||||
|
bne .1
|
||||||
|
|
||||||
>SYSCALL getchar
|
>SYSCALL getchar
|
||||||
bcs .1
|
bcs .99
|
||||||
|
|
||||||
cmp #$12 CTRL-R for Root mode
|
cmp #18 CTRL-R for Root mode
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.CTRLR
|
>LDYA L.MSG.CTRLR
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
>PUSHW L.BINSHELL
|
|
||||||
>PUSHBI S.PS.F.HOLD
|
>LDYA L.BINSH
|
||||||
>SYSCALL ExecL
|
jsr CS.RUN.EXEC.YA
|
||||||
>SLEEP
|
|
||||||
|
.1 jsr CS.RUN.ETCINIT
|
||||||
.1 >LDYA L.MSG.ETCINIT
|
bcs .99
|
||||||
>SYSCALL puts
|
|
||||||
>PUSHW L.ETCINIT
|
.2 >SYSCALL getchar
|
||||||
>PUSHBI S.PS.F.HOLD
|
bcs .99
|
||||||
>SYSCALL ExecL
|
|
||||||
>SLEEP
|
cmp #C.CR Ctrl.M
|
||||||
>LDYA L.MSG.RUNNING
|
bne .3
|
||||||
>SYSCALL puts
|
|
||||||
|
>LDYA L.BINMEM
|
||||||
ldy #S.PS.F.HOLD
|
jsr CS.RUN.EXEC.YA
|
||||||
ora (pPS),y
|
bra .2
|
||||||
sta (pPS),y
|
|
||||||
>SLEEP
|
.3 cmp #16 Ctrl.P
|
||||||
|
bne .4
|
||||||
lda #0
|
>LDYA L.BINPS
|
||||||
|
jsr CS.RUN.EXEC.YA
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.4 cmp #4 Ctrl.D
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
>LDYA L.BINSHUTDOWN
|
||||||
|
jsr CS.RUN.EXEC.YA
|
||||||
|
bcs .2
|
||||||
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.SYN
|
.9 lda #E.SYN
|
||||||
sec
|
sec
|
||||||
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.ETCINIT >LDYAI 256
|
||||||
|
>SYSCALL getmem
|
||||||
|
>STYA BufPtr
|
||||||
|
stx hBuf
|
||||||
|
|
||||||
|
>PUSHW L.ETCINIT
|
||||||
|
>PUSHBI O.RDONLY+O.TEXT
|
||||||
|
>PUSHBI S.FI.T.TXT
|
||||||
|
>PUSHWZ
|
||||||
|
>SYSCALL fopen
|
||||||
|
bcs .90
|
||||||
|
|
||||||
|
sta hFile
|
||||||
|
|
||||||
|
.1 >PUSHWI 256
|
||||||
|
>PUSHW BufPtr
|
||||||
|
lda hFile
|
||||||
|
>SYSCALL fgets
|
||||||
|
bcs .80
|
||||||
|
|
||||||
|
lda (BufPtr)
|
||||||
|
cmp #'#'
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
>LDYA BufPtr
|
||||||
|
>SYSCALL puts
|
||||||
|
>LDYA BufPtr
|
||||||
|
jsr CS.RUN.EXEC.YA
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.90 pha
|
||||||
|
jsr .81
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.80 lda hFile
|
||||||
|
>SYSCALL fclose
|
||||||
|
|
||||||
|
.81 lda hBuf
|
||||||
|
>SYSCALL freemem
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called if option S.PS.F.EVENT enabled in Header
|
CS.RUN.EXEC.YA >PUSHYA
|
||||||
* Timer Event : every 10th seconds
|
>PUSHBI S.PS.F.HOLD+S.PS.F.SLEEP+S.PS.F.NOHUP
|
||||||
|
>SYSCALL ExecL
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called once, when RUN exited with CS
|
|
||||||
* Put code for unloading LIB here
|
|
||||||
*--------------------------------------
|
|
||||||
CS.QUIT clc
|
CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Initialized DATA
|
|
||||||
*--------------------------------------
|
|
||||||
MSG.CTRLR .AZ "INITD:Ctrl-R Pressed, entering ROOT mode..."
|
MSG.CTRLR .AZ "INITD:Ctrl-R Pressed, entering ROOT mode..."
|
||||||
MSG.ETCINIT .AS "INITD:Executing ETC/INIT Script:"
|
BINSH .AZ "${ROOT}bin/sh"
|
||||||
BINSHELL .AZ "${ROOT}bin/sh"
|
|
||||||
ETCINIT .AZ "${ROOT}etc/init"
|
ETCINIT .AZ "${ROOT}etc/init"
|
||||||
MSG.RUNNING .AZ "INITD:Running..."
|
BINMEM .AZ "${ROOT}bin/mem"
|
||||||
MSH.SHUTDOWN .AZ "INITD:Shutting down..."
|
BINPS .AZ "${ROOT}bin/ps"
|
||||||
*--------------------------------------
|
BINSHUTDOWN .AZ "${ROOT}bin/shutdown"
|
||||||
* Per Process DATA segement (0 filled before INIT)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
INITD .EQ 1
|
||||||
|
*--------------------------------------
|
||||||
Kernel.Init2 sei
|
Kernel.Init2 sei
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
txs
|
txs
|
||||||
|
@ -151,6 +153,7 @@ Kernel.Init3C >PUSHWI MSG.Init3
|
||||||
|
|
||||||
jsr PwdMgrInit
|
jsr PwdMgrInit
|
||||||
|
|
||||||
|
.DO INITD=0
|
||||||
lda KBD
|
lda KBD
|
||||||
bpl .7
|
bpl .7
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
|
@ -160,17 +163,21 @@ Kernel.Init3C >PUSHWI MSG.Init3
|
||||||
>PUSHWI MSG.CTRLR
|
>PUSHWI MSG.CTRLR
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL2 printf
|
>SYSCALL2 printf
|
||||||
>PUSHWI CTRLR.SHELL
|
>PUSHWI BINSH
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.7 >PUSHWI MSG.EtcInit
|
.7 >PUSHWI MSG.EtcInit
|
||||||
>PUSHWI ETCINIT.CMDLINE
|
>PUSHWI ETCINIT
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL2 printf
|
>SYSCALL2 printf
|
||||||
|
|
||||||
>PUSHWI ETCINIT.CMDLINE
|
>PUSHWI ETCINIT
|
||||||
|
|
||||||
.8 >PUSHBI 0 PS Flags
|
.8 .ELSE
|
||||||
|
>PUSHWI SBININITD
|
||||||
|
|
||||||
|
.FIN
|
||||||
|
>PUSHBI 0 PS Flags
|
||||||
>SYSCALL2 ExecL
|
>SYSCALL2 ExecL
|
||||||
bcs Kernel.Init3.Err
|
bcs Kernel.Init3.Err
|
||||||
|
|
||||||
|
@ -1187,8 +1194,12 @@ I.ENV.ROOT .AZ "ROOT"
|
||||||
I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/"
|
I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/"
|
||||||
I.ENV.LIB .AZ "LIB=${BOOT}lib/"
|
I.ENV.LIB .AZ "LIB=${BOOT}lib/"
|
||||||
I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
||||||
CTRLR.SHELL .AZ "${BOOT}bin/sh"
|
.DO INITD=0
|
||||||
ETCINIT.CMDLINE .AZ "${ROOT}etc/init"
|
BINSH .AZ "${BOOT}bin/sh"
|
||||||
|
ETCINIT .AZ "${ROOT}etc/init"
|
||||||
|
.ELSE
|
||||||
|
SBININITD .AZ "${ROOT}sbin/initd"
|
||||||
|
.FIN
|
||||||
ETCPASSWD .AZ "${ROOT}etc/passwd"
|
ETCPASSWD .AZ "${ROOT}etc/passwd"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PwdMgr.ROOT .DA #S.SESSION.P.ROOT
|
PwdMgr.ROOT .DA #S.SESSION.P.ROOT
|
||||||
|
|
Loading…
Reference in New Issue
Block a user