NEW PREFIX /A2OSX.BUILD AUTO 4,1 *-------------------------------------- ZPPtr1 .EQ ZPKERNEL ZPPtr2 .EQ ZPKERNEL+2 ZPPtr3 .EQ ZPKERNEL+4 ZPPtr4 .EQ ZPKERNEL+6 pDrv .EQ ZPKERNEL+8 pDev .EQ ZPKERNEL+10 *-------------------------------------- SYS.BASL0 .EQ $400 *-------------------------------------- Kernel.Init sei ldx #$FF txs sta SETALTZP stx A2osX.SaveSM stx A2osX.SaveSX sta CLRALTZP Make sure MAIN ZP is enabled for X.PRINT.F *-------------------------------------- Kernel.Init2 >LDAXI MSG.Init2 jsr PrintFAX >LDAXI MSG.MAIN jsr PrintFAX >LDYAI A2osX.MAIN >STYA ZPPtr1 >LDYAI CORE.Run >STYA ZPPtr2 >LDYAI A2osX.MAIN.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move >LDAXI MSG.AUX jsr PrintFAX >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 >LDAXI MSG.GP jsr PrintFAX >LDYAI A2osX.GP >STYA ZPPtr1 >LDYAI A2osX.SYSCALL >STYA ZPPtr2 >LDYAI A2osX.GP.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move sta CLRALTZP >LDAXI MSG.D2 jsr PrintFAX sta SETALTZP bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 >LDYAI A2osX.D2 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 >LDYAI A2osX.D2.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move sta CLRALTZP >LDAXI MSG.D1 jsr PrintFAX sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 >LDYAI A2osX.D1 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 >LDYAI A2osX.D1.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move sta CLRALTZP >LDAXI MSG.E0 jsr PrintFAX sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 >LDYAI A2osX.E0 >STYA ZPPtr1 >LDYAI $E000 >STYA ZPPtr2 >LDYAI A2osX.E0.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F cli jsr KConfigLoad lda A2osX.HZ pha push HZ >LDAXI MSG.HZ jsr PrintFAX jsr CPU.Init >LDAXI MSG.Init2.OK jsr PrintFAX *-------------------------------------- >DEBUGOA *-------------------------------------- Kernel.Init3 sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 ldx #Kernel.ZP.S-1 .1 lda Kernel.ZP,x sta CHARGET,x dex bpl .1 lda #$ff Make sure we are in Kernel Mode during setup sta IRQ.InKernel jsr MemMgrInit jsr PS0Init bcs * >LDYAI MSG.Init3 >SYSCALL PrintF.YA jsr DevMgrInit bcs * jsr IrqMgrInit bcs * jsr EvtMgrInit bcs * jsr FltMgrInit bcs * jsr TskMgrInit bcs * ldy #S.PS.hPREFIX lda (pPs),y >SYSCALL GetMemPtr.A >PUSHYA >LDYAI MSG.Prefix >SYSCALL PrintF.YA >PUSHWI STARTUP.CMDLINE >LDYAI MSG.Startup >SYSCALL PrintF.YA >LDYAI STARTUP.CMDLINE >SYSCALL ExpandStr.YA phx Save Expanded CMDLINE for discard >SYSCALL CreatePS.YA bcs .9 pla >SYSCALL FreeMem.A ...discard... >LDYAI MSG.Init3.OK >SYSCALL PrintF.YA >DEBUGOA jmp CORE.Run .9 >PUSHA >LDYAI MSG.StartupErr >SYSCALL PrintF.YA bra * No need to discard Expanded CMDLINE *-------------------------------------- * 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 *-------------------------------------- Kernel.Move 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 *-------------------------------------- CPU.Init >LDAXI MSG.CPU jsr PrintFAX jsr Detect6502 A = CPU type sta A2osX.CPUTYPE ldx MSG.CPUTYPEH,y lda MSG.CPUTYPEL,y jsr PrintFAX lda MACHID and #MACHID.T cmp #MACHID.T.IIc beq CPU.Init.Z80 >LDAXI MSG.CPU.SPEED jsr PrintFAX 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 pha push CPU speed LO lda A2osX.CPUSPEED pha push CPU speed HI >LDAXI MSG.CPU.SPEEDOK jsr PrintFAX CPU.Init.Z80 >LDAXI MSG.Z80 jsr PrintFAX jsr DetectZ80 bcs .9 sta A2osX.Z80SLOT pha Push Z80Slot tax lda #A2osX.S.Z80 sta A2osX.S,x >LDAXI MSG.Z80.OK jsr PrintFAX rts .9 >LDAXI MSG.Z80.KO jsr PrintFAX 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 $1000-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 *-------------------------------------- KConfigLoad >LDAXI MSG.KCREAD jsr PrintFAX 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 >LDAXI MSG.KCREAD.OK jsr PrintFAX rts .9 >LDAXI MSG.KCREAD.KO jsr PrintFAX rts *-------------------------------------- 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 *-------------------------------------- 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.XHiMem >STYA Mem.HiMem >STYA Mem.Free >LDYAI Mem.XLoMem >STYA Mem.LoMem stz Mem.LastSlot Reserve Slot #0 sta CLRWRITEAUX rts *-------------------------------------- PS0Init ldx #S.DEV*2 NUL,SYS .1 lda DevMgr.NUL-1,x sta Dev.Table-1,x dex bne .1 ldx #0 sta SET80STORE ldy #0 .2 lda DevMgr.SYS.TITLE,y beq .3 cmp #$40 bcc .10 cmp #$5F bcs .10 and #$3F .10 php sei sta SETPAGE2 sta SYS.BASL0,x sta CLRPAGE2 plp iny lda DevMgr.SYS.TITLE,y beq .5 cmp #$40 bcc .11 cmp #$5F bcs .11 and #$3F .11 sta SYS.BASL0,x iny inx bra .2 .3 lda #$20 .4 php sei sta SETPAGE2 sta SYS.BASL0,x sta CLRPAGE2 plp .5 lda #$20 sta SYS.BASL0,x inx cpx #40 bne .4 sta CLR80STORE >LDYAI CORE.S.PS0 Select Process 0 (Kernel) >STYA pPs >LDYAI K.STACKTOP >STYA pStack >LDYAI DEV.SYS >SYSCALL MkNod.YA Will open SYS bcs .9 ldy #S.PS.hStdIn sta (pPs),y sta CORE.S.PS0+S.PS.hStdIn iny #S.PS.hStdOut sta (pPs),y sta CORE.S.PS0+S.PS.hStdOut iny #S.PS.hStdErr sta (pPs),y sta CORE.S.PS0+S.PS.hStdErr clc .9 rts *-------------------------------------- DevMgr.SYS.TITLE .AZ "A2osX System Screen" *-------------------------------------- DevMgr.NUL cld jmp (DevMgr.NUL.Code,x) .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED .BS 6 .AZ "NUL" NAME .HS 00 NAME must Be 4 bytes long *-------------------------------------- DevMgr.SYS cld jmp (DevMgr.SYS.Code,x) .DA #S.DEV.S.WRITE+S.DEV.S.READ .BS 6 .AZ "SYS" NAME .HS 00 NAME must Be 4 bytes long *-------------------------------------- * Setup AuxLC $FFFE->Kernel IRQ Handler * if irq not handled, jmp (S.IrqMgrOldFFFE) *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ >SYSCALL PrintF.YA php sei >LDYA $FFFE >STYA IRQ.OldFFFE >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 SYS.BASL0+38 >LDYAI K.IrqH.TCLOCK >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.CLOCK >SYSCALL PrintF.YA clc rts .1 jsr IrqMgrInit.Mouse bcs .8 lda #"V" sta SYS.BASL0+38 >LDYAI K.IrqH.VBL >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.VBL >SYSCALL PrintF.YA clc rts .8 jsr IrqMgrInit.HZ2Tick lda #"P" sta SYS.BASL0+38 >LDYAI MSG.IRQ.POLL >SYSCALL PrintF.YA clc rts .90 plp .9 sec rts *-------------------------------------- IrqMgrInit.TClock stz ZPPtr1 Try finding a Mouse Card... lda #$C1 sta ZPPtr1+1 .1 ldy #31 .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 php sei lda #$40 Enable interrupt sta $c080,y 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 TClock.SIG .HS 0878282c58ff700538b00118b8087848 .HS 8a489848adffcf201ac86868ba8df807 *-------------------------------------- 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 IRQ.VBL.MSM+2 sta IRQ.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 IRQ.VBL.MSM+1 ldy #READMOUSE lda (ZPPtr1),y sta IRQ.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 Mouse.OFS .HS 05070B0CFB Mouse.SIG .HS 38180120D6 *-------------------------------------- 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 PrintF.YA 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 DEV.HEADER+S.DEV.BUSID lda DEVPTRS,x sta DEV.HEADER+S.DEV.ROM.JMP lda DEVPTRS+1,x sta DEV.HEADER+S.DEV.ROM.JMP+1 sta ZPPtr1+1 stz ZPPtr1 plp lda #0 adc #1 Make DevID 1 or 2 sta DEV.HEADER+S.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 bne .6 $Cn07=00 : SmartPort lda ZPPtr1 get $Cn and #$f get $0n cmp DEV.HEADER+S.DEV.BUSID same as SSS ? beq .51 inc DEV.HEADER+S.DEV.DEVID Remapped SP devices.... inc DEV.HEADER+S.DEV.DEVID Add 2 to DEVID (2 & 3) .51 jsr DevMgrInit.SP lda #A2osX.S.SP bra .7 .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK .7 ldx DEV.HEADER+S.DEV.BUSID sta A2osX.S,x .8 dec DevMgrInit.DEVCNT bmi .80 jmp .1 .80 clc rts DevMgrInit.DEVCNT .BS 1 *-------------------------------------- DevMgrInit.DII >LDYAI A2osX.DIIDrv jmp DevMgrInit.AddDev *-------------------------------------- DevMgrInit.RAM >LDYAI A2osX.RamDrv jmp DevMgrInit.AddDev *-------------------------------------- DevMgrInit.USR >LDYAI A2osX.BlkDrv jmp DevMgrInit.AddDev *-------------------------------------- DevMgrInit.BLK ldy #$ff lda (ZPPtr1),y sta DEV.HEADER+S.DEV.ROM.JMP >LDYAI A2osX.BlkDrv jmp DevMgrInit.AddDev *-------------------------------------- DevMgrInit.SP ldy #$ff lda (ZPPtr1),y clc adc #3 Compute smartport entry point sta .1+1 sta DEV.HEADER+S.DEV.ROM.JMP lda ZPPtr1+1 sta .1+2 lda DEV.HEADER+S.DEV.DEVID sta SP.DEV.STATUS.DEVID .1 jsr $ffff Self Modified .DA #0 Status .DA SP.DEV.STATUS bcs .9 lda SP.DEV.STATUS.DATA+S.DSTAT.S sta DEV.HEADER+S.DEV.S >LDYAI A2osX.PrtDrv jsr DevMgrInit.AddDev .9 rts *-------------------------------------- DevMgrInit.AddDev >STYA DEV.HEADER+S.DEV.DRV.JMP lda DevMgr.Count cmp #K.DEV.MAX beq .9 inc DevMgr.Count >SYSCALL GetDevByID.A >STYA ZPPtr2 lda DEV.HEADER+S.DEV.BUSID ora #$30 sta DEV.HEADER+S.DEV.NAME+1 SnDy lda DEV.HEADER+S.DEV.DEVID ora #$30 sta DEV.HEADER+S.DEV.NAME+3 SxDn ldy #S.DEV-1 .1 lda DEV.HEADER,y sta (ZPPtr2),y dey bpl .1 clc rts .9 lda #K.E.OOH sec rts *-------------------------------------- DEV.HEADER cld jmp ($ffff,x) .DA #S.DEV.S.BLOCK S .BS 1 F .BS 1 BUS.ID .BS 1 DEV.ID .BS 2 ROM.JMP .BS 1 .AZ "S1D1" 5 bytes *-------------------------------------- SmartPort.OFS .HS 010305 SmartPort.SIG .HS 200003 *-------------------------------------- SP.DEV.STATUS .DA #3 SP.DEV.STATUS.DEVID .BS 1 .DA SP.DEV.STATUS.DATA .DA #3 return DIB SP.DEV.STATUS.DATA .BS S.DSTAT *-------------------------------------- EvtMgrInit >LDYAI MSG.EVT >SYSCALL PrintF.YA lda #$A5 sta A2osX.TIMER16 lda #$9B sta A2osX.TIMER16+1 lda /Evt.Table sta pEvent+1 clc rts *-------------------------------------- FltMgrInit >LDYAI MSG.FLT >SYSCALL PrintF.YA stz Flt.Table clc rts *-------------------------------------- TskMgrInit >LDYAI MSG.TSK >SYSCALL PrintF.YA jsr CORE.PSSelect0 >LDYAI K.ENV.SIZE get a buffer for ENV >SYSCALL GetMem0.YA make sure blank!! bcs .9 txa ldy #S.PS.hENV sta (pPs),y >LDYAI K.Buf256 >STYA K.MLI.PARAMS+1 >MLICALL MLIGETPREFIX bcs .9 ldy K.Buf256 iny lda #0 jsr K.GetMem.YA >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 >PUSHWI I.ENV.A2osX push ENV name = A2OSX >SYSCALL SetEnv bcs .9 >LDYAI I.ENV.PATH >SYSCALL PutEnv.YA bcs .9 >LDYAI I.ENV.LIB >SYSCALL PutEnv.YA bcs .9 >LDYAI I.ENV.DRV >SYSCALL PutEnv.YA .9 rts *-------------------------------------- MSG.Init2 .AZ "A2osX[Stage2]:Init\nInstalling KERNEL...\n" MSG.MAIN .AZ " - $1100 Main...\n" MSG.AUX .AZ " - $0C00 Aux...\n" MSG.GP .AZ " - $BD00 Global Page...\n" MSG.D1 .AZ " - $D000 Bank1...\n" MSG.D2 .AZ " - $D000 Bank2...\n" MSG.E0 .AZ " - $E000...\n" MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" *-------------------------------------- MSG.Init3 .AZ "A2osX[Stage3]:Init\r\n" MSG.DEV .AZ "-Device Manager...\r\n" MSG.IRQ .AZ "-Interrupt Manager..." MSG.IRQ.VBL .AZ "Mouse VBL IRQ Activated.\r\n" MSG.IRQ.CLOCK .AZ "Clock Card IRQ Activated.\r\n" MSG.IRQ.POLL .AZ "Polling Mode.\r\n" MSG.EVT .AZ "-Event Manager...\r\n" MSG.FLT .AZ "-Path Filter...\r\n" MSG.TSK .AZ "-Task Manager...\r\n" MSG.Prefix .AZ "Prefix:%s\r\n" MSG.Startup .AZ "Executing Kernel Startup Script...\r\nCmd:%s\r\n" MSG.StartupErr .AZ "Failed : [$%h]\r\n" MSG.Init3.OK .AZ "A2osX[Stage3]:Complete.\r\n" *-------------------------------------- MSG.CPU .AZ "Checking CPU..." MSG.CPU.SPEED .AZ "Detecting CPU Speed..." MSG.CPUTYPEL .DA #MSG.6502 .DA #MSG.65C02 .DA #MSG.65R02 .DA #MSG.65816 MSG.CPUTYPEH .DA /MSG.6502 .DA /MSG.65C02 .DA /MSG.65R02 .DA /MSG.65816 MSG.6502 .AZ "6502.\n" MSG.65C02 .AZ "65C02.\n" MSG.65R02 .AZ "65R02.\n" MSG.65816 .AZ "65816.\n" MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\n" MSG.Z80 .AZ "Detecting Z80 CPU..." MSG.Z80.OK .AZ "Detected In Slot %d.\n" MSG.Z80.KO .AZ "Not Detected.\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" *-------------------------------------- DEV.SYS .AZ "SYS" I.ENV.A2osX .AZ "A2OSX" I.ENV.PATH .AZ "PATH=${A2OSX}SBIN/;${A2OSX}BIN/" I.ENV.LIB .AZ "LIB=${A2OSX}LIB/" I.ENV.DRV .AZ "DRV=${A2OSX}DRV/" STARTUP.CMDLINE .AZ "${A2OSX}SBIN/SHELL ${A2OSX}A2osX.STARTUP" *-------------------------------------- MLIOPEN00 .DA #3 .DA A2OSXCONF .DA $B000 .BS 1 A2OSXCONF >PSTR "A2osX.KCONFIG" *-------------------------------------- MLIREAD00 .DA #4 .BS 1 .DA A2osX.HZ .DA 16 .BS 2 *-------------------------------------- MLICLOSE00 .DA #1 .BS 1 *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.INIT LOAD /A2OSX.SRC/SYS/KERNEL.S ASM