From b0bfcee198166f1fda2faabfe5482de6c353ab32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 12 Jul 2018 17:20:39 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.S.QC.txt | 16 +- A2osX.S.txt | 68 ++--- INC/MACROS.I.txt | 6 +- LIB/LIBTCPIP.S.txt | 3 +- SYS/KERNEL.S.INIT.txt | 572 ++++++++++++++++++--------------------- SYS/KERNEL.S.IO.txt | 40 ++- SYS/KERNEL.S.txt | 1 + SYS/KM.APPLETALK.S.txt | 40 +-- SYS/KM.NSC.S.txt | 8 +- SYS/KM.RAMWORKS.S.txt | 32 +-- SYS/KM.VSDRIVE.S.txt | 36 +-- X.PRINTF.S.txt | 84 +++--- 14 files changed, 446 insertions(+), 460 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5fcb8f1cee3066e597de8fff72399e65ca808c1d..8bad2064306e348384d43f6fcf8501eb1a4a494c 100644 GIT binary patch delta 3255 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 delta 3493 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 0082a7864a58b6581a20999ceb025877937437f7..f51bd2084aab578a0d2cefcbe5f0be033d3864e9 100644 GIT binary patch delta 18144 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 delta 17762 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 diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index bc4707bb..c10b9f58 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -44,7 +44,7 @@ A2osX.QC.Start1 sei lda #$8C Reset 80 col screen ($0C=FF=HOME) jsr $C300 - >LDAXI MSG.INIT1 + >LDYAI MSG.INIT1 jsr A2osX.QC.PrintAX .3 jsr MLI @@ -52,16 +52,16 @@ A2osX.QC.Start1 sei .DA MLISETPREFIX00 bcc .4 - >LDAXI MSG.SETPREFIXKO + >LDYAI MSG.SETPREFIXKO jsr A2osX.QC.PrintAX - >LDAXI A2osX.QC.Prefix + >LDYAI A2osX.QC.Prefix jsr A2osX.QC.PrintAX >DEBUG bra .3 -.4 >LDAXI MSG.SETPREFIXOK +.4 >LDYAI MSG.SETPREFIXOK jsr A2osX.QC.PrintAX jsr A2osX.QC.KLoad @@ -72,13 +72,13 @@ A2osX.QC.Start1 sei * bit RROMBNK1 * jsr SETPWRC -.8 >LDAXI MSG.INIT1OK +.8 >LDYAI MSG.INIT1OK jsr A2osX.QC.PrintAX >DEBUGOA jmp $2000 *-------------------------------------- -A2osX.QC.KLoad >LDAXI MSG.KLOAD +A2osX.QC.KLoad >LDYAI MSG.KLOAD jsr A2osX.QC.PrintAX ldx A2osX.QC.Prefix @@ -94,7 +94,7 @@ A2osX.QC.KLoad >LDAXI MSG.KLOAD stx A2osX.QC.Prefix - >LDAXI A2osX.QC.Prefix + >LDYAI A2osX.QC.Prefix jsr A2osX.QC.PrintAX jsr MLI @@ -121,7 +121,7 @@ A2osX.QC.KLoad >LDAXI MSG.KLOAD plp bcc .9 - >LDAXI MSG.KLOAD.KO + >LDYAI MSG.KLOAD.KO jsr A2osX.QC.PrintAX .9 rts diff --git a/A2osX.S.txt b/A2osX.S.txt index 6463a523..b572000d 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -55,35 +55,35 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest bit RROMBNK1 jsr HOME - >LDAXI MSG.INIT0 - jsr PrintFAX + >LDYAI MSG.INIT0 + jsr PrintFYA - >LDAXI MSG.SYSMEM - jsr PrintFAX + >LDYAI MSG.SYSMEM + jsr PrintFYA lda MACHID and #MACHID.M cmp #MACHID.M.128 beq .1 - >LDAXI MSG.SYSMEM.KO - jsr PrintFAX + >LDYAI MSG.SYSMEM.KO + jsr PrintFYA bra * .1 lda #$8C Reset 80 col screen ($0C:HOME) jsr $C300 - >LDAXI MSG.INIT0 - jsr PrintFAX + >LDYAI MSG.INIT0 + jsr PrintFYA - >LDAXI MSG.SYSMEM - jsr PrintFAX + >LDYAI MSG.SYSMEM + jsr PrintFYA - >LDAXI MSG.SYSMEM.OK - jsr PrintFAX + >LDYAI MSG.SYSMEM.OK + jsr PrintFYA - >LDAXI MSG.CPU - jsr PrintFAX + >LDYAI MSG.CPU + jsr PrintFYA sed Test 6502 BCD bug lda #$99 @@ -92,12 +92,12 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest cld bpl .2 if minus, BUG!, we have 6502 - >LDAXI MSG.CPU.KO - jsr PrintFAX + >LDYAI MSG.CPU.KO + jsr PrintFYA bra * -.2 >LDAXI MSG.CPU.OK - jsr PrintFAX +.2 >LDYAI MSG.CPU.OK + jsr PrintFYA *-------------------------------------- A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0 @@ -106,8 +106,8 @@ A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0 .DA MLICLOSE01 bcs * *-------------------------------------- -A2osX.Prefix >LDAXI MSG.BOOTPREFIX - jsr PrintFAX +A2osX.Prefix >LDYAI MSG.BOOTPREFIX + jsr PrintFYA jsr MLI .DA #MLIGETPREFIX .DA MLIGETPREFIX01 @@ -124,24 +124,24 @@ A2osX.Prefix >LDAXI MSG.BOOTPREFIX bne .1 jsr CROUT *-------------------------------------- -A2osX.RamDrv >LDAXI MSG.RAMDRV - jsr PrintFAX +A2osX.RamDrv >LDYAI MSG.RAMDRV + jsr PrintFYA jsr DisableRamDRV bcc .2 tax bne .1 - >LDAXI MSG.RAMDRV.KO0 - jsr PrintFAX + >LDYAI MSG.RAMDRV.KO0 + jsr PrintFYA bra A2osX.SetupQC -.1 >LDAXI MSG.RAMDRV.KO1 - jsr PrintFAX +.1 >LDYAI MSG.RAMDRV.KO1 + jsr PrintFYA bra A2osX.SetupQC -.2 >LDAXI MSG.RAMDRV.OK - jsr PrintFAX +.2 >LDYAI MSG.RAMDRV.OK + jsr PrintFYA *-------------------------------------- A2osX.SetupQC lda RRAMWRAMBNK2 lda RRAMWRAMBNK2 @@ -159,12 +159,12 @@ A2osX.SetupQC lda RRAMWRAMBNK2 lda RROMBNK1 *-------------------------------------- -A2osX.EnumKM >LDAXI MSG.KMENUM - jsr PrintFAX +A2osX.EnumKM >LDYAI MSG.KMENUM + jsr PrintFYA jsr EnumKM *-------------------------------------- -A2osX.MLIQuit >LDAXI MSG.INIT0OK - jsr PrintFAX +A2osX.MLIQuit >LDYAI MSG.INIT0OK + jsr PrintFYA >DEBUGOA jsr MLI @@ -336,8 +336,8 @@ LoadKM ldx Boot.Prefix lda /KM.Filename pha - >LDAXI MSG.KMLOAD - jsr PrintFAX + >LDYAI MSG.KMLOAD + jsr PrintFYA jsr MLI .DA #MLIOPEN diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index 7e82a371..c9adfff6 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -351,6 +351,7 @@ AUTO 4,1 dec bne :1 pla + rts .FIN .EM *-------------------------------------- @@ -360,11 +361,6 @@ AUTO 4,1 ldy #]1 lda /]1 .EM -*-------------------------------------- - .MA LDAXI - lda #]1 - ldx /]1 - .EM *-------------------------------------- .MA LDYA .DO ]#=2 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index c5c6ec8f..d551117d 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -198,7 +198,8 @@ GetDynPort inc DYNPORT.LAST bcs .1 - >LDAXI K.DYNPORT.START + lda #K.DYNPORT.START + ldx /K.DYNPORT.START sta DYNPORT.LAST stx DYNPORT.LAST+1 rts CC diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 5ed16fd9..149112bd 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -10,9 +10,219 @@ Kernel.Init2 sei stx A2osX.SaveSM stx A2osX.SaveSX - sta CLRALTZP Make sure MAIN ZP is enabled for X.PRINT.F + ldx #Kernel.ZP.S-1 + +.1 lda Kernel.ZP,x + sta CHARGET,x + dex + bpl .1 - ldx #0 + 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 + + jsr SysScrInit + + jsr MemMgrInit + + >LDYAI FD.NULL + jsr DevMgrInit.AddCDev + + >LDYAI FD.SYS + jsr DevMgrInit.AddCDev + + jsr PS0.Init + + >DEBUG + >LDYAI MSG.Init3 + >SYSCALL printf + >DEBUG + + jsr CPU.Init + + jsr DevMgrInit + + jsr IrqMgrInit + bcs * + + jsr EvtMgrInit + + jsr FltMgrInit + + jsr TskMgrInit + bcs * + + ldy #S.PS.hPREFIX + lda (pPs),y + >SYSCALL GetMemPtr + + >PUSHYA + >LDYAI MSG.Prefix + >SYSCALL printf + + >PUSHWI STARTUP.CMDLINE + >LDYAI MSG.Startup + >SYSCALL printf + + >LDYAI STARTUP.CMDLINE + >SYSCALL ExpandStr + phx Save Expanded CMDLINE for discard + + >SYSCALL CreatePS + + bcs .9 + pla + >SYSCALL FreeMem ...discard... + + >LDYAI MSG.Init3.OK + >SYSCALL printf + + >DEBUGOA + + jmp CORE.Run + +.9 >PUSHA + >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 +*-------------------------------------- +SysScrInit ldx #0 ldy #0 @@ -58,257 +268,51 @@ Kernel.Init2 sei inx cpx #40 bne .4 - - >LDAXI MSG.Init2 - jsr PrintFAX - - sta CLRALTZP - - ldx #Kernel.ZP.S-1 - -.1 lda Kernel.ZP,x - sta CHARGET,x - dex - bpl .1 - - sta CLRALTZP - - >LDAXI MSG.MAIN - jsr PrintFAX - - >LDYAI A2osX.MAIN - >STYA ZPPtr1 - >LDYAI CORE.Run - >STYA ZPPtr2 - >LDYAI A2osX.MAIN.S^$FFFF - - 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 - - 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 - - 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 - - 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 - - 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 - - lda #$ff Make sure we are in Kernel Mode during setup - sta IRQ.InKernel - - >LDAXI MSG.Init3 - jsr PrintFAX - >DEBUG - jsr MemMgrInit - - jsr DevMgrInit - bcs * - - jsr IrqMgrInit - bcs * - - jsr EvtMgrInit - bcs * - - jsr FltMgrInit - bcs * - - jsr TskMgrInit - bcs * - - jsr PS0Init - - ldy #S.PS.hPREFIX - lda (pPs),y - >SYSCALL GetMemPtr - - >PUSHYA - >LDYAI MSG.Prefix - >SYSCALL PrintF - - >PUSHWI STARTUP.CMDLINE - >LDYAI MSG.Startup - >SYSCALL PrintF - - >LDYAI STARTUP.CMDLINE - >SYSCALL ExpandStr - phx Save Expanded CMDLINE for discard - - >SYSCALL CreatePS - - bcs .9 - pla - >SYSCALL FreeMem ...discard... - - >LDYAI MSG.Init3.OK - >SYSCALL PrintF - - >DEBUGOA - - jmp CORE.Run - -.9 >PUSHA - >LDYAI MSG.StartupErr - >SYSCALL PrintF - bra * No need to discard Expanded CMDLINE -*-------------------------------------- -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 >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 *-------------------------------------- -CPU.Init >LDAXI MSG.CPU - jsr PrintFAX +PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel) + >STYA pPs + + >LDYAI K.STACKTOP + >STYA pStack + + >PUSHBI 0 + >LDYAI DEV.SYS + >SYSCALL open + 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 +*-------------------------------------- +CPU.Init >LDYAI MSG.CPU + >SYSCALL printf jsr Detect6502 A = CPU type sta A2osX.CPUTYPE - ldx MSG.CPUTYPEH,y - lda MSG.CPUTYPEL,y - jsr PrintFAX + + ldx MSG.CPUTYPEL,y + lda MSG.CPUTYPEH,y + tay + + >SYSCALL printf lda MACHID and #MACHID.T cmp #MACHID.T.IIc beq CPU.Init.Z80 - >LDAXI MSG.CPU.SPEED - jsr PrintFAX + >LDYAI MSG.CPU.SPEED + >SYSCALL printf stz A2osX.RANDOM16 stz A2osX.RANDOM16+1 @@ -367,11 +371,12 @@ CPU.Init >LDAXI MSG.CPU pha push CPU speed LO lda A2osX.CPUSPEED pha push CPU speed HI - >LDAXI MSG.CPU.SPEEDOK - jsr PrintFAX + >LDYAI MSG.CPU.SPEEDOK + >SYSCALL printf -CPU.Init.Z80 >LDAXI MSG.Z80 - jsr PrintFAX +CPU.Init.Z80 >LDYAI MSG.Z80 + >SYSCALL printf + jsr DetectZ80 bcs .9 sta A2osX.Z80SLOT @@ -381,12 +386,12 @@ CPU.Init.Z80 >LDAXI MSG.Z80 lda #A2osX.S.Z80 sta A2osX.S,x - >LDAXI MSG.Z80.OK - jsr PrintFAX + >LDYAI MSG.Z80.OK + >SYSCALL printf rts -.9 >LDAXI MSG.Z80.KO - jsr PrintFAX +.9 >LDYAI MSG.Z80.KO + >SYSCALL printf rts *-------------------------------------- * Out: @@ -481,7 +486,7 @@ MemMgrInit >LDYAI Mem.MHiMem * if irq not handled, jmp (S.IrqMgrOldFFFE) *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ - >SYSCALL PrintF + >SYSCALL printf php sei @@ -512,7 +517,7 @@ IrqMgrInit >LDYAI MSG.IRQ >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.CLOCK - >SYSCALL PrintF + >SYSCALL printf clc rts @@ -528,7 +533,7 @@ IrqMgrInit >LDYAI MSG.IRQ >STYA GP.IrqH.JSR+1 >LDYAI MSG.IRQ.VBL - >SYSCALL PrintF + >SYSCALL printf clc rts @@ -539,7 +544,7 @@ IrqMgrInit >LDYAI MSG.IRQ sta SYS.BASL0+38 >LDYAI MSG.IRQ.POLL - >SYSCALL PrintF + >SYSCALL printf clc rts @@ -701,13 +706,7 @@ IrqMgrInit.HZ2Tick rts *-------------------------------------- DevMgrInit >LDYAI MSG.DEV - >SYSCALL PrintF - - >LDYAI FD.NULL - jsr DevMgrInit.AddCDev - - >LDYAI FD.SYS - jsr DevMgrInit.AddCDev + >SYSCALL printf lda DEVCNT sta DevMgrInit.DEVCNT @@ -883,20 +882,14 @@ DevMgrInit.AddCDev .2 sta $ffff,x SELF MODIFIED dex bpl .1 - - - jsr $ffff - + inc DevMgr.DevCnt clc rts - -.9 lda #K.E.OOH - sec - rts *-------------------------------------- EvtMgrInit >LDYAI MSG.EVT >SYSCALL printf + lda #$A5 sta A2osX.TIMER16 lda #$9B @@ -909,6 +902,7 @@ EvtMgrInit >LDYAI MSG.EVT *-------------------------------------- FltMgrInit >LDYAI MSG.FLT >SYSCALL printf + stz Flt.Table clc rts @@ -916,8 +910,6 @@ FltMgrInit >LDYAI MSG.FLT TskMgrInit >LDYAI MSG.TSK >SYSCALL printf - jsr CORE.PSSelect0 - >LDYAI K.ENV.SIZE get a buffer for ENV >SYSCALL GetMem0 make sure blank!! bcs .9 @@ -967,29 +959,6 @@ TskMgrInit >LDYAI MSG.TSK >SYSCALL PutEnv .9 rts *-------------------------------------- -PS0Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel) - >STYA pPs - - >LDYAI K.STACKTOP - >STYA pStack - - >PUSHBI 0 - >LDYAI DEV.SYS - >SYSCALL open - - 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 -*-------------------------------------- * Modified CHARGET/CHARGOT for ROM CALL * CHRGET .EQ $B1 - C8 *-------------------------------------- @@ -1026,14 +995,7 @@ TClock.SIG .HS 0878282c58ff700538b00118b8087848 .HS 8a489848adffcf201ac86868ba8df807 *-------------------------------------- SYSSCREEN.TOP .AZ "A2osX System Screen" -MSG.Init2 .AZ "A2osX[Stage2]:Init\n" -MSG.ZP .AZ "Installing KERNEL...\n - $0000 ZP...\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.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n" MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" *-------------------------------------- @@ -1099,8 +1061,8 @@ FD.NULL .DA #S.FD.T.CDEV .DA #0 HANDLER .DA #0 BUSID .DA #DEVID.NULL + .DA 0 BUSPTR .DA DRV.NULL - .DA 0 ROMPTR .AZ "NULL" NAME .HS 000000 *-------------------------------------- @@ -1108,8 +1070,8 @@ FD.SYS .DA #S.FD.T.CDEV .DA #0 HANDLER .DA #0 BUSID .DA #DEVID.SYS + .DA 0 BUSPTR .DA DRV.SYS - .DA 0 ROMPTR .AZ "SYS" NAME .HS 00000000 *-------------------------------------- @@ -1117,8 +1079,8 @@ FD.BDEV .DA #S.FD.T.BDEV .DA #0 HANDLER .DA #0 BUSID .DA #0 DEVID + .BS 2 BUSPTR .BS 2 DRVPTR - .BS 2 ROMPTR .AZ "S1D1" NAME .HS 000000 *-------------------------------------- diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 9406d219..30fceecc 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -20,7 +20,7 @@ K.Open.I jsr IO.SetMLIPathYA local pathname... ldx #5 /DEV/ cpx K.MLI.PATH - bcc K.Open.REG + bcs K.Open.REG .1 lda K.MLI.PATH,x cmp IO.DEVDIR,x @@ -28,22 +28,39 @@ K.Open.I jsr IO.SetMLIPathYA local pathname... dex bne .1 -K.Open.DEV ldy #K.MLI.PATH+5 skip /DEV/ - lda /K.MLI.PATH+5 +K.Open.DEV ldy #K.MLI.PATH+6 skip L/DEV/ + lda /K.MLI.PATH+6 jsr K.GetDevByName bcs .9 >STYA pFD + stx .8+1 DEVID + ldy #S.FD.DEV.DRVPTR + lda (pFD),y + sta .1+1 + iny + lda (pFD),y + sta .1+2 -.9 >RET 1 + >PULLA get flags + ldx #IOCTL.OPEN +.1 jsr $ffff SELF MODIFIED + bcs .99 + +.8 lda #$ff SELF MODIFIED +.99 rts + +.9 >RET 1 discard flags K.Open.REG >LDYAI K.MLI.PATH >STYA K.MLI.PARAMS+1 - - sta K.S.IOCTL + lda (pStack) +* sta K.S.IOCTL + + >RET 1 *-------------------------------------- * int close(int fd); *-------------------------------------- @@ -191,9 +208,18 @@ K.IOCTL.9 rts * ## ASM * **In:** *\-------------------------------------- -IO.SELECT jsr K.GetMemPtr +IO.SELECT cmp DevMgr.DevCnt + bcs .9 + + tax + + ldy FD.Table.PTRLO,x + lda FD.Table.PTRHI,x >STYA pFD rts + +.9 lda #MLI.E.NODEV + rts *-------------------------------------- IO.PullMLIPath >PULLYA IO.SetMLIPathYA >STYA .1+1 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index c6272bd7..5182c3da 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -17,6 +17,7 @@ AUTO 4,1 .INB /A2OSX.SRC/SYS/KERNEL.S.INIT .INB /A2OSX.SRC/X.PRINTF.S + A2osX.MAIN .PH $1100 .INB /A2OSX.SRC/SYS/KERNEL.S.CORE .INB /A2OSX.SRC/SYS/KERNEL.S.DRV diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index 4491b480..99269e67 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -15,8 +15,8 @@ AUTO 6 *-------------------------------------- TmpPtr1 .EQ $0 *-------------------------------------- -AT.INIT >LDAXI MSG.INIT - jsr PrintFAX +AT.INIT >LDYAI MSG.INIT + jsr PrintFYA lda #$F9 sta TmpPtr1 @@ -43,8 +43,8 @@ AT.INIT >LDAXI MSG.INIT beq .4 pha - >LDAXI MSG.FAILED - jsr PrintFAX + >LDYAI MSG.FAILED + jsr PrintFYA rts .3 dec TmpPtr1+1 @@ -52,8 +52,8 @@ AT.INIT >LDAXI MSG.INIT cmp #$C0 bne .1 - >LDAXI MSG.NOHW - jsr PrintFAX + >LDYAI MSG.NOHW + jsr PrintFYA rts .4 stx WC.Flag @@ -63,8 +63,8 @@ AT.INIT >LDAXI MSG.INIT and #$0f pha Push slot # phy Push Type # - >LDAXI MSG.HWOK - jsr PrintFAX + >LDYAI MSG.HWOK + jsr PrintFYA >LDYA MLI+1 >STYA GO.OLDMLI+1 @@ -80,16 +80,16 @@ AT.INIT >LDAXI MSG.INIT >STYA MLI+1 -.5 >LDAXI MSG.ATINIT - jsr PrintFAX +.5 >LDYAI MSG.ATINIT + jsr PrintFYA jsr GO.WSCARD .DA #MLIATALK .DA MLIATALK.PARAMS bcs .9 - >LDAXI MSG.IRQ - jsr PrintFAX + >LDYAI MSG.IRQ + jsr PrintFYA jsr MLI .DA #MLIALLOCIRQ @@ -98,29 +98,29 @@ AT.INIT >LDAXI MSG.INIT cli - >LDAXI MSG.PREFIX1 - jsr PrintFAX + >LDYAI MSG.PREFIX1 + jsr PrintFYA jsr GO.OLDMLI .DA #MLIGETPREFIX .DA MLIGETPREFIX.PARAMS bcs .9 - >LDAXI MSG.PREFIX2 - jsr PrintFAX + >LDYAI MSG.PREFIX2 + jsr PrintFYA jsr GO.WSCARD .DA #MLISETPREFIX .DA MLIGETPREFIX.PARAMS bcs .9 - >LDAXI MSG.OK - jsr PrintFAX + >LDYAI MSG.OK + jsr PrintFYA rts .9 pha - >LDAXI MSG.KO - jsr PrintFAX + >LDYAI MSG.KO + jsr PrintFYA rts *-------------------------------------- GO.WSCARD jmp $ffff Self Modifed diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index 958e8eea..952fc7df 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -16,20 +16,20 @@ AUTO 6 TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 *-------------------------------------- -NSC.Init >LDAXI NSC.MSG0 +NSC.Init >LDYAI NSC.MSG0 jsr NSC.Print lda MACHID and #MACHID.CLK Clock already installed ? beq .1 - >LDAXI NSC.MSG1 + >LDYAI NSC.MSG1 jsr NSC.Print rts .1 jsr NSC.Detect bcc .2 - >LDAXI NSC.MSG2 + >LDYAI NSC.MSG2 jsr NSC.Print rts @@ -39,7 +39,7 @@ NSC.Init >LDAXI NSC.MSG0 ora #MACHID.CLK sta MACHID - >LDAXI NSC.MSG3 + >LDYAI NSC.MSG3 jsr NSC.Print rts *-------------------------------------- diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 7a6e0658..171f327d 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -26,22 +26,22 @@ RW.BLOCK .EQ $A00 *-------------------------------------- RWBankSelect .EQ $C073 *-------------------------------------- -RW.Init >LDAXI RW.MSG - jsr PrintFAX +RW.Init >LDYAI RW.MSG + jsr PrintFYA jsr RW.Detect1 bcs .10 - >LDAXI RW.MSG.OK - jsr PrintFAX + >LDYAI RW.MSG.OK + jsr PrintFYA rts .10 jsr RW.Detect2 bcc .1 - >LDAXI RW.MSG.KO1 - jsr PrintFAX + >LDYAI RW.MSG.KO1 + jsr PrintFYA rts .1 pha Push Page count @@ -55,28 +55,28 @@ RW.Init >LDAXI RW.MSG phx Push Kbyte LO pha Push Kbyte HI - >LDAXI RW.MSG.OK1 - jsr PrintFAX + >LDYAI RW.MSG.OK1 + jsr PrintFYA jsr RW.Install bcc .2 - >LDAXI RW.MSG.KO2 - jsr PrintFAX + >LDYAI RW.MSG.KO2 + jsr PrintFYA rts -.2 >LDAXI RW.MSG.OK2 - jsr PrintFAX +.2 >LDYAI RW.MSG.OK2 + jsr PrintFYA jsr RW.Format bcc .3 - >LDAXI RW.MSG.KO3 - jsr PrintFAX + >LDYAI RW.MSG.KO3 + jsr PrintFYA rts -.3 >LDAXI RW.MSG.OK3 - jsr PrintFAX +.3 >LDYAI RW.MSG.OK3 + jsr PrintFYA rts *-------------------------------------- RW.Detect1 jsr MLI diff --git a/SYS/KM.VSDRIVE.S.txt b/SYS/KM.VSDRIVE.S.txt index 2d4253fa..03d3694b 100644 --- a/SYS/KM.VSDRIVE.S.txt +++ b/SYS/KM.VSDRIVE.S.txt @@ -18,8 +18,8 @@ ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope ADT.CMD.PING .EQ $D9 "Y": PING DRV.EntryPoint .EQ $BF41 *-------------------------------------- -VSDRIVE.Init >LDAXI VSDRIVE.MSG0 - jsr PrintFAX +VSDRIVE.Init >LDYAI VSDRIVE.MSG0 + jsr PrintFYA jsr VSDRIVE.Check bcs .90 @@ -36,49 +36,49 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0 and #$0F pha slot n - >LDAXI VSDRIVE.SSCOK - jsr PrintFAX + >LDYAI VSDRIVE.SSCOK + jsr PrintFYA jsr VSDRIVE.Ping bcs .92 - >LDAXI VSDRIVE.SRVOK - jsr PrintFAX + >LDYAI VSDRIVE.SRVOK + jsr PrintFYA jsr VSDRIVE.SetSlot bcs .91 pha Push slot pha 2 times - >LDAXI VSDRIVE.DEVOK - jsr PrintFAX + >LDYAI VSDRIVE.DEVOK + jsr PrintFYA jsr VSDRIVE.Install - >LDAXI VSDRIVE.OK - jsr PrintFAX + >LDYAI VSDRIVE.OK + jsr PrintFYA rts -.90 >LDAXI VSDRIVE.DRVKO - jsr PrintFAX +.90 >LDYAI VSDRIVE.DRVKO + jsr PrintFYA rts -.91 >LDAXI VSDRIVE.NOSLOT - jsr PrintFAX +.91 >LDYAI VSDRIVE.NOSLOT + jsr PrintFYA rts .92 pha Push EC - >LDAXI VSDRIVE.SRVKO - jsr PrintFAX + >LDYAI VSDRIVE.SRVKO + jsr PrintFYA inc .1+1 lda .1+1 cmp #$C8 bne .2 Go try next SSC.... -.99 >LDAXI VSDRIVE.SSCKO - jsr PrintFAX +.99 >LDYAI VSDRIVE.SSCKO + jsr PrintFYA rts *-------------------------------------- VSDRIVE.Check bit RRAMWRAMBNK2 diff --git a/X.PRINTF.S.txt b/X.PRINTF.S.txt index 77fa8a7a..bb4c0aab 100644 --- a/X.PRINTF.S.txt +++ b/X.PRINTF.S.txt @@ -3,33 +3,33 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF *-------------------------------------- -PrintFAX sta PrintFAX.Next+1 - stx PrintFAX.Next+2 +PrintFYA sty PrintFYA.Next+1 + sta PrintFYA.Next+2 pla - sta PrintFAX.99+1 + sta PrintFYA.99+1 pla - sta PrintFAX.98+1 + sta PrintFYA.98+1 lda $C011 RDLCBNK2 - sta PrintFAX.91+1 + sta PrintFYA.91+1 lda $C012 RDLCRAM - sta PrintFAX.90+1 + sta PrintFYA.90+1 lda $C08A RROMBNK1, make sure $D000-$FFFF ROM selected lda $CFFF get access to $C800-$CFFF internal ROM -PrintFAX.1 stz X.b0Flag +PrintFYA.1 stz X.b0Flag stz X.DigitCount - jsr PrintFAX.Next - beq PrintFAX.90 + jsr PrintFYA.Next + beq PrintFYA.90 cmp #'%' bne .7 -.2 jsr PrintFAX.Next - beq PrintFAX.90 +.2 jsr PrintFYA.Next + beq PrintFYA.90 cmp #'0' bne .3 @@ -43,24 +43,24 @@ PrintFAX.1 stz X.b0Flag sta X.DigitCount bra .2 -.4 ldx #PrintFAX.Tbl-PrintFAX.Esc-1 +.4 ldx #PrintFYA.Tbl-PrintFYA.Esc-1 -.5 cmp PrintFAX.Esc,x +.5 cmp PrintFYA.Esc,x beq .6 dex bpl .5 - bra PrintFAX.1 + bra PrintFYA.1 .6 txa asl tax - jmp (PrintFAX.Tbl,x) + jmp (PrintFYA.Tbl,x) .7 cmp #'\' bne .8 - jsr PrintFAX.Next - beq PrintFAX.90 + jsr PrintFYA.Next + beq PrintFYA.90 cmp #'n' bne .8 @@ -68,46 +68,46 @@ PrintFAX.1 stz X.b0Flag .8 ora #$80 jsr $FDED COUT - bra PrintFAX.1 + bra PrintFYA.1 -PrintFAX.90 lda #$ff - bpl PrintFAX.98 ROM was selected, nothing to do +PrintFYA.90 lda #$ff + bpl PrintFYA.98 ROM was selected, nothing to do -PrintFAX.91 lda #$ff - bmi PrintFAX.92 RAM bank 2 was selected +PrintFYA.91 lda #$ff + bmi PrintFYA.92 RAM bank 2 was selected ldx #$8B RRAMWRAMBNK1 .HS 2C bit abs -PrintFAX.92 ldx #$83 RRAMWRAMBNK2 +PrintFYA.92 ldx #$83 RRAMWRAMBNK2 lda $C000,x lda $C000,x -PrintFAX.98 lda #$ff Self modified RTS HI +PrintFYA.98 lda #$ff Self modified RTS HI pha -PrintFAX.99 lda #$ff Self modified RTS LOPrintFAXPrintFAX +PrintFYA.99 lda #$ff Self modified RTS LOPrintFYAPrintFYA pha rts *-------------------------------------- -PrintFAX.Next lda $ffff +PrintFYA.Next lda $ffff beq .8 - inc PrintFAX.Next+1 + inc PrintFYA.Next+1 bne .8 - inc PrintFAX.Next+2 Always !=0 + inc PrintFYA.Next+2 Always !=0 .8 rts *-------------------------------------- -PrintFAX.Esc .AS "dDhHS" -PrintFAX.Tbl .DA PrintFAX.D - .DA PrintFAX.DD - .DA PrintFAX.H - .DA PrintFAX.HH - .DA PrintFAX.S +PrintFYA.Esc .AS "dDhHS" +PrintFYA.Tbl .DA PrintFYA.D + .DA PrintFYA.DD + .DA PrintFYA.H + .DA PrintFYA.HH + .DA PrintFYA.S *-------------------------------------- -PrintFAX.D ldx #0 +PrintFYA.D ldx #0 .HS D0 bne -PrintFAX.DD plx +PrintFYA.DD plx pla sta X.HexBuffer stx X.HexBuffer+1 @@ -186,15 +186,15 @@ PrintFAX.DD plx cpy #6 bne .6 -.9 jmp PrintFAX.1 +.9 jmp PrintFYA.1 *-------------------------------------- -PrintFAX.HH pla +PrintFYA.HH pla jsr $FDDA PRBYTE -PrintFAX.H pla +PrintFYA.H pla jsr $FDDA PRBYTE - jmp PrintFAX.1 + jmp PrintFYA.1 *-------------------------------------- -PrintFAX.S pla +PrintFYA.S pla sta .1+2 sta .2+2 @@ -216,7 +216,7 @@ PrintFAX.S pla dex bne .2 -.9 jmp PrintFAX.1 +.9 jmp PrintFYA.1 *-------------------------------------- X.HexBuffer .BS 2 X.BCDBuffer .BS 3