From 23672eef5c67e3bb0ed0ba5e4033be89abcec6a4 Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sat, 26 Mar 2016 18:24:14 +1100 Subject: [PATCH] Text work in progress --- 024.simple_text/Makefile | 2 +- 024.simple_text/blit.s | 90 +++++++++++++++++++++++++++++----- 024.simple_text/simple_text.s | 25 +++------- assets/font.png | Bin 0 -> 6219 bytes 4 files changed, 86 insertions(+), 31 deletions(-) create mode 100644 assets/font.png diff --git a/024.simple_text/Makefile b/024.simple_text/Makefile index 4940b17..b1c8082 100644 --- a/024.simple_text/Makefile +++ b/024.simple_text/Makefile @@ -19,7 +19,7 @@ include ../shared/base.mk out/%.bin: ../assets/%.png - $(IMAGECON) --input $< $(IMAGECON_ARGS) --output-bitplanes --output-palette-asm --output-palette --output out/$* --colors=16 --use-palette palette.pal --output-mask + $(IMAGECON) --input $< $(IMAGECON_ARGS) --output-bitplanes --output-palette-asm --output-palette --output out/$* --colors=16 --use-palette palette.pal --full-color-palette-file --output-mask --transparent-color=0,0,0 out/main.o: $(IMAGEDATA) constants.i Makefile link.script.x palette.pal out/init.o: constants.i Makefile \ No newline at end of file diff --git a/024.simple_text/blit.s b/024.simple_text/blit.s index be994fc..d8f8f3e 100644 --- a/024.simple_text/blit.s +++ b/024.simple_text/blit.s @@ -1,5 +1,5 @@ include "includes.i" - xdef blitObject64 + xdef DrawText ;; BLTCON? configuration ;; http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node011C.html @@ -26,7 +26,7 @@ BLIT_SRCA equ $800 BLIT_ASHIFTSHIFT equ 12 ;Bit index of ASH? bits BLIT_BOB_WIDTH equ 32 ; Must blit extra word to allow shifting -BLIT_BOB_HEIGHT equ 12 +BLIT_BOB_HEIGHT equ 10 BLIT_BOB_WIDTH_BYTES equ BLIT_BOB_WIDTH/8 BLIT_BOB_WIDTH_WORDS equ BLIT_BOB_WIDTH/16 @@ -40,23 +40,34 @@ blitWait: ;; blitobject ;; d0 - xpos ;; d1 - ypos + ;; d3 - odd character ;; a0 - display ;; a1 - object ;; a2 - mask -blitObject64: +blitText: movem.l d0-a6,-(sp) bsr blitWait ;; d0 = XPOS ;; d1 = YPOS + ;; d3 = odd character ;; d4 = XPOS_BYTES move.w d0,d4 ; d4 = XPOS lsr.w #3,d4 ; d4 = XPOS_BYTES - if 1 + cmp.b #1,d3 + bne .evenChar +.oddChar sub.w #8,d0 - endif + move.w #$00FF,BLTAFWM(a6) ; no mask for first word + move.w #$0000,BLTALWM(a6) ; mask out last word + sub.l #1,a0 + bra .continue +.evenChar: + move.w #$ff00,BLTAFWM(a6) ; no mask for first word + move.w #$0000,BLTALWM(a6) ; mask out last word +.continue: ;; this shift will give us the bits to shift (bits 0-3) in bits (12-15) of d0 lsl.w #8,d0 ; BLIT_SOURCE_SHIFT<an6lC3DKMjFO7Xg$$Ks&9T%hC8yL# zksMRUTo`jHH?Z8wRHig{zz{`6MHbnY*XNw)!~5y|^nUEa{pGsu^E>Cdum822b3Zuc z53^Xcc@+QvusD9~@M!?R=+)H3pP@OioEMe1#8(XT$agpH z%OYEf*;G2@p7_c|thlll`$c+XAd%-@~Db{BRAz8frk^`tHLU0my%{lQWx*sS?M{e|a}j@#PE zz&xpNVrKvIPx$!5I!$BzF$M89-D7T=FeST}wR?rGF#BoZhStOsa{kdn3L)Q6IeOy9 zWt(npo;Xh4^GAW@1()%V$f7Cs$u%3@`+z5HM4E)tFN}w)9^SsoIB#AW@F)#Fyt{5j zqz-87*+`%h?z@#HkeL=$KP=z*?APR`RetA|t-ZSQpgGTG@J30ZrTO0VxL59m-Zf4WJK>Z`8ht-%TMvd_Ox*N&*XIPL5nP|M#$s}Jf?Bh(_@UWJqH=F2g%AV~7&c1Lhm z!)xD`*@$x(?3vAx=HoUCpQ&vR+U#V}5*+6cXVHEKn1`$%ZTGqQ=&9Rp%C|wX{GT)76Q{#|3lr1o=-z-m`Q=IIW`^6YtmiXRDS!Pd>4R_jjlksL z$lxu@#auZ>p0l^X%KE|{Sgv+WGZQMA)$ZY^R|B$a?ydYM z8OI2#$NH4B3YKQ?9g@CpdbAZ&Cft3u#vM#!@x(Fxkb}lj04j}a@`6q{bLz4I4FFiH zj~_nt+Z~g+oP^u9u=M5SX?i0OXx@9!fqB~8k1oh+TolB?^+eY)iODGcY6T}?J`1abKCvg~*!Kd7FLG=-9v znN3xGVzD0gQrdmNC}}njU(Jjw7q)UEz2`y7#zJ2FRgvav10!b1rOl%g2XOwgoTFVR z#*z#Ff4b_m7*iH$ne)bjMMoWh)tyHyBTzyqjb8O^9>$C+)jvAY(G%YeZ_+Jze5v>M z*QK;@2Ly@z7^J<>OF24QY=x5Nu|{rET$K4pA)zoE2mvW}t%z1FW?qCrZcI?p=VnJS zRnUir7?}jlS?#8W=``6RI!^r!^D>r}t6H1PS)ITp`>@n(V2vZOji{aA5Xu`jx7S<-d^I{=hI9BcK0{cC7nc z$zD7`H|V=)D33cnZDS`1{|hE0{D(E}f4cxl7iB{9-Y8SFVeR(1FMk)9Z;#Xf)mw+Y zT!5TDiKfEdG;grXnY|W_o-|m10TqJ*$t);C=ry#xlHEt?y9UHt~Lb2 z(b)g$M}3U*DS{8+Y)OF~>EZ%hTL!W{ZqDC;;%n_ddDv+8aAgi8q{Wy4zOJL`R9%B4 z7c>>pngyu=OE{=@<>*95vDS}X@eSehUqUCR2CNoxu>1ygfS0nK>9BAez|8bIe$aH? zpx;MLBnJ9Mj89rms!4#s|nrK*eM-rTUp*D(+BCuzt=rz**^MSPD zH21YFb&MM*Nf2)0eX)>+msZ8mRQ48I!YQTt0Owk;r+QaW#}!o57vN%ph@FGe51#vc zv)n3fUR5E=;Q`p&0OfKf1GB*)y&OM4Fj!C#Dc%9F!q4nm^Qq8ZcyNKvJyljO2sRg())?Zsuh;2HNBer)@cvg`Wk*!a()WvyD>_#Sq z>oYopuUxu$s{)@g(NltiJE_y9LAKa2SVb5#RqU#=HgYpZ1rxrPW^>Q8bwze$=~9Z5 ztz3CTA_!pp7IbREvc5V;a~h^xzbA%&z5(j0>L14V^5S=(Qtg#p;JH};_(@JKYU?a^ zph^YOc7a9Dah}ECKitG#Qt#J=ZwN25xPMgRdNVB_PABWjDyGSk*i7LG=%Ex0df%U$;|0li{Z(&4_|C<@6kKpRpArERzqgv3BCk>TE`?ggL2F_xjKPu| z&o~0`Yv6nZ=Oa|SBgq|7`b1dJU!}Yv<^GFRRAKXxmb_Ai%3eb%DijFv`9c0SH5Q~{Khr@KY^iZvK5`@hA}{{L5sj? zEK-zLpaLtEZ>hySKy^uj$cIMc@iJp{AI^Aam_3ArIpMHUcY{ca4k`7Plm#kvwh7s~ zwa6B%iZL^t z7vLNmj5i3dMcsH0x|%-3)23H7B8Cjt0XBnXZ$!<6YZ7l`0N1H0bfF}c^iPp~18N?h zwK}>?<~LY}n!)xok))glEkb9ea0b#!?0-HecUO3$MYT+rqcS529{j)_E}h$KXsrqr zGqH*d@N}?Ygvedf>~tW6Tx;^f4K`VTEe!Hi=Mv{z>1~&W>XhCWKSak3WRh%>X&QR> z6aI(p5b?KzmS^Y7a|LZlR&i%%%Q#%+R9G9COASrm$Nz{GfFd{e*bZk{bT7J^qRq#U z`NliFFTiPS$x{$r?r1Rme;WfsQV|pEeSpFPoPdN^o4|0LSIX3Q>V3_ zz=@8tIOAoyM`yCKQt?(ftEG)ToZIC>YW)Uf4^sN`5)VYc482L{w!F6Sz)B)~Pej=u zMfxo<2^}1N0YTAyrtFJ=DR~d|$qf#jl8|;>}vH`U$&Fvn72W z7as@JaJ*Dc7(KBrLW6lk>(~gpSJ))cr&Alk8?R_`ITT(-dZgy1tZ&A9X2Pp990tKymOKB_^U!Nf-@?gQ&KKsrrUv zL+cHx-tpQT@uWkoPMfEyQjX(`pw@6-1Y641qUQ9Y82Ko$Mi|BYkgD%#YOL#!6DJ5e z#Em(*-aNTP7i`Kh-}XQ`o#s9&Gw2&HcWhK=Y+To(IW~*Z_HWUGhkBt02#SWD z`8jc^do)Q-6woEH?Mdu{x=-}MJTcX)ebjLQ12F6v3-c0j_G+>z!Sn6RFAUZ=wXqdy zjdv^>Y%b=tF-2HuEWPs`e5kHi>(v0o0o`uj20AH%E7!JcqDR46lGs!`&SLmFl?Na! zZa?)XFtax{w3Fhk>2h79;%7i44Up!v0t(aET_AVZ8SUv$?ZaSo^TW7HgI7czo$c^9 z16#ELqjH*%tE|#~e28Xe?9(lj$n3T1t)Z2O3700V)DV^9vG9&m6G!G^Hxw8)n}!>F zrquTd6C0=PF|49AkJVz;fjA>{{4RdwAob5 literal 0 HcmV?d00001