diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2eca3510..1cdb2ee2 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/ProDOS.FX/ProDOS.S.LDR.txt b/ProDOS.FX/ProDOS.S.LDR.txt index 4b095de2..c563d4c5 100644 --- a/ProDOS.FX/ProDOS.S.LDR.txt +++ b/ProDOS.FX/ProDOS.S.LDR.txt @@ -13,10 +13,14 @@ H2000 jmp prostart jmp atalkset jmp p16start *-------------------------------------- -LDR.MSG.0 .AS "PRODOS FX: " -LDR.MSG.0.LEN .EQ *-LDR.MSG.0 -LDR.MSG.UNSUPP .AS -"UNSUPPORTED HARDWARE." -LDR.MSG.UNSUPP.LEN .EQ *-LDR.MSG.UNSUPP +LDR.MSG.0 .AT "PRODOS FX:" +LDR.MSG.UNSUPP .AT "UNSUPPORTED HARDWARE" +LDR.MSG.IIe .AT "//e" +LDR.MSG.IIc .AT "//c" +LDR.MSG.IIgs .AT "IIgs" +LDR.MSG.Unknown .AT "Unknown" +LDR.MSG.CLK .AT "Clk" +LDR.MSG.RAM .AT "/RAM" LDR.MSG.ROOTERR .AS -"Unable To read ROOT dir." LDR.MSG.ROOTERR.LEN .EQ *-LDR.MSG.ROOTERR *-------------------------------------- @@ -25,6 +29,10 @@ atalkset inc LDR.BootFlag set = 1 for appletalk rts prostart lda unitnum sta LDR.MLIOL.P+1 + .DO READCAT=1 + sta LDR.MLIRB.P+1 + .FIN + cld bit RROMBNK2 @@ -36,13 +44,16 @@ prostart lda unitnum jsr setkbd jsr home - ldx #LDR.MSG.0.LEN-1 -.1 lda LDR.MSG.0,x - and #$3F - sta $400,x + lda #$20 + ldx #39 + +.1 sta $400,x dex bpl .1 - + + ldx #LDR.MSG.0 + jsr LDR.PrintX + sec jsr idroutine returns system info bcs .2 taken if not a //gs @@ -77,19 +88,20 @@ prostart lda unitnum bne LDR.UNSUPP.HW NO 128k LDR.CheckROM stz cortland - + ldx #LDR.MSG.IIE lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80 - ldx $FBB3 check hardware id - cpx #$06 apple //e? + ldy $FBB3 check hardware id + cpy #$06 apple //e? beq .1 if yes - cpx #$EA apple //+ or ///? + cpy #$EA apple //+ or ///? beq LDR.UNSUPP.HW + ldx #LDR.MSG.UNKNOWN bra m128k machine is unknown, Assume //e Enh 128k -.1 ldx $FBC0 //c ? +.1 ldy $FBC0 //c ? bne .2 ldy kbd //c, check for keypress @@ -98,31 +110,37 @@ LDR.CheckROM stz cortland sta KBDSTROBE clear keyboard .11 lda #MACHID.T.IIc+MACHID.M.128+MACHID.COL80 + ldx #LDR.MSG.IIC bra m128k -.2 cpx #$EA +.2 cpy #$EA beq LDR.UNSUPP.HW //e UNenh.... - cpx #$E0 - bne m128k not a //e Enh.... + cpy #$E0 + beq .3 + + ldx #LDR.MSG.UNKNOWN + bra m128k not a //e Enh.... - sec +.3 sec jsr $FE1F //gs ???? bcs m128k no..... inc cortland + ldx #LDR.MSG.IIGS lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80+MACHID.CLK bra m128k -LDR.UNSUPP.HW ldy #LDR.MSG.UNSUPP.LEN-1 -.1 lda LDR.MSG.UNSUPP,y - sta vline14+2,y - dey - bpl .1 +LDR.UNSUPP.HW ldx #LDR.MSG.UNSUPP + jsr LDR.PrintX bmi * m128k sta idapple Save MACHID in temp location + sta SETALTCHAR + + jsr LDR.PrintX + sta CLRC3ROM ldx #$F @@ -219,15 +237,6 @@ LDR.IRQ lda RROMWRAMBNK2 stx irqv+1 save irq vector in main lc sty irqv - lda LDR.MLIOL.P+1 place boot devnum in globals - sta LDR.MLIRB.P+1 - sta devnum last device used - - jsr LDR.BlkDevScan finish setting up globals - - lda LDR.MLIRB.P+1 - sta devnum - lda #calldisp sta jspare+1 P8 system death vector lda /calldisp @@ -241,9 +250,13 @@ LDR.IRQ lda RROMWRAMBNK2 lda cortland beq LDR.II branch if // family - -LDR.IIGS stz vmode force setvid to reset cursor - jsr setvid reset output to screen + +LDR.IIGS + +* lda RROMWRAMBNK2 + +* stz vmode force setvid to reset cursor +* jsr setvid reset output to screen lda #calldisp sta cortdisp @@ -252,6 +265,9 @@ LDR.IIGS stz vmode force setvid to reset cursor lda #1 sta cortflag +* jsr lc1in set language card bank 1 to r/w + + lda #'C' ldx PAKME.CCLK ldy PAKME.CCLK+1 jsr LDR.SetupCLK @@ -279,16 +295,15 @@ LDR.IIGS stz vmode force setvid to reset cursor sta OS_BOOT indicates O/S initially booted. jsr patch101 patch for gs/os - rev note #101 -.1 jmp RAMDRV.Install -* put dispatcher in bank 2 of language card - +.1 jmp BLKDEV.Install +*-------------------------------------- LDR.II ldx PAKME.SEL1 ldy PAKME.SEL1+1 jsr LDR.SetupQC * check for a rom in slot 3. if no rom, use internal $C300 firmware -.2 sta CLRC3ROM + sta CLRC3ROM lda rommap slot ROM bit map and #$08 mask all but slot 3 bne isromin3 taken if rom in slot 3 @@ -346,10 +361,13 @@ hitswtch sta CLRC3ROM docard lda #MACHID.COL80 tsb MACHID turn bit 2 on (80-col card is present) - +*-------------------------------------- CLK.Install jsr LDR.ClkDevScan *-------------------------------------- -RAMDRV.Install jsr lc1in +BLKDEV.Install jsr LDR.BlkDevScan +*-------------------------------------- + jsr lc1in + ldx PAKME.RAM ldy PAKME.RAM+1 @@ -384,7 +402,10 @@ RAMDRV.Install jsr lc1in ldx GP.numdevs lda #$BF unit num of /RAM sta devlist,x - + + ldx #LDR.MSG.RAM + jsr LDR.PrintX +*-------------------------------------- lda LDR.BootFlag get setup entry point flag beq LDR.ReadRoot taken if normal boot. lda RROMBNK2 @@ -394,7 +415,10 @@ LDR.BootFlag .DA #$00 0 = normal boot, <>0 = return * set prefix to boot device -LDR.ReadRoot jsr MLI +LDR.ReadRoot lda LDR.MLIOL.P+1 place boot devnum in globals + sta devnum last device used + + jsr MLI .DA #MLIONLINE .DA LDR.MLIOL.P bcs .9 @@ -455,18 +479,51 @@ LDR.ReadRoot jsr MLI bpl .91 bmi * +*-------------------------------------- +LDR.PrintA ldy LDR.Print.CX + and #$7F + cmp #$60 + bcs .2 + and #$3F +.2 sta $400,y + inc LDR.Print.CX + rts +*-------------------------------------- +LDR.PrintX ldy LDR.Print.CX +.1 lda $2000,x + pha + and #$7F + cmp #$60 + bcs .2 + and #$3F +.2 sta $400,y + + inx + iny + pla + bpl .1 + +* lda #$20 +* sta $400,y + iny Add a Space + sty LDR.Print.CX + rts +LDR.Print.CX .HS 00 +*-------------------------------------- LDR.MLIOL.P .DA #2 .DA #$60 .DA pbuf+1 -LDR.MLISETP.P - .DA #1 + +LDR.MLISETP.P .DA #1 .DA pbuf -LDR.MLIRB.P - .DA #3 + + .DO READCAT=1 +LDR.MLIRB.P .DA #3 .DA #0 unit number .DA 0 2 byte data buffer .DA 0 2 byte block number + .FIN cortland .BS 1 cortland loader flag (1 = Cortland) *-------------------------------------- @@ -560,6 +617,7 @@ LDR.ClkDevScan php dex bpl .9 + lda #'N' ldx PAKME.NCLK ldy PAKME.NCLK+1 jmp LDR.SetupCLK @@ -579,6 +637,7 @@ LDR.ClkDevTCLK lda CLRC8ROM switch out $C8 ROMs dey bpl .2 + lda #'T' ldx PAKME.TCLK ldy PAKME.TCLK+1 jsr LDR.SetupCLK @@ -596,6 +655,11 @@ LDR.ClkDevTCLK lda CLRC8ROM switch out $C8 ROMs *-------------------------------------- LDR.SetupCLK stx ZPInBufPtr sty ZPInBufPtr+1 + + jsr LDR.PrintA + ldx #LDR.MSG.CLK + jsr LDR.PrintX + lda #$D742 sta ZPOutBufPtr lda /$D742 @@ -607,7 +671,7 @@ LDR.SetupCLK stx ZPInBufPtr lda #MACHID.CLK tsb MACHID -LDR.SetupCLK.RTS +LDR.SetupCLK.RTS rts *-------------------------------------- * find all disk devices in system slots and set up address