NEW PREFIX AUTO 4,1 *-------------------------------------- Kernel.Init2 sei ldx #$FF txs sta SETALTZP stx A2osX.SaveSM stx A2osX.SaveSX ldx #Kernel.ZP.S-1 .1 lda Kernel.ZP,x sta CHARGET,x dex bpl .1 sta CLRALTZP >LDYAI MSG.Init2 jsr PrintFYA >LDYAI A2osX.MAIN >STYA ZPPtr1 >LDYAI CORE.Run >STYA ZPPtr2 >LDYAI A2osX.MAIN.S^$FFFF jsr Kernel.Move >LDYAI A2osX.AUX >STYA A1L Src Start Address (MAIN) >LDYAI A2osX.GP >STYA A2L Src End Address (MAIN) >LDYAI X.GUIOSD >STYA A4L Dst Address (AUX) sec Main To Aux jsr AuxMove >LDYAI A2osX.GP >STYA ZPPtr1 >LDYAI A2osX.SYSCALL >STYA ZPPtr2 >LDYAI A2osX.GP.S^$FFFF jsr Kernel.Move sta SETALTZP bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 >LDYAI A2osX.D2 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 >LDYAI A2osX.D2.S^$FFFF jsr Kernel.Move bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 >LDYAI A2osX.D1 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 >LDYAI A2osX.D1.S^$FFFF jsr Kernel.Move >LDYAI A2osX.E0 >STYA ZPPtr1 >LDYAI $E000 >STYA ZPPtr2 >LDYAI A2osX.E0.S^$FFFF jsr Kernel.Move bit RROMBNK1 sta CLRALTZP cli jsr KConfigLoad lda A2osX.HZ pha >LDYAI MSG.HZ jsr PrintFYA >LDYAI MSG.Init2.OK jsr PrintFYA *-------------------------------------- >DEBUGOA *-------------------------------------- Kernel.Init3 sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 lda #$ff Make sure we are in Kernel Mode during setup sta IRQ.InKernel stz IRQ.InLib sta SETALTCHAR sta CLRMIXED sta CLRHIRES sta SET80STORE sta CLRPAGE2 sta SETDHIRES lda #"M" sta SYS.BASL0+38 jsr MemMgrInit >LDYAI S.PS Select Process 0 (Kernel) jsr K.GetMem0 >STYA pPs stx PS.Table.hPS lda #1 sta CORE.PSCount >LDYAI K.STACKTOP >STYA pStack sta pLocal+1 lda #"N" sta SYS.BASL0+38 >PUSHWI FD.NULL.NAME >LDYAI FD.NULL >SYSCALL MKDev jsr SysScrInit bcs * lda #"P" sta SYS.BASL0+38 >PUSHWI 0 Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDWR >LDYAI DEV.CONSOLE >SYSCALL fopen bcs * ldy #S.PS.hStdIn sta (pPs),y iny #S.PS.hStdOut sta (pPs),y iny #S.PS.hStdErr sta (pPs),y lda #"I" sta SYS.BASL0+38 *-------------------------------------- Kernel.Init3C >LDYAI MSG.Init3 >SYSCALL puts jsr CPU.Init.6502 jsr CPU.Init.Z80 jsr DevMgrInit jsr IrqMgrInit bcs * jsr EvtMgrInit jsr TskMgrInit bcs * jsr PwdMgrInit ldy #S.PS.hPREFIX lda (pPs),y jsr K.GetMemPtr >PUSHYA >PUSHBI 2 >LDYAI MSG.Prefix >SYSCALL printf lda KBD bpl .7 sta KBDSTROBE cmp #146 CTRL-R for ROOT mode bne .7 >PUSHBI 0 >LDYAI MSG.CTRLR >SYSCALL printf >PUSHBI 0 PS Flags >LDYAI CTRLR.SHELL bra .8 .7 >PUSHWI ETCINIT.CMDLINE >PUSHBI 2 >LDYAI MSG.EtcInit >SYSCALL printf >PUSHBI 0 PS Flags >LDYAI ETCINIT.CMDLINE .8 >SYSCALL ExecL bcs Kernel.Init3.Err >PUSHBI 0 >LDYAI MSG.Init3.OK >SYSCALL printf >DEBUGOA jmp CORE.Run Kernel.Init3.Err >PUSHA >PUSHBI 1 >LDYAI MSG.StartupErr >SYSCALL printf bra * No need to discard Expanded CMDLINE *-------------------------------------- * INIT2 Subs *-------------------------------------- Kernel.Move >STYA ZPPtr3 ldy #0 .1 inc ZPPtr3 bne .2 inc ZPPtr3+1 beq .9 .2 lda (ZPPtr1),y sta (ZPPtr2),y iny bne .1 inc ZPPtr1+1 inc ZPPtr2+1 bne .1 .9 rts *-------------------------------------- KConfigLoad >LDYAI MSG.KCREAD jsr PrintFYA jsr MLI .DA #MLIOPEN .DA MLIOPEN00 bcs .9 lda MLIOPEN00+5 sta MLIREAD00+1 sta MLICLOSE00+1 jsr MLI .DA #MLIREAD .DA MLIREAD00 php pha jsr MLI .DA #MLICLOSE .DA MLICLOSE00 pla plp bcs .9 >LDYAI MSG.KCREAD.OK jsr PrintFYA rts .9 >LDYAI MSG.KCREAD.KO jsr PrintFYA rts *-------------------------------------- * INIT3 Subs *-------------------------------------- MemMgrInit >LDYAI Mem.MHiMem >STYA Mem.HiMem >STYA Mem.Free >LDYAI Mem.MLoMem >STYA Mem.LoMem stz Mem.LastSlot Reserve Slot #0 sta SETWRITEAUX >LDYAI Mem.XLoMem >STYA Mem.LoMem stz Mem.LastSlot Reserve Slot #0 sta CLRWRITEAUX ldx #K.DEV.MAX*2-1 .1 stz Dev.Table,x dex bpl .1 ldx #K.FLT.MAX*2-1 .11 stz Flt.Table.hPath,x dex bpl .11 ldx #K.NOD.MAX*2-1 .2 stz Nod.Table.hPath,x dex bpl .2 ldx #K.PS.MAX*4-1 .3 stz PS.Table.PID,x dex bpl .3 ldx #K.OF.MAX*2-1 .4 stz OF.Table.hPath,x dex bpl .4 ldx #K.EVT.MAX*S.EVT-1 .5 stz Evt.Table,x dex bpl .5 ldx #K.USR.MAX*2-1 .6 stz S.Table.hPW,x dex bpl .6 rts *-------------------------------------- SysScrInit lda #"S" sta SYS.BASL0+38 >LDYAI Mem.XHiMem >STYA FD.TTY+S.FD.DEV.BUFPTR jsr SysScrInit.TTYPtrs >PUSHWI FD.CONSOLE.NAME >LDYAI FD.TTY >SYSCALL MKDev bcs .9 lda #"0" sta SYS.BASL0+38 ldx A2osX.TTYDEVS .1 phx inc SYS.BASL0+38 inc FD.TTY+S.FD.DEV.DEVID inc FD.TTY.NAME+3 jsr SysScrInit.TTYPtrs >PUSHWI FD.TTY.NAME >LDYAI FD.TTY >SYSCALL MKDev plx bcs .9 dex bne .1 >LDYA FD.TTY+S.FD.DEV.BUFPTR sta SETWRITEAUX >STYA Mem.HiMem >STYA Mem.Free sta CLRWRITEAUX clc .9 rts *-------------------------------------- SysScrInit.TTYPtrs lda DevMgr.Free sta FD.TTY+S.FD.DEV.DCBPTR sta .1+1 clc adc #S.DCB.TTY sta DevMgr.Free lda DevMgr.Free+1 sta FD.TTY+S.FD.DEV.DCBPTR+1 sta .1+2 adc /S.DCB.TTY sta DevMgr.Free+1 ldx #S.DCB.TTY-1 .1 stz $ffff,x SELF MODIFIED dex bpl .1 lda FD.TTY+S.FD.DEV.BUFPTR sec sbc #TTY.BUF.SIZE sta FD.TTY+S.FD.DEV.BUFPTR lda FD.TTY+S.FD.DEV.BUFPTR+1 sbc /TTY.BUF.SIZE sta FD.TTY+S.FD.DEV.BUFPTR+1 rts *-------------------------------------- CPU.Init.6502 >PUSHBI 0 >LDYAI MSG.CPU >SYSCALL printf jsr Detect6502 A = CPU type sta A2osX.CPUTYPE and #$F asl tax ldy MSG.CPUTYPE,x lda MSG.CPUTYPE+1,x >SYSCALL puts lda MACHID and #MACHID.T cmp #MACHID.T.IIc bne .10 jmp CPU.Init.Z80 .10 >PUSHBI 0 >LDYAI MSG.CPU.SPEED >SYSCALL printf stz A2osX.RANDOM16 stz A2osX.RANDOM16+1 php sei .1 bit VBL bpl .2 .2 bit VBL bmi .2 ldx #0 Count LO lda #0 Count HI .3 ldy #3 (2) .4 nop (2) dey (2) bne .4 (2*) inc A2osX.RANDOM16 (6) bne .5 (2*) inc A2osX.RANDOM16+1 (6) bit VBL (4) bpl .3 (2*) bmi .6 .5 nop (2) nop (2) nop (2) bit VBL (4) bpl .3 (2*) .6 plp stz A2osX.CPUSPEED .7 sec lda A2osX.RANDOM16 sbc #100 tax lda A2osX.RANDOM16+1 sbc /100 bcc .8 stx A2osX.RANDOM16 sta A2osX.RANDOM16+1 inc A2osX.CPUSPEED bra .7 .8 lda A2osX.RANDOM16 sta A2osX.CPUSPEED+1 >PUSHA push CPU speed LO lda A2osX.CPUSPEED >PUSHA push CPU speed HI >PUSHBI 2 >LDYAI MSG.CPU.SPEEDOK >SYSCALL printf rts *-------------------------------------- CPU.Init.Z80 >PUSHBI 0 >LDYAI MSG.Z80 >SYSCALL printf jsr DetectZ80 bcs .9 sta A2osX.Z80SLOT >PUSHA tax lda #A2osX.S.Z80 sta A2osX.S,x >PUSHBI 1 >LDYAI MSG.Z80.OK >SYSCALL printf rts .9 >LDYAI MSG.Z80.KO >SYSCALL puts rts *-------------------------------------- * Out: * A = $60, 6502 * A = $61, 65C02 * A = $62, 65R02 * A = $63, 65816 *-------------------------------------- Detect6502 ldy #0 Test 6502 BCD bug sed lda #$99 clc adc #$01 cld bmi .9 BUG!, we have 6502 ldy #3 test 65C816 TYX Instruction ldx #0 .OP 65816 tyx TYX: if 65C816, x becomes non-zero .OP 65C02 bne .9 worked! 65C816 dey y=2 -> R65C02 ldx $EA save zp $EA stz $EA store 0 in $EA * .OP 65R02 .HS F7EA For compatibility with A2osX.ASM * smb 7,$EA if not Rockwell, assemble as nop nop * .OP 65C02 asl $EA cs if Rockwell stx $EA restore zp $EA bcs .9 dey y=1 -> 65C02 .9 tya ora #$60 rts *-------------------------------------- * Out: * A = Z80 Slot *-------------------------------------- DetectZ80 ldx #Z80Code.Size .1 lda Z80Code.Start-1,x sta Z80CODE-1,x 00000H for Z80 dex bne .1 stz ZPPtr1 lda #$C1 sta ZPPtr1+1 .2 sta (ZPPtr1) lda $100D bmi .8 inc ZPPtr1+1 lda ZPPtr1+1 cmp #$C8 beq .9 CS clc adc #$20 sta $100A bra .2 .8 lda ZPPtr1+1 and #$0F clc .9 rts *-------------------------------------- * Setup AuxLC $FFFE->Kernel IRQ Handler * if irq not handled, jmp (S.IrqMgrOldFFFE) *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ >SYSCALL puts php sei >LDYA $FFFE >STYA K.IrqHAuxLC.JMP+1 >LDYAI K.IrqHAuxLC >STYA $FFFE >LDYAI GP.IrqH >STYA K.MLI.PARAMS+2 >MLICALL MLIALLOCIRQ bcs .90 lda K.MLI.PARAMS+1 sta IRQ.INTNUM plp jsr IrqMgrInit.TClock bcs .1 lda #"C" sta IRQ.Mode >LDYAI K.IrqH.TCLOCK >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.CLOCK >SYSCALL puts clc rts .1 jsr IrqMgrInit.Mouse bcs .8 lda #"V" sta IRQ.Mode >LDYAI K.IrqH.VBL >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.VBL >SYSCALL puts clc rts .8 jsr IrqMgrInit.HZ2Tick lda #"P" sta IRQ.Mode >LDYAI MSG.IRQ.POLL >SYSCALL puts clc rts .90 plp .9 sec rts *-------------------------------------- IrqMgrInit.TClock stz ZPPtr1 Try finding a TClock Card... lda #$C1 sta ZPPtr1+1 .1 ldy #TClock.SIG.Cnt-1 .2 lda (ZPPtr1),y cmp TClock.SIG,y bne .3 dey bpl .2 bra .4 .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 bne .1 sec rts .4 lda ZPPtr1+1 get $Cn and #$f tax get $0n asl asl asl asl tay get $n0 sty IRQ.VBL.n0 lda #A2osX.S.CLK sta A2osX.S,x php sei lda #$40+$20 Enable interrupt + 64Hz sta $c080,y lda #$40 sta CLRPAGE2 sta $478,x sta $7f8,x lda #64 sta CORE.TickPerSec sta CORE.TickSec lda #11 sta CORE.TickPer10t sta CORE.Tick10t dec CORE.IRQMode plp clc rts *-------------------------------------- IrqMgrInit.Mouse stz ZPPtr1 Try finding a Mouse Card... lda #$C1 sta ZPPtr1+1 .1 ldx #Mouse.SIG-Mouse.OFS-1 .2 ldy Mouse.OFS,x lda (ZPPtr1),y cmp Mouse.SIG,x bne .3 dex bpl .2 bra .4 .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 bne .1 sec rts .4 lda ZPPtr1+1 sta .11+2 sta K.IrqH.VBL.MSM+2 sta K.IrqH.VBL.MRM+2 and #$0f sta IRQ.VBL.0n asl asl asl asl sta IRQ.VBL.n0 php sei bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly ldy #INITMOUSE jsr .10 ldy #SETMOUSE lda #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE jsr .10 bit RRAMWRAMBNK1 Back To LC Ram bit RRAMWRAMBNK1 ldy #SERVEMOUSE lda (ZPPtr1),y sta K.IrqH.VBL.MSM+1 ldy #READMOUSE lda (ZPPtr1),y sta K.IrqH.VBL.MRM+1 jsr IrqMgrInit.HZ2Tick dec CORE.IRQMode plp clc rts .9 plp sec rts .10 pha lda (ZPPtr1),y sta .11+1 pla ldx .11+2 Cn ldy IRQ.VBL.n0 .11 jmp $ffff SELF MODIFIED *-------------------------------------- IrqMgrInit.HZ2Tick ldx #50 lda A2osX.HZ sta CORE.TickPer10t sta CORE.Tick10t cmp #5 beq .1 ldx #60 .1 stx CORE.TickPerSec stx CORE.TickSec rts *-------------------------------------- DevMgrInit >LDYAI MSG.DEV >SYSCALL puts lda DEVCNT sta DevMgrInit.DEVCNT .1 ldx DevMgrInit.DEVCNT lda DEVLST,x and #$F0 asl php Save Drive 1/2 in C ror DSSS0000 lsr lsr lsr tax 000DSSS0 lsr 0000DSSS and #$7 sta FD.BDEV+S.FD.DEV.BUSID lda DEVPTRS,x sta FD.BDEV+S.FD.DEV.BUSPTR lda DEVPTRS+1,x sta FD.BDEV+S.FD.DEV.BUSPTR+1 sta ZPPtr1+1 stz ZPPtr1 plp lda #0 adc #1 Make DevID 1 or 2 sta FD.BDEV+S.FD.DEV.DEVID lda ZPPtr1+1 cmp #$D0 Disk II Driver is $D000 bne .2 jsr DevMgrInit.DII lda #A2osX.S.DII bra .7 Go mark slot as USED .2 cmp #$FF /RAM is always $FF00 bne .3 jsr DevMgrInit.RAM bra .8 .3 and #$F0 cmp #$C0 beq .4 jsr DevMgrInit.USR Outside ROM space, User loaded BLK dev bra .8 .4 ldx #SmartPort.SIG-SmartPort.OFS-1 .5 ldy SmartPort.OFS,x Check if there is a smartport firmware lda (ZPPtr1),y cmp SmartPort.SIG,x bne .8 not a Disk Controller... dex bpl .5 ldy #7 lda (ZPPtr1),y beq .51 $Cn07=00 : SmartPort bne .6 ldx #AWSmartPort.SIG-AWSmartPort.OFS-1 .50 ldy AWSmartPort.OFS,x Check if there is a AWsmartport firmware lda (ZPPtr1),y cmp AWSmartPort.SIG,x bne .6 not on AW dex bpl .50 .51 lda ZPPtr1+1 get $Cn and #$f get $0n cmp FD.BDEV+S.FD.DEV.BUSID same as SSS ? beq .52 inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices.... inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3) .52 jsr DevMgrInit.SP lda #A2osX.S.SP bra .7 .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK .7 ldx FD.BDEV+S.FD.DEV.BUSID sta A2osX.S,x .8 dec DevMgrInit.DEVCNT bmi .80 jmp .1 .80 clc rts DevMgrInit.DEVCNT .BS 1 *-------------------------------------- DevMgrInit.DII >LDYAI DRV.DiskII jmp DevMgrInit.AddBDev *-------------------------------------- DevMgrInit.RAM >LDYAI DRV.RamDrive jmp DevMgrInit.AddBDev *-------------------------------------- DevMgrInit.USR >LDYAI DRV.BlkDevice jmp DevMgrInit.AddBDev *-------------------------------------- DevMgrInit.BLK ldy #$ff lda (ZPPtr1),y sta FD.BDEV+S.FD.DEV.BUSPTR >LDYAI DRV.BlkDevice jmp DevMgrInit.AddBDev *-------------------------------------- DevMgrInit.SP ldy #$ff lda (ZPPtr1),y clc adc #3 Compute smartport entry point sta .1+1 sta FD.BDEV+S.FD.DEV.BUSPTR lda ZPPtr1+1 sta .1+2 lda FD.BDEV+S.FD.DEV.DEVID sta SP.IOCTL.STATUS+S.IOCTL.UNITNUM .1 jsr $ffff Self Modified .DA #0 Status .DA SP.IOCTL.STATUS bcs .9 ldx SP.IOCTL.STATUS.DIB+S.DIB.S >LDYAI DRV.SmartPort jsr DevMgrInit.AddBDev .9 rts *-------------------------------------- DevMgrInit.AddBDev >STYA FD.BDEV+S.FD.DEV.DRVPTR lda FD.BDEV+S.FD.DEV.BUSID ora #$30 sta FD.BDEV.NAME+1 SnDy lda FD.BDEV+S.FD.DEV.DEVID ora #$30 sta FD.BDEV.NAME+3 SxDn >PUSHWI FD.BDEV.NAME >PUSHBI 2 >LDYAI MSG.BLKDEV >SYSCALL printf >PUSHWI FD.BDEV.NAME >LDYAI FD.BDEV >SYSCALL MKDev rts *-------------------------------------- EvtMgrInit >LDYAI MSG.EVT >SYSCALL puts stz CORE.EvtCount lda #$A5 sta A2osX.TIMER16 lda #$9B sta A2osX.TIMER16+1 lda /Evt.Table sta pEvent+1 clc rts *-------------------------------------- TskMgrInit >LDYAI MSG.TSK >SYSCALL puts >LDYAI K.ENV.SIZE get a buffer for ENV jsr K.GetMem bcs .9 >STYA ZPPtr1 ldy #S.PS.ENVPAGECNT lda /K.ENV.SIZE sta (pPs),y txa * ldy #S.PS.hENV iny sta (pPs),y lda #0 sta (ZPPtr1) make sure blank!! >LDYAI K.Buf256 >STYA K.MLI.PARAMS+1 >MLICALL MLIGETPREFIX bcs .9 ldy K.Buf256 iny lda #0 jsr K.GetMem >STYA ZPPtr1 txa ldy #S.PS.hPREFIX sta (pPs),y ldy K.Buf256 lda #0 sta (ZPPtr1),y .4 lda K.Buf256,y dey sta (ZPPtr1),y bne .4 >PUSHW ZPPtr1 push ENV value = PREFIX >LDYAI I.ENV.ROOT push ENV name = ROOT >SYSCALL SetEnv bcs .9 >LDYAI I.ENV.PATH >SYSCALL PutEnv bcs .9 >LDYAI I.ENV.LIB >SYSCALL PutEnv bcs .9 >LDYAI I.ENV.DRV >SYSCALL PutEnv .9 rts *-------------------------------------- PwdMgrInit >LDYAI MSG.PWD >SYSCALL puts >PUSHWI 0 Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY >LDYAI ETCPASSWD >SYSCALL LoadStkObj bcs .1 stx PWD.hDB >STYA PWD.DBSize .9 rts *-------------------------------------- .1 >LDYAI PwdMgr.ROOT.Size jsr K.Getmem >STYA pSession stx S.Table.hPW ldy #PwdMgr.ROOT.Size-1 .2 lda PwdMgr.ROOT,y sta (pSession),y dey bpl .2 ldy #S.PS.hStdIn lda (pPS),y sta S.Table.hFile rts *-------------------------------------- PwdMgr.ROOT .DA #P.SYSADMIN .DA #0 UID .DA #0 GID .BS 17 PASSWD .AZ "ROOT" NAME .AZ "Root User" GECOS .AZ "${ROOT}ROOT/" DIR .AZ "${ROOT}BIN/SH" SHELL PwdMgr.ROOT.Size .EQ *-PwdMgr.ROOT *-------------------------------------- * Modified CHARGET/CHARGOT for ROM CALL * CHRGET .EQ $B1 - C8 *-------------------------------------- Kernel.ZP .PH $B1 CHARGET inc TXTPTR bne CHARGOT inc TXTPTR+1 CHARGOT lda $ffff beq IsDigit.9 IsDigit cmp #'0' bcc IsDigit.9 cmp #'9'+1 rts IsDigit.9 sec rts .EP Kernel.ZP.S .EQ *-Kernel.ZP *-------------------------------------- Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack .HS 3EFF LD A,0FFH Set Flag .HS 320D00 LD (FLAG),A .HS 3200E1 LD (0E100H),A Back to 6502 .HS 18F3 JR START Loop .HS 00 FLAG: .DB 0 Z80Code.Size .EQ *-Z80Code.Start *-------------------------------------- Mouse.OFS .HS 05070B0CFB Mouse.SIG .HS 38180120D6 *-------------------------------------- TClock.SIG .HS 0878282c58ff700538b00118b8087848 .HS 8a489848adffcf201ac86868ba8df807 TClock.SIG.Cnt .EQ *-TClock.SIG *-------------------------------------- MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n" MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" MSG.KCREAD .AZ "Reading Kernel Config File..." MSG.KCREAD.OK .AZ "OK\n" MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n" MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" *-------------------------------------- SYSSCREEN.TOP .AZ "A2osX 0.92 Console" MSG.Init3 .AZ "A2osX[Stage3]:Init *** Press Ctrl-R for ROOT Mode ***" MSG.DEV .AZ "Device Manager..." MSG.BLKDEV .AZ " Adding : /DEV/%s\r\n" MSG.IRQ .AZ "Interrupt Manager..." MSG.IRQ.VBL .AZ " Mouse VBL IRQ Activated." MSG.IRQ.CLOCK .AZ " Clock Card IRQ Activated." MSG.IRQ.POLL .AZ " Polling Mode." MSG.EVT .AZ "Event Manager..." MSG.TSK .AZ "Task Manager..." MSG.PWD .AZ "Password Manager..." MSG.Prefix .AZ "Root:%s\r\n" MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..." MSG.PWDINIT .AZ "Loading ETC/PASSWD file..." MSG.ETCINIT .AZ "Executing %s..." MSG.StartupErr .AZ "Failed : [$%h]\r\n" MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n" *-------------------------------------- MSG.CPU .AZ "Checking CPU..." MSG.CPUTYPE .DA MSG.6502 .DA MSG.65C02 .DA MSG.65R02 .DA MSG.65816 MSG.6502 .AZ "6502." MSG.65C02 .AZ "65C02." MSG.65R02 .AZ "65R02." MSG.65816 .AZ "65816." MSG.CPU.SPEED .AZ "Checking CPU Speed..." MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\r\n" MSG.Z80 .AZ "Checking Z80 CPU..." MSG.Z80.OK .AZ "Detected In Slot %d.\r\n" MSG.Z80.KO .AZ "Not Detected." *-------------------------------------- DEV.CONSOLE .AZ "/DEV/CONSOLE" I.ENV.ROOT .AZ "ROOT" I.ENV.PATH .AZ "PATH=${ROOT}SBIN/:${ROOT}BIN/" I.ENV.LIB .AZ "LIB=${ROOT}LIB/" I.ENV.DRV .AZ "DRV=${ROOT}DRV/" CTRLR.SHELL .AZ "${ROOT}BIN/SH" ETCPASSWD .AZ "${ROOT}ETC/PASSWD" ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT" *-------------------------------------- MLIOPEN00 .DA #3 .DA A2OSXCONF .DA $B000 .BS 1 A2OSXCONF >PSTR "A2osX.KCONFIG" *-------------------------------------- MLIREAD00 .DA #4 .BS 1 .DA A2osX.KCONFIG .DA 16 .BS 2 *-------------------------------------- MLICLOSE00 .DA #1 .BS 1 *-------------------------------------- FD.NULL .DA #S.FD.T.CDEV .DA #0 HANDLER .DA #0 BUSID .DA #0 DEVID .DA 0 BUSPTR .DA DRV.NULL .DA 0 DCBPTR .DA 0 BUFPTR FD.NULL.NAME .AZ "NULL" NAME *-------------------------------------- FD.TTY .DA #S.FD.T.CDEV .DA #0 HANDLER .DA #0 BUSID .DA #1 DEVID .DA 0 BUSPTR .DA DRV.TERM .BS 2 DCBPTR .BS 2 BUFPTR *-------------------------------------- FD.CONSOLE.NAME .AZ "CONSOLE" FD.TTY.NAME .AZ "TTY0" *-------------------------------------- FD.BDEV .DA #S.FD.T.BDEV .DA #0 HANDLER .DA #0 BUSID .DA #0 DEVID .BS 2 BUSPTR .BS 2 DRVPTR .DA 0 DCBPTR .DA 0 BUFPTR FD.BDEV.NAME .AZ "S1D1" *-------------------------------------- SmartPort.OFS .HS 010305 SmartPort.SIG .HS 200003 AWSmartPort.OFS .HS 12131415161718191A1B AWSmartPort.SIG .HS A9008DF2C0A9708DF3C0 *-------------------------------------- SP.IOCTL.STATUS .DA #3 .BS 1 UNITNUM .DA SP.IOCTL.STATUS.DIB .DA #S.IOCTL.STATCODE.GETDIB SP.IOCTL.STATUS.DIB .BS S.DIB *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.INIT LOAD USR/SRC/SYS/KERNEL.S ASM