diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index e487101f..5c6f7043 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 95637c81..e5f3f240 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -41,31 +41,31 @@ Kernel.Init2 sei lda /A2osX.AUX.S eor #$ff pha - + ldy #0 - + sta SETWRITEAUX - + .2 inx bne .3 - + pla inc beq .4 - + pha - + .3 lda (ZPPtr1),y sta (ZPPtr2),y iny bne .2 - + inc ZPPtr1+1 inc ZPPtr2+1 bra .2 - -.4 sta CLRWRITEAUX - + +.4 sta CLRWRITEAUX + >LDYA PAKME.GP >STYA ZPInBufPtr >LDYAI A2osX.SYSCALL @@ -79,7 +79,7 @@ Kernel.Init2 sei >STYA ZPInBufPtr >LDYAI $D000 jsr A2osX.Unpak - + bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 @@ -120,7 +120,7 @@ Kernel.Init3 sta SETALTZP sta SET80DISP sta SET80STORE sta CLRPAGE2 - + bit RDIOUDIS sta SETIOUDIS sta SETDHIRES @@ -153,7 +153,7 @@ Kernel.Init3 sta SETALTZP >PUSHWZ Aux type >SYSCALL2 fopen bcs * - + ldy #S.PS.hStdIn sta (pPS),y iny #S.PS.hStdOut @@ -166,7 +166,7 @@ Kernel.Init3C >PUSHWI MSG.Init3 >SYSCALL2 printf jsr HW.Detect - + jsr CPU.Init.6502 jsr CPU.Init.Z80 @@ -187,12 +187,12 @@ Kernel.Init3C >PUSHWI MSG.Init3 >PUSHWI SBININITD >PUSHBI 2 >SYSCALL PrintF - + >PUSHWI SBININITD >PUSHBI 0 PS Flags >SYSCALL2 ExecL bcs Kernel.Init3.Err - + >PUSHWI MSG.Init3.OK >PUSHBI 0 >SYSCALL2 printf @@ -206,7 +206,7 @@ Kernel.Init3.Err >PUSHA >PUSHBI 1 >SYSCALL2 printf - bra * No need to discard Expanded CMDLINE + bra * No need to discard Expanded CMDLINE *-------------------------------------- * INIT2 Subs *-------------------------------------- @@ -219,7 +219,7 @@ KConfigLoad >LDYAI MSG.KCREAD bcc .1 eor #MLI.E.BADCALL beq .2 regular ProDOS - + ror CORE.FSID Bad file, but ProDOS.FX detected bra .9 @@ -250,11 +250,11 @@ KConfigLoad >LDYAI MSG.KCREAD bra .8 .9 >LDYAI MSG.KCREAD.KO - + .8 jsr PrintFYA lda CORE.FSID beq .99 - + >LDYAI MSG.PRODOSFX jsr PrintFYA @@ -278,11 +278,11 @@ MemMgrInit >LDYAI Mem.MHiMem 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 @@ -331,14 +331,14 @@ SysScrInit >LDYAI Mem.XHiMem >SYSCALL2 MKDev bcs .9 - + ldx A2osX.TTYDEVS .1 phx inc FD.TTY+S.FD.DEV.DEVID inc FD.TTY.NAME+3 jsr SysScrInit.TTYPtrs - + >PUSHWI FD.TTY >PUSHWI FD.TTY.NAME @@ -359,7 +359,7 @@ SysScrInit.TTYPtrs sta FD.TTY+S.FD.DEV.DCBPTR sta .1+1 tay - + lda FD.TTY+S.FD.DEV.DCBPTR+1 sbc /TTY.BUF.SIZE+S.DCB.TTY sta FD.TTY+S.FD.DEV.DCBPTR+1 @@ -368,7 +368,7 @@ SysScrInit.TTYPtrs ldx #S.DCB.TTY-1 sta SETWRITEAUX - + .1 stz $ffff,x SELF MODIFIED dex bpl .1 @@ -376,7 +376,7 @@ SysScrInit.TTYPtrs >STYA Mem.HiMem >STYA Mem.Free sta CLRWRITEAUX - + rts *-------------------------------------- * http://www.1000bit.it/support/manuali/apple/technotes/misc/tn.misc.02.html @@ -387,20 +387,20 @@ HW.Detect >PUSHWI MSG.HW >SYSCALL2 printf bit RROMBNK1 - + stz A2osX.HWType stz A2osX.HWSubT - + sec jsr $FE1F IIgs ? bcs .2 - + lda #A2osX.HWType.IIgs sta A2osX.HWType cpy #2 bne .1 - + iny .1 sty A2osX.HWSubT @@ -408,28 +408,28 @@ HW.Detect >PUSHWI MSG.HW .2 lda $FBC0 beq .4 //c - + ldx #A2osX.HWType.IIe stx A2osX.HWType cmp #$EA beq .8 //e OLD ROMs - + inc A2osX.HWSubT //e Enh ROMs lda $FBDD cmp #2 bne .8 - + inc A2osX.HWSubT //e LC card bra .8 - + .4 lda #A2osX.HWType.IIc sta A2osX.HWType lda $FBBF sta A2osX.HWSubT - + .8 bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 - + >PUSHWI MSG.HW.TypeSubT >PUSHB A2osX.HWType >PUSHB A2osX.HWSubT @@ -451,127 +451,110 @@ CPU.Init.6502 >PUSHWI MSG.CPU >SYSCALL2 puts >PUSHWI MSG.CPU.SPEED - >PUSHBI 0 + >PUSHB A2osX.HZ + >PUSHBI 1 >SYSCALL2 printf - stz A2osX.RANDOM16 + ldy #0 stz A2osX.RANDOM16+1 php sei - lda A2osX.HZ if 50hz -> 6 loops - eor #3 if 60hz -> 5 loops - pha + ldx A2osX.HZ + + lda A2osX.HZ2Cnt-5,x + asl + tax 2 VBL states (up & down) + clc CC for //e - clc lda MACHID and #MACHID.T eor #MACHID.T.IIc bne .1 - sec -.1 ror ZPPtr1 save //c flag + txa if //c, only one change (IRQ up) + lsr + tax + sec CS for //c - bpl .11 - sta CLRIOUDIS lda IO.IIC.RDVBLMSK sta ZPPtr1+1 Save VBLIRQ enable - + sta IO.IIC.ENVBL lda IO.IIC.CLRVBLIRQ - - ldx #2 - -.11 bit VBL - bpl .11 - - dex - - bit ZPPtr1 //c ? - bpl .2 - - lda IO.IIC.CLRVBLIRQ yes, clear IRQ - lda #0 A = LOW - bra .22 +.1 bit VBL Wait VBL high.... + bpl .1 -.2 lda VBL + bcc .2 skip if //e + + lda IO.IIC.CLRVBLIRQ clear //c IRQ + lda #0 reset A = LOW + + bra .3 + +.2 lda VBL //e : wait VBL low bmi .2 *-------------------------------------- -.20 ply - phy +.3 nop (2) + nop (2) + nop (2) -.22 nop (2) nop (2) nop (2) nop (2) + nop (2) nop (2) nop (2) + nop (2) nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - nop (2) - - inc A2osX.RANDOM16 (6) - bne .5 (2*) + + iny (2) + bne .4 (2*) inc A2osX.RANDOM16+1 (6) - bra .6 (3) 2+6+3 - -.5 nop (2) + bra .5 (3) 2+6+3 + +.4 nop (2) nop (2) nop (2) nop (2) 3+2+2+2+2 if from BNE - -.6 dey - bne .22 - - eor VBL (4) - bpl .20 (2*) - bit ZPPtr1 //c ? - bmi .31 - -.3 dex - bne .20 - bra .60 +.5 eor VBL (4) + bpl .3 (2*) -.31 lda IO.IIC.CLRVBLIRQ yes, clear IRQ - - bit ZPPtr1+1 Disable VBLIRQ ? + bcc .51 skip if //e + + lda IO.IIC.CLRVBLIRQ clear //c IRQ + lda #0 reset A = LOW + +.51 dex + bne .3 + + bcc .60 skip if //e + + bit ZPPtr1+1 Disable VBLIRQ ? bpl .60 - + sta IO.IIC.DISVBL + +.60 plp *-------------------------------------- -.60 ply + sty A2osX.RANDOM16 stz A2osX.CPUSPEED -.7 sec - lda A2osX.RANDOM16 + lsr A2osX.RANDOM16+1 + ror A2osX.RANDOM16 + +.7 lda A2osX.RANDOM16 + sec sbc #100 tax lda A2osX.RANDOM16+1 @@ -586,8 +569,6 @@ CPU.Init.6502 >PUSHWI MSG.CPU .8 lda A2osX.RANDOM16 sta A2osX.CPUSPEED+1 - plp - >PUSHWI MSG.CPU.SPEEDOK lda A2osX.CPUSPEED >PUSHA push CPU speed HI @@ -607,7 +588,7 @@ CPU.Init.Z80 >PUSHWI MSG.Z80 tax lda #A2osX.S.Z80 sta A2osX.S,x - + >PUSHWI MSG.Z80.OK lda A2osX.Z80SLOT >PUSHA @@ -710,7 +691,7 @@ DevMgrInit >LDYAI MSG.DEV lda DEVPTRS+1,x sta FD.BDEV+S.FD.DEV.BUSPTR+1 - sta ZPPtr1+1 + sta ZPPtr1+1 stz ZPPtr1 Cn00 plp lda #0 @@ -736,7 +717,7 @@ DevMgrInit >LDYAI MSG.DEV .3 bcs .53 > $D0, Some BLK remapped DRV cmp #$C0 - bcs .4 $C0 .. $CF, in slot ROM + bcs .4 $C0 .. $CF, in slot ROM jsr DevMgrInit.USR Outside ROM/LC space, User loaded BLK dev bra .8 keep slot free @@ -758,10 +739,10 @@ DevMgrInit >LDYAI MSG.DEV jsr DevMgrInit.SP lda #A2osX.S.SP bra .7 - + .53 jsr DevMgrInit.RSP Remapped SP devices.... bra .8 don't mark slot as busy - + .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK @@ -801,7 +782,7 @@ DevMgrInit.RSP ldx #10 DevMgrInit.AddBDev >LDYA DRV.BLKDEV,x >STYA FD.BDEV+S.FD.DEV.DRVPTR - + >PUSHWI MSG.BLKDEV >PUSHWI FD.BDEV.NAME >PUSHW FD.BDEV+S.FD.DEV.BUSPTR @@ -820,7 +801,7 @@ DevMgrInit.AddBDev.RTS *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ >SYSCALL2 puts - + php sei >LDYA $FFFE @@ -841,24 +822,24 @@ IrqMgrInit >LDYAI MSG.IRQ lda A2osX.HWType cmp #A2osX.HWType.IIgs bne .1 - + lda #"G" sta IRQ.Mode - + lda #$08 tsb IO.IIGS.INTEN - + jsr IrqMgrInit.HZ2Tick - + >LDYAI K.IrqH.IIGS jsr IrqMgrInit.SetV - + >LDYAI MSG.IRQ.IIGS bra .8 - + .1 cmp #A2osX.HWType.IIc beq .2 - + jsr IrqMgrInit.TClock bcs .2 @@ -866,7 +847,7 @@ IrqMgrInit >LDYAI MSG.IRQ sta IRQ.Mode >LDYAI K.IrqH.TCLOCK jsr IrqMgrInit.SetV - + >LDYAI MSG.IRQ.CLOCK bra .8 @@ -877,7 +858,7 @@ IrqMgrInit >LDYAI MSG.IRQ sta IRQ.Mode >LDYAI K.IrqH.VBL jsr IrqMgrInit.SetV - + >LDYAI MSG.IRQ.VBL bra .8 @@ -886,7 +867,7 @@ IrqMgrInit >LDYAI MSG.IRQ lda #"P" sta IRQ.Mode >LDYAI MSG.IRQ.POLL - + .8 >SYSCALL2 puts clc rts @@ -903,7 +884,7 @@ IrqMgrInit.TClock stz ZPPtr1 Try finding a TClock Card... lda #$C1 sta ZPPtr1+1 - + .1 ldx #TClock.SIG-TClock.OFS-1 .2 ldy TClock.OFS,x @@ -919,7 +900,7 @@ IrqMgrInit.TClock .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 - bne .1 + bne .1 sec rts @@ -938,7 +919,7 @@ IrqMgrInit.TClock sei lda #$40+$20 Enable interrupt + 64Hz sta $c080,y - lda #$40 + lda #$40 sta CLRPAGE2 sta $478,x sta $7f8,x @@ -958,7 +939,7 @@ 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 @@ -971,7 +952,7 @@ IrqMgrInit.Mouse .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 - bne .1 + bne .1 sec rts @@ -1034,7 +1015,7 @@ IrqMgrInit.HZ2Tick asl clc adc A2osX.HZ - + asl sta CORE.TickPerSec @@ -1065,20 +1046,20 @@ TskMgrInit >LDYAI MSG.TSK ldy #S.PS.hENV sta (pPS),y - + sta SETWRITEAUX lda #0 sta (ZPPtr1) make sure blank!! sta CLRWRITEAUX - + >PUSHWI 0 >PUSHWI 0 >SYSCALL OpenSession bcs .99 - + sta S.Table.hSID - + ldy #S.PS.hStdIn lda (pPS),y sta S.Table.hFile @@ -1086,7 +1067,7 @@ TskMgrInit >LDYAI MSG.TSK lda #1 ldy #S.PS.hSession sta (pPS),y - + >LDYAI $2E0 Get ROOT from QC >SYSCALL2 strdup bcs .9 @@ -1126,7 +1107,7 @@ PwdMgrInit >LDYAI MSG.PWD stx PWD.hUsrDB >STYA PWD.UsrDBSize - + >LDYAI PWD.ETCGROUP jsr PwdMgrInit.Load bcs .1 @@ -1134,12 +1115,12 @@ PwdMgrInit >LDYAI MSG.PWD stx PWD.hGrpDB >STYA PWD.GrpDBSize -.1 -* clc +.1 +* clc .9 rts *-------------------------------------- PwdMgrInit.Load >PUSHYA - >PUSHBI O.RDONLY + >PUSHBI O.RDONLY >PUSHBI S.FI.T.TXT >PUSHWZ Aux type >SYSCALL2 LoadStkObj @@ -1171,12 +1152,17 @@ Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack .HS 00 FLAG: .DB 0 Z80Code.Size .EQ *-Z80Code.Start *-------------------------------------- +A2osX.HZ2Cnt .DA #30,#25 +*-------------------------------------- Mouse.OFS .HS 05070B0CFB Mouse.SIG .HS 38180120D6 -*-------------------------------------- +*-------------------------------------- TClock.OFS .HS 01030507 TClock.SIG .HS 08285870 *-------------------------------------- +SmartPort.OFS .HS 010305 +SmartPort.SIG .HS 200003 +*-------------------------------------- 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..." @@ -1231,7 +1217,7 @@ 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.SPEED .AZ "Checking CPU Speed (%d0Hz)..." 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" @@ -1253,7 +1239,7 @@ MLIGETFILEINFOEX00 *-------------------------------------- MLIOPEN00 .DA #3 .DA MLIOPEN00.FN - .DA $B000 + .DA $B000 .BS 1 MLIOPEN00.FN >PSTR "A2osX.kconfig" *-------------------------------------- @@ -1298,9 +1284,6 @@ FD.BDEV .DA #S.FD.T.BDEV .DA 0 BUFPTR FD.BDEV.NAME .AZ "s1d1" *-------------------------------------- -SmartPort.OFS .HS 010305 -SmartPort.SIG .HS 200003 -*-------------------------------------- MAN SAVE usr/src/sys/kernel.s.init LOAD usr/src/sys/kernel.s