diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index 6352d589..72e2a2d6 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -7,11 +7,6 @@ AUTO 8 *-------------------------------------- * ****** START OF MLI QUIT CODE ****** * Load Address :$1000-$12FF -*-------------------------------------- -MLIOPEN00.PATH .EQ $200 -MLIOPEN00.BUFF .EQ $0C00 1k Buffer for MLI open -MLIREAD00.ADDR .EQ $2000 for loading KERNEL -MLIREAD01.ADDR .EQ A2osX.HZ for loading CONFIG *-------------------------------------- .PH $1000 *-------------------------------------- @@ -62,34 +57,15 @@ A2osX.QC.Start1 sei >LDAXI A2osX.QC.Prefix jsr A2osX.QC.PrintAX - >DEBUGOA + >DEBUG bra .3 .4 >LDAXI MSG.SETPREFIXOK jsr A2osX.QC.PrintAX - >LDAXI MSG.KLOADING - jsr A2osX.QC.PrintAX - jsr A2osX.QC.KLoad - bcs .9 - - >LDAXI MSG.CLOADING - jsr A2osX.QC.PrintAX - - jsr A2osX.QC.CLoad - bcc .8 - - >LDAXI MSG.CLOADING.KO - jsr A2osX.QC.PrintAX - - ldx #15 - -.5 lda A2OSXCONF.DEFAULT,x - sta A2osX.HZ,x - dex - bpl .5 + bcs * * >LDYAI GO.Reset * >STYA POWERUP @@ -101,52 +77,24 @@ A2osX.QC.Start1 sei >DEBUGOA jmp $2000 - -.9 >LDAXI MSG.KLOADING.KO +*-------------------------------------- +A2osX.QC.KLoad >LDAXI MSG.KLOAD jsr A2osX.QC.PrintAX - bra * -*-------------------------------------- -A2osX.QC.KLoad >LDYAI SYSKERNEL - jsr A2osX.QC.FOPENYA - bcs .9 - - >LDYAI MLIREAD00K - jsr A2osX.QC.FREADYA - -.9 rts -*-------------------------------------- -A2osX.QC.CLoad >LDYAI A2OSXCONF - jsr A2osX.QC.FOPENYA - bcs .9 - - >LDYAI MLIREAD00C - jsr A2osX.QC.FREADYA - -.9 rts -*-------------------------------------- -A2osX.QC.FOPENYA - >STYA TmpPtr1 - - ldx A2osX.QC.Prefix -.1 lda A2osX.QC.Prefix,x - sta MLIOPEN00.PATH,x - dex - bne .1 ldx A2osX.QC.Prefix + ldy #0 -.2 iny - lda (TmpPtr1),y - sta MLIOPEN00.PATH+1,x - inx - tya - cmp (TmpPtr1) +.2 inx + iny + lda SYSKERNEL,y + sta A2osX.QC.Prefix,x + cpy SYSKERNEL bne .2 - stx MLIOPEN00.PATH + stx A2osX.QC.Prefix - >LDAXI MLIOPEN00.PATH + >LDAXI A2osX.QC.Prefix jsr A2osX.QC.PrintAX jsr MLI @@ -155,16 +103,12 @@ A2osX.QC.FOPENYA bcs .9 lda MLIOPEN00+5 - sta MLIREAD00K+1 - sta MLIREAD00C+1 + sta MLIREAD00+1 sta MLICLOSE00+1 -.9 rts -*-------------------------------------- -A2osX.QC.FREADYA - >STYA .1 + jsr MLI .DA #MLIREAD -.1 .DA $ffff + .DA MLIREAD00 php pha @@ -175,7 +119,12 @@ A2osX.QC.FREADYA pla plp - rts + bcc .9 + + >LDAXI MSG.KLOAD.KO + jsr A2osX.QC.PrintAX + +.9 rts *-------------------------------------- A2osX.QC.PrintAX >STAX TmpPtr1 @@ -198,41 +147,26 @@ MLISETPREFIX00 .DA #1 .DA A2osX.QC.Prefix *-------------------------------------- MLIOPEN00 .DA #3 - .DA MLIOPEN00.PATH - .DA MLIOPEN00.BUFF + .DA A2osX.QC.Prefix + .DA $C00 .BS 1 *-------------------------------------- -MLIREAD00K .DA #4 +MLIREAD00 .DA #4 .BS 1 - .DA MLIREAD00.ADDR + .DA $2000 .DA $8000 .BS 2 *-------------------------------------- -MLIREAD00C .DA #4 - .BS 1 - .DA MLIREAD01.ADDR - .DA 16 - .BS 2 -*-------------------------------------- MLICLOSE00 .DA #1 .BS 1 *-------------------------------------- SYSKERNEL >PSTR "SYS/KERNEL" -A2OSXCONF >PSTR "A2osX.KCONFIG" -*-------------------------------------- -A2OSXCONF.DEFAULT - .DA #6 60hz - .BS 7 - .DA #0 ChRoot - .BS 7 All Slots marked as "Free" *-------------------------------------- MSG.INIT1 >PSTR "A2osX[Stage1]:Init" MSG.SETPREFIXOK >PSTR "Set Prefix OK" MSG.SETPREFIXKO >PSTR "Insert Vol:" -MSG.KLOADING >PSTR "Loading Kernel..." -MSG.KLOADING.KO >PSTR "Error While Loading Kernel." -MSG.CLOADING >PSTR "Reading Kernel Config File..." -MSG.CLOADING.KO >PSTR "Error While Reading Kernel Config File, Using Default." +MSG.KLOAD >PSTR "Loading Kernel..." +MSG.KLOAD.KO >PSTR "Error While Loading Kernel." MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete." *-------------------------------------- .BS $1300-* diff --git a/Floppies/A2OSX.BOOT.po b/Floppies/A2OSX.BOOT.po index a572fc9b..30d621c0 100644 Binary files a/Floppies/A2OSX.BOOT.po and b/Floppies/A2OSX.BOOT.po differ diff --git a/Floppies/A2OSX.BUILD.po b/Floppies/A2OSX.BUILD.po index 81b52829..c2b5ae22 100644 Binary files a/Floppies/A2OSX.BUILD.po and b/Floppies/A2OSX.BUILD.po differ diff --git a/Floppies/A2OSX.SRC.po b/Floppies/A2OSX.SRC.po index c2953b1b..af6eaeb9 100644 Binary files a/Floppies/A2OSX.SRC.po and b/Floppies/A2OSX.SRC.po differ diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 4ec0549d..74ad949e 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -246,9 +246,9 @@ GO.A2osX php sei - sta A2osX.SaveA - stx A2osX.SaveX - sty A2osX.SaveY + sta GO.EXIT.SaveA+1 + stx GO.EXIT.SaveX+1 + sty GO.EXIT.SaveY+1 pla Restore P in A for later @@ -288,16 +288,12 @@ GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3 *-------------------------------------- GO.EXIT sty pStack pha push P on stack - ldy A2osX.SaveY - ldx A2osX.SaveX - lda A2osX.SaveA +GO.EXIT.SaveY ldy #$ff +GO.EXIT.SaveX ldx #$ff +GO.EXIT.SaveA lda #$ff plp GO.EXIT.JMP jmp $FFFF Self Modified *-------------------------------------- -A2osX.SaveA .BS 1 -A2osX.SaveX .BS 1 -A2osX.SaveY .BS 1 -*-------------------------------------- * Called for ProDOS IRQ Manager (LCBNK1) * A,X,Y, $FA->$FF Already Saved * Main RAM,ZP/LC selected @@ -333,6 +329,13 @@ IrqHandler cld .3 rts *-------------------------------------- BrkHandler bra * +*-------------------------------------- + .BS A2osX.HZ-* fill to $BEF0 +*-------------------------------------- + .DA #6 60hz + .BS 7 + .DA #0 ChRoot Disabled + .BS 7 All Slots marked as "Free" *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.GP diff --git a/SYS/KERNEL.S.INIT2.txt b/SYS/KERNEL.S.INIT2.txt index 94a8b379..a18a4c9d 100644 --- a/SYS/KERNEL.S.INIT2.txt +++ b/SYS/KERNEL.S.INIT2.txt @@ -19,7 +19,7 @@ Kernel.Init2 sei sta CLRALTZP - >LDAXI MSG.D000BNK2 + >LDAXI MSG.D2 jsr PrintFAX sta SETALTZP @@ -36,7 +36,7 @@ Kernel.Init2 sei sta CLRALTZP - >LDAXI MSG.D000BNK1 + >LDAXI MSG.D1 jsr PrintFAX sta SETALTZP @@ -53,7 +53,7 @@ Kernel.Init2 sei sta CLRALTZP - >LDAXI MSG.E000 + >LDAXI MSG.E0 jsr PrintFAX sta SETALTZP @@ -74,6 +74,8 @@ Kernel.Init2 sei sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F cli + jsr KConfigLoad + lda A2osX.HZ pha push HZ >LDAXI MSG.HZ @@ -101,20 +103,12 @@ Kernel.Move ldy #0 bne .1 .9 rts *-------------------------------------- -MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - Global Page...\n" -MSG.D000BNK1 >CSTR " - $D000 Bank1...\n" -MSG.D000BNK2 >CSTR " - $D000 Bank2...\n" -MSG.E000 >CSTR " - $E000...\n" -MSG.HZ >CSTR "Kernel SYS Timer Set For %d0 hz Machine.\n" -MSG.Init2.OK >CSTR "A2osX[Stage2]:Complete.\n" -*-------------------------------------- CPU.Init >LDAXI MSG.CPU jsr PrintFAX jsr Detect6502 A = CPU type sta A2osX.CPUTYPE - lda MSG.CPUTYPEH,y - tax + ldx MSG.CPUTYPEH,y lda MSG.CPUTYPEL,y jsr PrintFAX @@ -208,8 +202,8 @@ CPU.Init.Z80 >LDAXI MSG.Z80 * Out: * A = $60, 6502 * A = $61, 65C02 -* A = $62, R65C02 -* A = $63, 65C816 +* A = $62, 65R02 +* A = $63, 65816 *-------------------------------------- Detect6502 ldy #0 Test 6502 BCD bug sed @@ -273,6 +267,38 @@ DetectZ80 ldx #Z80Code.Size 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 31FFFF START: LD SP,0FFFFH Init Stack .HS 3EFF LD A,0FFH Set Flag .HS 320D00 LD (FLAG),A @@ -281,6 +307,13 @@ Z80Code.Start .HS 31FFFF START: LD SP,0FFFFH Init Stack .HS 00 FLAG: .DB 0 Z80Code.Size .EQ *-Z80Code.Start *-------------------------------------- +MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 Global Page...\n" +MSG.D1 >CSTR " - $D000 Bank1...\n" +MSG.D2 >CSTR " - $D000 Bank2...\n" +MSG.E0 >CSTR " - $E000...\n" +MSG.HZ >CSTR "Kernel SYS Timer Set For %d0 hz Machine.\n" +MSG.Init2.OK >CSTR "A2osX[Stage2]:Complete.\n" +*-------------------------------------- MSG.CPU >CSTR "Checking CPU..." MSG.CPU.SPEED >CSTR "Detecting CPU Speed..." MSG.CPUTYPEL .DA #MSG.6502 @@ -299,6 +332,25 @@ MSG.CPU.SPEEDOK >CSTR "%d.%02d Mhz.\n" MSG.Z80 >CSTR "Detecting Z80 CPU..." MSG.Z80.OK >CSTR "Detected In Slot %d.\n" MSG.Z80.KO >CSTR "Not Detected.\n" +MSG.KCREAD >CSTR "Reading Kernel Config File..." +MSG.KCREAD.OK >CSTR "OK\n" +MSG.KCREAD.KO >CSTR "\nError While Reading Kernel Config File, Using Default.\n" +A2OSXCONF >PSTR "A2osX.KCONFIG" +*-------------------------------------- +MLIOPEN00 .DA #3 + .DA A2OSXCONF + .DA $1000 + .BS 1 +*-------------------------------------- +MLIREAD00 .DA #4 + .BS 1 + .DA A2osX.HZ + .DA 16 + .BS 2 +*-------------------------------------- +MLICLOSE00 .DA #1 + .BS 1 +*-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.INIT2 LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.INIT3.txt b/SYS/KERNEL.S.INIT3.txt index 0c536b1a..2b75b76d 100644 --- a/SYS/KERNEL.S.INIT3.txt +++ b/SYS/KERNEL.S.INIT3.txt @@ -322,9 +322,6 @@ DevMgrInit.BLK ldy #$ff inc DEV.HEADER+S.DEV.DEVID jsr DevMgrInit.AddDev rts - -DevMgrInit.BLK.JMP - jmp (DEV.HEADER+S.DEV.ROM.JMP) *-------------------------------------- DevMgrInit.SP ldy #$ff lda (ZPPtr1),y diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index ecbba2f6..fa117d2c 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -299,6 +299,15 @@ KERNEL.SYSCALL.FLAGS .DA 0 .DA 0 .DA 0 + + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 *-------------------------------------- .DA 0 $A0 .DA 0 @@ -308,6 +317,15 @@ KERNEL.SYSCALL.FLAGS .DA 0 .DA 0 .DA 0 + + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 *-------------------------------------- .DA 0 $B0 .DA 0 @@ -317,6 +335,15 @@ KERNEL.SYSCALL.FLAGS .DA 0 .DA 0 .DA 0 + + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 0c3f90dc..41804eb3 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -88,7 +88,7 @@ A2osX.GP.S .EQ A2osX.GP.E-A2osX.GP A2osX.D1.S .EQ A2osX.D1.E-A2osX.D1 A2osX.D2.S .EQ A2osX.D2.E-A2osX.D2 A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 - .DO A2osX.GP.S>$1E0 + .DO A2osX.GP.S>$200 * ERROR:GP too big .FIN .DO A2osX.D1.S>$1000