From 7a030f049b698b388ad18bf32e6f7660fffb0344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 24 Nov 2016 18:00:03 +0100 Subject: [PATCH] Kernel version 0.8 : LSDEV, adding ProDOS device listing --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LSDEV.S.txt | 206 +++++++++++++++++++++++++++++++++++++++++--- INC/PRODOS.I.txt | 1 + SYS/KERNEL.S.GP.txt | 9 ++ 6 files changed, 206 insertions(+), 10 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 3b8aa1effa3ea93945aa198675a77b65af75bb0d..ae9735b4bb9dc00051b0ebedb2be50ed433cb7d6 100644 GIT binary patch delta 599 zcmX|8&ubGw6rP!lO%B1XUW{qgH)B=}iueoh;2|m7sv%f0(u)ckn@~d2G$bNw-E0Ca zc<74eQiU8s!H~eNY>7|{+CUn1Dr<@Dsz)*Rfic*V z@#7aN>!|F<$wr%alp5AG_U2SW6gnF7Z-zplYRK=@b1W8E+0~c}w%$Je+*-H1i;mat z=~Ce9I&HI$?Ozb4)-n`m_$9RLw#%eo0OWU?2f<*F?=vOP3?Jx+>HHyD7FTThnS(qO ze;-3l@sBPxE%zf#<_ReYq-PQvN(NBbUJ7`59$x7zyDK?ZT5F^?Elmle`86d zrpEMp3~bxH%ak&%ku_h@_q4l}9oxzIqHoQ|m0OhS5h7ce$}{r-82fu)qIeW6>~I2a z2WPv>3q^vDRvh>hDSWSE@)v72Qs|NlFp`W;WP#&ybSe&VJUgCAq;DstQ{5UzBym5^ zrP7JhF_3OSM2g80k0Kz2d0D)YnU+T*a5Xvwaw0nkVlbUfa-VK|^E$sTUWljSnZ!5@ VB`3N49S{&AeANX~z?CLW{{t2T%L4!a delta 563 zcmX|-JxtqB6ot>VF|vgttO(Rpsj9ay0a8ZTj1*7@q#~v2>~2hz2ZnAj5+H@igdq%p zI6sY=pH`7Fgdrd^va!INk&y+7vG+QFZTWk?@7!~bUobI)i8;vHqz^yY2VXucZWr>K z-|>FU?t^fH;pkgCTUmdg?C_T#o~)E#1)o)z+-3Do0TDXs!;J&C8mqq_RX?K|TME~e zZH>Opb17E0&fT95*1U{Yxz}mA@?(LHP95#4d})r%8G0Gb74ln!e2U+x)R44iDh31$ z#xBpZ;4=d<;EkQ>{IQ2KvVlv?L}V;^{b)}1-M&K19P~og6M|kYq1%&wHe|-kr>^*D zK=+Ah0&Vf3G=76bH)*LNH|U64YHHLH0}j%1m`nw!)IHL2?enG(RS6{icgCVyZ+B^w5i2rb}33@uE~MQ0&? zW%S1CbU&yn9%QZV9Ou%a%N@%g)|Y(lvk{dP2e%QHoFtgf-x6>~=f&yS`EGlUw9(@Y HWq$q#&}@o` diff --git a/A2OSX.DEV.po b/A2OSX.DEV.po index 027e76b8be6a335367d050f68edb3e35d64692dd..5dbbc45ab6e8557bd009b98fa465a02fe694b7b5 100644 GIT binary patch delta 1040 zcmZ9L%TE(g6vod)BTY;sP1|V)S~WpTm;kvmEzoXE=BblTOKqnWb|%73;?@_^;+v;% zed7xs_yR>iNnCYpjQ#=iB`#dJ@lSAuc5Wt4?qc%&?)lDl=HAKIT=|-7bw~4V-3`{$ z2EW$V_B1zrL%!1>E4h@B&dhf!M+*l;l|#Us0k)wcnVWHdvlwj#hR+eqJ8%S;^8|z) zpcj}?0wN9&1?B<)Jq{oMGlo|-11))i`y5ySrhuy^9w(TSc{?Z119K6(OM#(F_H1F9 zpJ+_Mn`thSvWTP1Oml^R9tSYfTqU5_0VH6q;ptMKLCUCAl>Y{MxQ0nZ%}v!Z4YsRw*_ zfz70Zw8Gh!B4(Q2gM=U*(PUy8h0y(m)@=-?lx>H0jzh>?2wE5LT&0D2fR`&F>LLDG z2~v;n@5+AaF?Ll$!6$ZUT1eC@%{s2Q6T!YkEL8VWPx0|;ka~tkt0C$+UZ}Q?y|7E9 zem#n&tr^;jyUcD7SRzP|*WHRuhy(9S$moVRNKPRZ1K%r1soH>f=gD*e_+CRo*96JP z5m5y18;}yRAgAjipA^-Y1fI8$5pv1^`CbZmmbaxrBB|h70k(Ls3z&Dn7EYWR8n%8d z0TsFqSubiBT<_}}=v83FWZaC%*=Mgtfc}6NYd-2D-l(+Y+ESL% z(v}YUTDF#*LV&g{+;+$2>X#+*v$T zVNaYRI_}XjaOa6gc!UaEiHKg0K)?+W!E2%$MC5@R!dsWv;4smmM@zt7z=xIs!4aY* zk4^%25uaRQOP7dFc(fDeG7-HVfq=dOPT!e+%S{sFfgWuzHDePdK=^8dnfWy)j`SRC z%rK@yajYqE%W{?)$HnEnyRLzSEL&F0>E^8C$>xEC4s8>7W|=8XLd3|}x&Evzj5Vv0 zJOri)76}$1aGl^7!4d?f36=;>0F6PDZDjVjJ*1qzZh&oAYph#OiQvBpCMqCvvKb&H zf&UgL{fc1|6bI%uK31ifJ7CG`VM8OACLw$mk5)sWdrcFy2eK$?7^_jb%03?2@8fUP zF!cb}sv+tj{#)HmJ;LEyn0k!&*MigxF4Wo&JaLcbWGkAG#v5U}cwQ)PbS`-6l~U4` zj@`gR=oy}`?WCUL#agiR!mU)z^lJL9atkj2Jqvl$RtCu9rBcAmK~^`4&X0E=C?x~) z5-ih@Rl7i-0`x0TElt*Pq-z!YuOTlNP?3xXf&UEz8*G3u9ei&gQr^=8+&f&Vvzy-k z-?e?fGj%2~4-qAkc2bF}9XVe~k3;82yjbs`KH)!gx_beP0?Or$z6`0*fcXq*MNT`y Z&8Q=2`-1tO4D}Ts|NUclWp;(i`~#ZSG$jB4 diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index e8983d706e6524279053213c6e6a053eb1782f7b..f05671dc2ce23f76bd1c4fe05f6af8ce339e519a 100644 GIT binary patch delta 5739 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 delta 4185 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 SHbu4Q4x;MiBK~xdKJtGqVAtpX diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index 865d40fb..d6d35084 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -9,11 +9,11 @@ AUTO 6 .TF /A2OSX.BOOT/BIN/LSDEV *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I + .INB /A2OSX.DEV/INC/PRODOS.I .INB /A2OSX.DEV/INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN -ZPPTR2 .EQ ZPBIN+2 -ZPPTR3 .EQ ZPBIN+4 +BlkDevCmd .EQ ZPBIN+2 $42 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -35,15 +35,30 @@ CS.START cld .DA CS.QUIT L.MSG0 .DA MSG0 L.MSG1 .DA MSG1 +L.MSG2 .DA MSG2 +L.MSG3 .DA MSG3 +L.RAM .DA RAM +L.DISK2 .DA DISK2 +L.GENERIC .DA GENERIC .DA 0 *-------------------------------------- -CS.INIT >LDYAI DevMgr.Table - >STYA ZPPTR1 - stz DEV.ID - - >LDYA L.MSG0 +CS.INIT jsr DumpA2osXDev + bcs .9 + + jsr DumpProDOSDev + bcs .9 + + lda #0 tell TSKMGR that all done ok, but +.9 sec we do not want to stay in memory + rts +*-------------------------------------- +DumpA2osXDev >LDYA L.MSG0 >SYSCALL CPrintFYA + >LDYAI DevMgr.Table + >STYA ZPPTR1 + stz DEV.ID + .2 lda (ZPPTR1) cmp #$D8 bne .8 @@ -79,9 +94,163 @@ CS.INIT >LDYAI DevMgr.Table lda DEV.ID cmp #K.DEV.MAX bne .2 + +.8 clc + rts +*-------------------------------------- +DumpProDOSDev >LDYA L.MSG2 + >SYSCALL CPrintFYA -.8 lda #0 tell TSKMGR that all done ok, but -.9 sec we do not want to stay in memory + stz DEV.ID + +.1 ldx DEV.ID + inc DEV.ID + + cpx DEVCNT + bne .11 + + clc + rts + +.11 lda #1 + sta Drive + + lda DEVLST,x + bpl .2 + + inc Drive + +.2 and #$F0 + lsr + lsr + lsr + tay Y = DSSS*2 + + lsr + and #$7 + sta Slot + +* lda DEVPTRS,y +* sta ZPPTR1 + stz ZPPTR1 + lda DEVPTRS+1,y + sta ZPPTR1+1 + + cmp #$C1 + bcc .1 3rd Party Driver loaded in RAM... + + cmp #$C8 + bcs .4 In ProDOS Space.../RAM or DisK II + + ldx #SmartPort.SIG-SmartPort.OFS + +.3 ldy SmartPort.OFS-1,x Check if there is a smartport firmware + lda (ZPPTR1),y + cmp SmartPort.SIG-1,x + bne .6 not a smartport...go check $CnFE + dex + bne .3 + + jsr GO.SmartPort Perform a Smartpot STATUS call + bcs .1 + + jsr PrintDevStatus + + jmp .1 + +.4 cmp #$ff RAM ? + bne .5 + >LDYA L.RAM + bra .7 + +.5 >LDYA L.DISK2 + bra .7 + +.6 >LDYA L.GENERIC + +.7 >STYA .71+1 + ldy #16 +.71 lda $ffff,y + sta UsrBuf256+S.SPSTAT.NAME,y + dey + bpl .71 + + >DEBUG + +* jsr GO.BlockDev + bcs .8 + stx UsrBuf256+S.SPSTAT.BLKNUM + sty UsrBuf256+S.SPSTAT.BLKNUM+1 + stz UsrBuf256+S.SPSTAT.BLKNUM+2 + + jsr PrintDevStatus + +.8 jmp .1 +*-------------------------------------- +S.SPSTAT.STATUS .EQ 0 +S.SPSTAT.STATUS.BLK .EQ %10000000 +S.SPSTAT.STATUS.WRT .EQ %01000000 +S.SPSTAT.STATUS.RD .EQ %00100000 +S.SPSTAT.STATUS.ONL .EQ %00010000 +S.SPSTAT.STATUS.FMT .EQ %00001000 +S.SPSTAT.STATUS.WRP .EQ %00000100 +S.SPSTAT.STATUS.IRQ .EQ %00000010 +S.SPSTAT.STATUS.OPN .EQ %00000001 +S.SPSTAT.BLKNUM .EQ 1 +S.SPSTAT.NAME .EQ 4 +S.SPSTAT.TYPE .EQ 21 +S.SPSTAT.SUBTYP .EQ 22 +S.SPSTAT.VER .EQ 23 +S.SPSTAT .EQ 25 +*-------------------------------------- +GO.BlockDev stz BlkDevCmd + jmp (ZPPTR1) +*-------------------------------------- +GO.SmartPort ldy #$ff + lda (ZPPTR1),y + + inc + inc + inc + sta .2+1 Entrypoint Offset=+3 + + lda ZPPTR1+1 Get $Cn + sta .2+2 + + and #$0f + cmp Slot Driver Slot match Dev Slot ? + beq .1 yes... + + inc Slot + inc Slot + inc Slot + inc Drive no... + inc Drive Must have been remapped by ProDOS + +.1 stz .3 CMD=Status + lda Drive + sta SMP.Params+1 UnitNum + +.2 jsr $ffff +.3 lda SMP.Params will be relocated + rts +*-------------------------------------- +PrintDevStatus + ldy #S.SPSTAT.BLKNUM + lda /UsrBuf256 + >PUSHYA + + ldy #S.SPSTAT.NAME + lda /UsrBuf256 + >PUSHYA + + >PUSHB Drive + >PUSHB Slot + >PUSHB UsrBuf256 STATUS + >PUSHB Dev.ID + + >LDYA L.MSG3 + >SYSCALL CPrintFYA rts *-------------------------------------- CS.RUN @@ -89,10 +258,27 @@ CS.EVENT CS.QUIT clc rts *-------------------------------------- -CS.END +CS.END +SmartPort.OFS .HS 01030507 +SmartPort.SIG .HS 20000300 +DiskII.OFS .HS 010305FF +DiskII.SIG .HS 20000300 MSG0 >CSTR "ID Flags Name Address\n" MSG1 >CSTR "%03d %b %4S $%H\n" +MSG2 >CSTR "ID Flags Name Description Size\n" +MSG3 >CSTR "%03d %b S%dD%d %S %L\n" +RAM >PSTR "ProDOS Ram Disk " +DISK2 >PSTR "Apple Disk ][ " +GENERIC >PSTR "Generic Blk Dev " +*-------------------------------------- +SMP.Params .DA #3 Param Count + .BS 1 unitNumber + .DA UsrBuf256 + .DA #3 Return DIB +*-------------------------------------- DEV.ID .BS 1 +Slot .BS 1 +Drive .BS 1 MAN SAVE BIN/LSDEV.S ASM diff --git a/INC/PRODOS.I.txt b/INC/PRODOS.I.txt index 964d6bf4..f42bef91 100644 --- a/INC/PRODOS.I.txt +++ b/INC/PRODOS.I.txt @@ -117,6 +117,7 @@ DATETIME .EQ $BF06 SYSERR .EQ $BF09 SYSDEATH .EQ $BF0C SERR .EQ $BF0F +DEVPTRS .EQ $BF10 *DEVPTRS0D1 .EQ $BF10 *DEVPTRS1D1 .EQ $BF12 *DEVPTRS2D1 .EQ $BF14 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 9b5178c5..8de8d562 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -29,6 +29,13 @@ AUTO 6 * A = Param Count *-------------------------------------- jmp A2osX.MLICALL1 +*-------------------------------------- +* BLKCALL (AUXLC to MAINLC) +* Used by Kernel +* In: +* Y,A = Ptr To Param Block +*-------------------------------------- + jmp A2osX.BLKCALL1 *-------------------------------------- .BS $BE10-* *-------------------------------------- @@ -90,6 +97,8 @@ A2osX.MLICALL1 stx .1 jsr GO.A2osX rts *-------------------------------------- +A2osX.BLKCALL1 +*-------------------------------------- GO.ProDOS lda $D000 We re coming from AUXLC, saving bank... sta GO.A2osX.BNK+1