diff --git a/.Floppies/A2OSX.BOOTHD.woz b/.Floppies/A2OSX.BOOTHD.woz index 360be743..2006c8be 100644 Binary files a/.Floppies/A2OSX.BOOTHD.woz and b/.Floppies/A2OSX.BOOTHD.woz differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 9bafdbcb..435f9c28 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index c3561256..f0d2a58b 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/ProDOS.FX/ProDOS.S.GP.txt b/ProDOS.FX/ProDOS.S.GP.txt index 26136655..f8d19fbb 100644 --- a/ProDOS.FX/ProDOS.S.GP.txt +++ b/ProDOS.FX/ProDOS.S.GP.txt @@ -71,7 +71,7 @@ buftbl .HS 0000 file #1 * at the time of the most recent interrupt are stored here along * with the address interrupted. *-------------------------------------- -inttbl .HS 0000 int #1 +GP.IRQVs .HS 0000 int #1 .HS 0000 int #2 .HS 0000 int #3 .HS 0000 int #4 diff --git a/ProDOS.FX/ProDOS.S.IRQ.txt b/ProDOS.FX/ProDOS.S.IRQ.txt index 7bd51991..59f63188 100644 --- a/ProDOS.FX/ProDOS.S.IRQ.txt +++ b/ProDOS.FX/ProDOS.S.IRQ.txt @@ -17,7 +17,7 @@ IRQ ldx #$FA save 6 bytes of page 0 * ldx #0 -.3 lda inttbl+1,x test for a valid routine. +.3 lda GP.IRQVs+1,x test for a valid routine. beq .4 branch if no routine. phx @@ -28,7 +28,7 @@ IRQ ldx #$FA save 6 bytes of page 0 .4 inx inx - cpx #10 + cpx #8 bne .3 inc IRQ.Cnt allow 255 unclaimed interrupts @@ -65,7 +65,7 @@ IRQ.Done ldx #$FA rti *-------------------------------------- -IRQ.GoX jmp (inttbl,x) interrupt routine x +IRQ.GoX jmp (GP.IRQVs,x) interrupt routine x IRQ.Reset lda /resetv-1 pha diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index ba7caed3..98cdd45e 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -172,17 +172,17 @@ XDOS.intmgr sta A4L interrupt command ldx #$03 test for a free interrupt space in tbl. -.1 lda inttbl-2,x test high address for 0. +.1 lda GP.IRQVs-2,x test high address for 0. bne .2 branch if spot occupied. ldy #$03 get address of routine. lda (A3L),y must not be zero page. beq badint error if it is. - sta inttbl-2,x save high address + sta GP.IRQVs-2,x save high address dey lda (A3L),y - sta inttbl-3,x and low address. + sta GP.IRQVs-3,x and low address. txa return interrupt # in range 1-4 lsr dey @@ -210,8 +210,8 @@ dealcint ldy #$01 zero out interrupt vector asl tax - stz inttbl-2,x - stz inttbl-1,x + stz GP.IRQVs-2,x + stz GP.IRQVs-1,x clc rts *-------------------------------------- diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index 7d43cbe7..0837c87d 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -5,7 +5,7 @@ NEW .OR $2000 .TF sbin/initd *-------------------------------------- -INITDDBG .EQ 0 +INITDDBG .EQ 1 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i @@ -43,6 +43,8 @@ CS.START cld .DA CS.QUIT L.MSG.CTRLR .DA MSG.CTRLR .DO INITDDBG=1 +L.MSG.ETCINIT .DA MSG.ETCINIT +L.MSG.START .DA MSG.START L.MSG.OK .DA MSG.OK L.MSG.KO .DA MSG.KO .FIN @@ -59,7 +61,12 @@ CS.INIT CS.QUIT clc rts *-------------------------------------- -CS.RUN ldy #S.PS.PID +CS.RUN .DO INITDDBG=1 + >LDYA L.MSG.START + >SYSCALL PutS + .FIN + + ldy #S.PS.PID lda (pPS),y cmp #1 bne .9 @@ -88,7 +95,12 @@ CS.RUN ldy #S.PS.PID >SLEEP -.1 jsr CS.RUN.ETCINIT +.1 .DO INITDDBG=1 + >LDYA L.MSG.ETCINIT + >SYSCALL PutS + .FIN + + jsr CS.RUN.ETCINIT bcs .99 .2 >SYSCALL GetChar @@ -214,8 +226,10 @@ CS.END *-------------------------------------- MSG.CTRLR .AZ "INITD:Entering ROOT mode..." .DO INITDDBG=1 +MSG.START .AZ "INITD:Starting..." MSG.OK .AZ " [OK]" MSG.KO .AZ " [%h]\r\n" +MSG.ETCINIT .AS "INITD:Executing " .FIN ETCINIT .AZ "${ROOT}etc/init" BINSH .AZ "${ROOT}bin/sh"