From 93ec92c91b73a76f87d8f1eb975054778101436c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 20 Nov 2017 17:45:12 +0100 Subject: [PATCH] Kernel 0.9.1 : GUI, API & Driver......RECT & BitBLT --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/DHGR.DRV.S.BLT.txt | 68 ++++++++- DRV/DHGR.DRV.S.PIX.txt | 2 + DRV/DHGR.DRV.S.txt | 168 +++++++++++++++++++++-- INC/GFX.EVE.I.txt | 28 ++++ INC/IO.I.txt | 7 +- INC/KERNEL.I.txt | 3 +- INC/{NET.8900A.I.txt => NIC.8900A.I.txt} | 2 +- INC/{NET.91C96.I.txt => NIC.91C96.I.txt} | 2 +- INC/{NET.W5100.I.txt => NIC.W5100.I.txt} | 2 +- 11 files changed, 259 insertions(+), 23 deletions(-) create mode 100644 INC/GFX.EVE.I.txt rename INC/{NET.8900A.I.txt => NIC.8900A.I.txt} (96%) rename INC/{NET.91C96.I.txt => NIC.91C96.I.txt} (94%) rename INC/{NET.W5100.I.txt => NIC.W5100.I.txt} (94%) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index b486f7637aec7f9408d1925c0c2dac97fc405568..da92786131f8ccbd066c705ee9f0dcf23c97c1d5 100644 GIT binary patch delta 3057 zcmcgteN0=|6~Fh{7-MWOp%|MF?HK|Fd?B_8#;~OcCI(Z$HV%X&%ZC~90#QveLfSMU zGpLx7EJjHz?Ga6_*i?vvY!pB$Vv4B)=|(2jph?p#RhqJ9&1egqtEy{Ov9NpnL7c3A zWYVl+?7|n5P1Ni7p3mGZ)Ar&6cWE-EOMyklI4!l^K&<3?(4ws{g*tL?%kBH zaHmzfw#lxkEYqq&d$uHM9SK=pfD90wB$s=xwtzQDp$jCHkEEKbFXZtiyqk78kLUK) z%YvyDCuGhAe2Wq^>rZ{50!@ zqTh>AP~a<&IkS-6CzUy~kp;7MVMmC#E9}Buj&vXIw~O?O;G!_d!e(LeMDIzd1;1st zZ^-a&y#0-AN>waDcuu}9RGfhX3+Sq96~DVd(JjRm2V-IH%G#E1N@Xw3iUwwf1OG>f zUofxzzn<|6CVs)Zk{Ah}Rboc8{3SKLl2-sluKdRx!d@P@kW-q3KdS?sJ-LZVGw(d6 zTd4AvnXejQ8Be_%R5zHb460$K)Bua&9;VFz%c$}y=1*iSt!Dg25yQ*OZ; z0v~4nf?;@sd4enC9}Tf06_i^Qw4?&}Sa>#jEwkS@!w=x><~|sIuCA`Sq_s?`P?XdG ze0;kK;=qk~(31;=SpS2s5~CN$4Vb2>P$;S*v~|D*Z}KsXBD4!9u)!FY;rU$5t58-~ zs3SZ8u8$HJy)B%Daiti+`Z6k3WGF z`){9q_W2B?HsCl#amGKyp0zLj9-M^_;0Ao}4=|ZOo4g9SqS^F6!%yM66gB=a`!4iZH+)V(^N%=l^={xv7im!y6wVd^wlexmYH@3_2rt^6DKg$1g z{s-uU49j;$>gkq>EzXDYqkt@y8Wqmpmn%4L1OHOr*Edme|sJSX!w_69*IK^aY)D^9_ZTx%z_6?ej)#)E3Ow7g~lF z(B(zsyo*M`NM8#6$JrKb9kzK+CMg0xdej;RlNXY)mek>T^ zCWQA-HV^0wdULhOtg9_C*3`Te*{)i}Kr6^fj0FwR9jH}eES(SZW+e%^77bBhw@46n z8-|J3jz37+Qo>HcZq+mForIknc8A%7Tt>)3>@9tUtS01?u=^>w9D60(K=XlSrJB&A z-$1Pf1L9QBY!4%b=vPKtfq|@-NJOn!r!$bCtyNWFEHfBSrPL3!dr4Ap2sG>Vk$NFv$WnC}%8)#T440xp)?kF2!Td6wQjRaNl3YUS9y8U% jGGb$OFu)oNum=Nig8|N9Abv2w9SkH426*FvMEAb|hxHf_ delta 2366 zcmb_eYfMvD96#sY7RpONKq}7d0_6htgjz0A3JLNO2OG4dA}CYWC3Ayq)!@wB2w2=` zgU)Mse7LCD!Uw@pS|X4@npo0hTZS(rGa>!34<=3o1XrdmXdLd`K8P_}LblzTd(XM& z_xnH2`JbHMZEa;+TiMHVBGJ+0ZL!^pq8?FWa(qO0ySR~TOqPv47Z(N*Q8A-C!c`YG z27~Kiz?rlqG8x~l=|bBlf6YqiLPkQQt!7~W?>L#2ij zlxe%&NHqXcHa0$;PFjYy2RtnMJm_(Zt8n@=?87$4P{t|B;#j3QD{>6cmUF;mzsGnA zu)FCuFkkAZNjF%LiFIsZOj#pr{${$1z44Hl?3mTR0&S)K5jyY^geRb$XFd`hi$k3n zY8+Z%T58fwtW${K(4~cjTD_C8ICZoqCik$A8n?%VV=L(hE9zqBCSOLXUqWVI!PaAC z>|*uyCyebeW6Eh$_683t&#f@+Q7e5)X@kV1>>y@y><<{c6hluLYKbcAkseZ-l=WqY za!ffrhE>L-syDn~Ou2YoW$D3OKdKK*PiV`$Y{5zWA(csmJGp%l)jbhsL46_j#M}Tf z_C;I_$6Mg+CDa!#HCT|PFTyZ@a7m?l>Tx0tjF;OJHd#lVmo?$;^b@_ma#Ivu8UN0i zq7qa~R%G?1iu0`Njpw|6S^6y^csOr<%9oN}5YkavhgHv#fQIE~wAPK2CkG$%%S z%*w~#UShs)2v^x(eY`PFQPUBpqC6z-rbk+vk5PKO%dQO3c-vfArH9!Jh;UBM8k9jG zT&qrY4)0yhrpt;o4#s?=(~G__qt8$jFckX?|GVRL`ZWduuRG&)I$o#W*GUvuiobI_ z8hLY>=?nUp3rLl0=VwyF%?DvUczn)G(9C zDd1g|Fgq-#5HKYbx*|2(#lNV88L)`YP{VAZpqQUh!+avAgnwW7F5JmSXkY=m3ozA1 z+R}1$m%OyF&^CvWLbKF~i(H65E0W1p} zsp zf3OP1D{FyHr>U&f6;&3i-)7tWAyhcL4oLTUK>;`u09YJ*>pp(43cj|v4#Qr%%r#gg z!0+&PFbwzef8q%A0WZrRA#*K4u@FIW(3j25cgOQ|@JBdS4TC-}FRhlVautdqc{#w> zvpFCEUxnj(ghb(bw0tOZngLQ{T5e`ZuF_BQ05MPoVOpp_yJo;0UULIBC1YM~cBVq% z=K&}Nmx2SleV_CsWo_gaZ@}X;sH`ZLm-=Yl$n#JHu8BZhvRu#_<&nB%GO8J?%kh3U zB!chHFFaUWdN>M+r*P~S7#ThuxeAw|=(pwHAK}60u%94;#^zxBrt$bGI1eupME}n) z$SfiHC1e@@R7=i81cP7@0>bbe17fh}DgNpVsflz~#8U4;01`nV(1NRcWFbNEJvuVl z=x)|hLT>nabJtz~zNEsP!p-6KG&O+VgZPO}e3bY&u`wxL)|xDrIb_i(4JqHH*wJAc z0DB8%Yo?@n?(PJqb#XcuSL@<{i>r2VCtTb?*8s`gnULzGdQ)bbLcpMFL}9%$!wf6V z{c02rZ|XWe^ITGW^9NL(B2MZFacEK-$|rWG=^eV%2H8Xn?x<5IbZPptR&-_%aW>Qo zdRn9L>24TAmU@E?Z5Tvy8&X@*<%Q`-f@We}-nDk}3X)kT=;Ie_$77REKaE}ijS~b^ z;@3<42cB~oe30TvEorC3QJca zwZca?k+Jamak`0|f&G)@2L9HkMCRBr@)k6^NwZsIc8ksKAhSEz?3S3_A!c`IzdOwG E7a$vVaR2}S diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 35fceead4e2e0ebba28e0bb594eae14f4c102b07..56e7a375b16206bf27106ac1632ef513373a4c79 100644 GIT binary patch delta 6709 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 J%N1pr{{y+trSt#* delta 5725 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 CB.CACHE+S.CB.SrcPtr adc BLT.DX+1 jsr LBUF.SetBounds2YA +.5 lda BLT.BMBitOfs + sta BLT.BMBitOfsL +.6 jsr BLT.Get7BMBits + clc rts *-------------------------------------- -BLT.Get7BMBits +* BMD/BMM bits : +* 76543210 76543210 +* ^ +* BMBitOfsL (0->7) +* LBUF DATA/MASK Bits +* c6543210 c6543210 +* ^ +* SCRBitOfsL (0->6) *-------------------------------------- +BLT.Get7BMBits ldx BLT.BMBitOfsL + + lda + + sta ZPBMShiftPtr+1 + + lda (ZPBMDataPtr) + and ShiftML,x Get only needed bits + + tay + + lda (ZPBMShiftPtr),y + sta GBYTE + + + inc ZPBMDataPtr + bne .1 + inc ZPBMDataPtr+1 + +.1 lda (ZPBMDataPtr) + and ShiftMH,x + tay + + lda (ZPBMShiftPtr),y + ora GBYTE we have the 7 0xxxxxxx DATA bits + + + ldx + tay + lda Shift.LO + + + + rts +*-------------------------------------- +ShiftML .DA #01111111 + .DA #11111110 + .DA #11111100 + .DA #11111000 + .DA #11110000 + .DA #11100000 + .DA #11000000 + .DA #10000000 + +ShiftMH .DA #00000000 + .DA #00000000 + .DA #00000001 + .DA #00000011 + .DA #00000111 + .DA #00001111 + .DA #00011111 + .DA #00111111 + +*-------------------------------------- + MAN SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT LOAD /A2OSX.SRC/DRV/DHGR.DRV.S diff --git a/DRV/DHGR.DRV.S.PIX.txt b/DRV/DHGR.DRV.S.PIX.txt index d312540b..45c07923 100644 --- a/DRV/DHGR.DRV.S.PIX.txt +++ b/DRV/DHGR.DRV.S.PIX.txt @@ -51,6 +51,7 @@ SETPIXEL.MONO.BLACK SETPIXEL.MONO.WHITE lda (ZPBasePtr) + and #$7f Clear Color Bit ora Mono.Masks,x sta (ZPBasePtr) @@ -58,6 +59,7 @@ SETPIXEL.MONO.WHITE SETPIXEL.MONO.XOR lda (ZPBasePtr) + and #$7f Clear Color Bit eor Mono.Masks,x sta (ZPBasePtr) diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index b959312d..9dfa59ef 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -10,7 +10,9 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I + .INB /A2OSX.BUILD/INC/PRODOS.I .INB /A2OSX.BUILD/INC/IO.I + .INB /A2OSX.BUILD/INC/GFX.EVE.I .INB /A2OSX.BUILD/INC/LIBGUI.I *-------------------------------------- ZPCmdPtr .EQ ZPDRV @@ -19,6 +21,8 @@ ZPPalettePtr .EQ ZPDRV+4 ZPBMDataPtr .EQ ZPDRV+6 ZPBMMaskPtr .EQ ZPDRV+8 ZPBMSavePtr .EQ ZPDRV+10 +ZPBMShiftPtr .EQ ZPDRV+12 +ZPSCRShiftPtr .EQ ZPDRV+14 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -35,16 +39,78 @@ CS.START cld * Relocation Table *-------------------------------------- L.MSG.DETECT .DA MSG.DETECT +L.MSG.DETECT.IIC .DA MSG.DETECT.IIC +L.MSG.DETECT.EVE .DA MSG.DETECT.EVE +L.MSG.DETECT.80C .DA MSG.DETECT.80C .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >LDYA L.MSG.DETECT >SYSCALL PrintF.YA + lda MACHID + and #MACHID.T + cmp #MACHID.T.IIc + bne .1 + + lda #$80 + sta DSTAT+S.DSTAT.ST $80=//c + + >LDYA L.MSG.DETECT.IIC + + bra .3 + +.1 php + sei + + sta SET80STORE + + sta SETPAGE2 + ldx $400 Save Aux $400 + + lda #$ff Make sure !=1 for comparing later + sta $400 + + sta CLRPAGE2 + ldy $400 Save Main $400 + + lda #$01 Select Foreground/BKgrnd Colors + sta TXT16.ON Activate 16 color mode + + sta $400 Store something in Main + + sta SETPAGE2 + + eor $400 read back AUX, If EVE, must be F/BG colors + bne .2 + + dec + sta DSTAT+S.DSTAT.ST 0=80C,$ff=EVE + +.2 stx $400 Set back Aux $400 + sta CLRPAGE2 + sty $400 Set back Main $400 + + sta CLR80STORE + + plp + + + >LDYA L.MSG.DETECT.EVE + + bit DSTAT+S.DSTAT.ST + bmi .3 + + >LDYA L.MSG.DETECT.80C + +.3 >SYSCALL PrintF.YA clc rts *-------------------------------------- CS.END MSG.DETECT >CSTR "Apple IIe/IIc DHGR Driver.\r\n" +MSG.DETECT.IIC >CSTR "Apple //c detected, Assuming 'Le Chat Mauve' Mode.\r\n" +MSG.DETECT.EVE >CSTR "'Le Chat Mauve EVE' Board Detected.\r\n" +MSG.DETECT.80C >CSTR "No Specific H/W Found, Assuming 80c Mode.\r\n" *-------------------------------------- * Device Header (16 Bytes) *-------------------------------------- @@ -91,23 +157,22 @@ STATUS >LDYA L.DSTAT *-------------------------------------- OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A *-------------------------------------- -CONTROL sta CLRTEXT - sta CLRMIXED - sta SETHIRES - sta CLR80STORE - sta CLRPAGE2 - sta SETIOUDIS - sta SETDHIRES +CONTROL ldy #0 -* sta CLR80DISP -* sta SETDHIRES -* sta CLRDHIRES -* sta SET80DISP -* sta SETDHIRES -* sta CLRDHIRES -* sta SETDHIRES + bit DSTAT+S.DSTAT.ST + bmi .1 //c,EVE mode + + ldy #CONTROL.LCM-CONTROL.80C + +.1 ldx CONTROL.SWTCHES,y + bmi .8 Ending $ff + + sta $C000,x - lda #3 + iny + bra .1 + +.8 lda #3 sta A2osX.ASCREEN clc @@ -208,6 +273,77 @@ DRV.CS.END *-------------------------------------- .INB /A2OSX.SRC/DRV/DHGR.DRV.T *-------------------------------------- +CONTROL.SWTCHES +* sta CLRTEXT +* sta CLRMIXED +* sta SETHIRES +* sta CLR80STORE +* sta CLRPAGE2 +* sta SETIOUDIS + +CONTROL.80C +* sta CLRMIXED STA $CO52 ;Full Screen +* sta SETHIRES STA $C057 ;HIRES +* sta CLRTEXT STA $C050 ;Graphics +* sta CLR80DISP STA $C00C ;80 Columns OFF +* sta SETDHIRES STA $C05E ;AN3 OFF +* sta CLRDHIRES STA $C05F ;AN3 ON +* sta SETDHIRES STA $C05E ;AN3 OFF +* sta CLRDHIRES STA $C05F ;AN3 ON +* sta SET80DISP STA $C00D ;80 Columns ON +* sta SETDHIRES STA $C05E ;AN3 OFF +* sta CLRDHIRES STA $C05F ;AN3 ON +* sta SETDHIRES STA $C05E ;AN3 OFF + + .DA #CLRTEXT + .DA #CLRMIXED + .DA #SETHIRES + .DA #CLR80STORE + .DA #CLRPAGE2 + .DA #SETIOUDIS + + .DA #CLR80DISP + .DA #SETDHIRES + .DA #CLRDHIRES + .DA #SETDHIRES + .DA #CLRDHIRES + .DA #SET80DISP + .DA #SETDHIRES + .DA #CLRDHIRES + .DA #SETDHIRES + .DA #$FF + +CONTROL.LCM +* sta CLRTEXT +* sta CLRPAGE2 +* sta CLRMIXED +* sta SETHIRES +* sta CLRAN2 +* sta CLR80DISP +* sta SETDHIRES +* sta CLRDHIRES +* sta SET80DISP +* sta SETDHIRES +* sta CLRDHIRES +* sta SETDHIRES + + .DA #CLRTEXT + .DA #CLRMIXED + .DA #SETHIRES + .DA #CLR80STORE + .DA #CLRPAGE2 + .DA #SETIOUDIS + + .DA #CLRAN2 + .DA #CLR80DISP + .DA #SETDHIRES + .DA #CLRDHIRES + .DA #SET80DISP + .DA #SETDHIRES + .DA #CLRDHIRES + .DA #SETDHIRES + .DA #$ff +*-------------------------------------- CB.CmdLen .DA S.CB.Y1+1 SETPIXEL .DA S.CB.Y1+1 GETPIXEL .DA S.CB.X2+1 HLINE @@ -229,7 +365,9 @@ LBUF.MASK .BS 80 LBUF.DATA .BS 80 *-------------------------------------- BLT.BMBitOfs .BS 1 +BLT.BMBitOfsL .BS 1 BLT.SCRBitOfs .BS 1 +BLT.SCRBitOfsL .BS 1 BLT.DX .BS 2 *-------------------------------------- GBYTE .BS 1 diff --git a/INC/GFX.EVE.I.txt b/INC/GFX.EVE.I.txt new file mode 100644 index 00000000..b7a88068 --- /dev/null +++ b/INC/GFX.EVE.I.txt @@ -0,0 +1,28 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +* Le Chat Mauve : EVE +*-------------------------------------- +ENHRCPREG.OFF .EQ $C0B0 W +ENHRCPREG.ON .EQ $C0B1 W +HR1.OFF .EQ $C0B2 W +HR1.ON .EQ $C0B3 W +HR2.OFF .EQ $C0B4 W +HR2.ON .EQ $C0B5 W +HR3.OFF .EQ $C0B6 W +HR3.ON .EQ $C0B7 W +TXT16.OFF .EQ $C0B8 W +TXT16.ON .EQ $C0B9 W +TXTGREEN.OFF .EQ $C0BA W +TXTGREEN.ON .EQ $C0BB W +LOCKCPREG.OFF .EQ $C0BC W +LOCKCPREG.ON .EQ $C0BD W +LOCKRES.OFF .EQ $C0BE W +LOCKRES.ON .EQ $C0BF W +*-------------------------------------- +MAN +SAVE /A2OSX.BUILD/INC/GFX.EVE.I diff --git a/INC/IO.I.txt b/INC/IO.I.txt index 71810f40..a6c27540 100644 --- a/INC/IO.I.txt +++ b/INC/IO.I.txt @@ -59,12 +59,13 @@ SETHIRES .EQ $C057 W *CLRAN0 .EQ $C059 W, Set annunciator-0 output to 1 *SETAN1 .EQ $C05A W, Set annunciator-1 output to 0 *CLRAN1 .EQ $C05B W, Set annunciator-1 output to 1 -*ENBVBLIIC .EQ $C05B W, Enable VBL switch (IIc) *SETAN2 .EQ $C05C W, Set annunciator-2 output to 0 -*CLRAN2 .EQ $C05D W, Set annunciator-2 output to 1 +CLRAN2 .EQ $C05D W, Set annunciator-2 output to 1 *SETAN3 .EQ $C05E W, Set annunciator-3 output to 0 -SETDHIRES .EQ $C05E W, if IOUDIS Set, turn on double-hires *CLRAN3 .EQ $C05F W, Set annunciator-3 output to 1 + +*ENBVBLIIC .EQ $C05B W, Enable VBL switch (IIc) +SETDHIRES .EQ $C05E W, if IOUDIS Set, turn on double-hires CLRDHIRES .EQ $C05F W, if IOUDIS Set, turn off double-hires *TAPEIN .EQ $C060 R diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 01f75697..92481b3c 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -113,7 +113,8 @@ K.STACKTOP .EQ $0F20 down to $0f00 Z80STACK .EQ $0FFF (0FFFFh) Down to $0F20 Z80JMP .EQ $1000 (00000h) Up To $10FF *-------------------------------------- -* free $1100->15FF = $500 +* free $1100->$15FF = $500 Main +* free $0C00->$17FF = $C00 Aux *-------------------------------------- Dev.Table .EQ $1600 K.DEV.MAX*S.DEV=32*16=512b *-------------------------------------- diff --git a/INC/NET.8900A.I.txt b/INC/NIC.8900A.I.txt similarity index 96% rename from INC/NET.8900A.I.txt rename to INC/NIC.8900A.I.txt index 944bc69e..6baa59f8 100644 --- a/INC/NET.8900A.I.txt +++ b/INC/NIC.8900A.I.txt @@ -98,4 +98,4 @@ PP.RxFrame .EQ $0404 PP.TxFrame .EQ $0A00 *-------------------------------------- MAN -SAVE /A2OSX.BUILD/INC/NET.8900A.I +SAVE /A2OSX.BUILD/INC/NIC.8900A.I diff --git a/INC/NET.91C96.I.txt b/INC/NIC.91C96.I.txt similarity index 94% rename from INC/NET.91C96.I.txt rename to INC/NIC.91C96.I.txt index 096b11a2..efb05b13 100644 --- a/INC/NET.91C96.I.txt +++ b/INC/NIC.91C96.I.txt @@ -63,4 +63,4 @@ L91C96.3.RCV .EQ $C08C L91C96.BSR .EQ $C08E *-------------------------------------- MAN -SAVE /A2OSX.BUILD/INC/NET.91C96.I +SAVE /A2OSX.BUILD/INC/NIC.91C96.I diff --git a/INC/NET.W5100.I.txt b/INC/NIC.W5100.I.txt similarity index 94% rename from INC/NET.W5100.I.txt rename to INC/NIC.W5100.I.txt index bafd61f1..73c618c1 100644 --- a/INC/NET.W5100.I.txt +++ b/INC/NIC.W5100.I.txt @@ -77,4 +77,4 @@ RX.BASE .EQ $6000 RXTX.MASK .EQ $1FFF *-------------------------------------- MAN -SAVE /A2OSX.BUILD/INC/NET.W5100.I +SAVE /A2OSX.BUILD/INC/NIC.W5100.I