From 8f0ef5bbd2186ad6aebe30397d0f59a464e874e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 7 Nov 2019 15:27:24 +0100 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes ProDOS.FX/ProDOS.S.LDR.txt | 160 ++++++++++++++++++++++++++----------- 2 files changed, 112 insertions(+), 48 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2eca3510fda3a3e6efd72c1298475f7eb18389f3..1cdb2ee20d70ceb513ccfe1f779743d35ccea648 100644 GIT binary patch delta 18082 zcmeHud0bRC*MIJvK}TU=U4%HwJqJ3r;B~M+0EMa>E6nFax;UV?|;8P-ameiAHUv7a*~{! zoSdAT#ASc?_$&h)ju@bxV>S3}iXQNRZp|&I!W!mnMxPG+oa; zwtC=O1BHxZcliA9j#70+(U+@=z7zl=Ky{+%OZCDxl#*3vPkI0b00sgyfI)!408fAy zKnw6barUIoEv3zOnDTEk2q5*G$v?Za3|=Zf{2F3%Wmd4>A>) zWmDL-!yfI+jL}`cx3>jW3h&v=9~OkxL0#}~hahxMc~$vdEojwrv2^akb>`jH_M-=m z{na(#s;29ktI4|^%hC>X{nf2IfV#RK>Q=Sty4vaPm}TKmIHc>+RW%R`mpK;`)M z*~gX*+^vV+?blkoT7A0USL@)e-9D!?t=q4vF6e%17mRbeI=+u;F?3vsYVmJJEdlMC zmLaCstQ|kF%&YFqP9@Vc(c1AN%m2xp-_7#LjG;PX^Uti{KkkB$l?uDhKT`hBh3-E) zeqn{bvciX;iyq#Ev+KaMo`XF-&@9MdT~E*2YdtV}{-gcZR&{6lU#%XU9X*|`=708j zwQlR|s54(3110}lgOY34+J)AhYwcMFd!h~?Y}8?+FE;vNqaGU#*yxXq0oXVM8w0U1 z2pfa3aVRz#u`vW2L$NUo8%@|KVPiNpnz7M>jS<)wiH%lljKaofY>dIiSZs{L#&~SB zVPnERqy1cZw8>^UsER(Ij>d+STwFS3EIiXxZ|>*`?;g1RH2Tyu&6>Y2{GbqhK#Vrk zld+%M=QnRNn~E$j+JnDE9r!(}w+SweR*$ZOe?%Sl^LoChG~KH1YDcY+o$WoX*3K)A z&V!E5_Rj5zox6v_bV7GmJvx?m%|snl=2m;B33Z;GZ$3P5mRO%b;oO=y`2yD|&u6 zS^9;2+%#{dcLfLkiaPLjRKCpuh2^^TGcCS52OQD8KR=>7aP?~4FYS{K{u6cJS`^58 zuW##wcUz0zo%yBjUf=WQy5F72IyBv4-YtUw+DC&vy~{c#x-ad)%^BAA=URMCw#e#H z*7lc_Ux#lyqPrS#zUOdp>j>-4fk$-Rs{AJ+c3wN8i&mXi$=$=2eofHY>t&<~LKaAM4CN*@%=txsZ zB+86@*!`m;#d_6pUId0gL}$B$;zn6@2FN_G+MqqJRwQy)MEltm-~5XfHt=!qr^Rn3 z$bP4XB6Ydj1H}HHz?mwPLUfnyK{Kt^!-YG0j_7#*z|iDKV61PC(0F_>la=b=ju1^cs16p+^Y0eA(_L+9JuXm+e!;PU|M!un8K|n^F6_ zLritSnq^)r<-1$W zQo6^F=u96*b*IZS_YH-NydJqCpv7;m@#+B0en>+`#gG>Lz7Y5w92~rVCpzNC=shlU zzY;j}+=cF|djlhag1d3xOkgQ5s;4E8eS2DhX11fT(9ztO3*EoX3_NOx2)-)Fn%v+G z9=zUEr8>lYCPy&27~)7i_E7ajp*jEmc7JQ${(rl_&1wJtXn)%`(joqL|M~C!^WXhP z+4}hA_TT;I|9$`291|0J(*ELjTmEzTO$C1xG!?#CxaCB5uH)~(eKQ?ua`8?_^6_%V zMPc7;$6#`?0#db*I$q}}?D2D;9W&4@t3d-Nyi$L5>|0g3FcFY+qI6;Mj`zsLg+M

YDP3#fh6r>#LAvmby*(mbt#={2Nt4{yZ*Q#o21I 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 Dn)3%x 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