From a2a486882585b0e2c3c4ecbc5ea19afda015289f Mon Sep 17 00:00:00 2001 From: Oliver Schmidt Date: Fri, 30 Mar 2018 00:07:56 +0200 Subject: [PATCH] Added HGR and DHGR slide show programs. The DHGR program is sort of a hack as it first switches to double (aka 80 col) text mode to prepare for double graphics mode. Therefore only one additional soft switch access is necessary after using TGI to generally switch to hires. --- testcode/lib/apple2/Makefile | 35 ++++++++++++-- testcode/lib/apple2/astronaut.hgr | Bin 0 -> 8184 bytes testcode/lib/apple2/catface.dhgr | Bin 0 -> 16384 bytes testcode/lib/apple2/chips.hgr | Bin 0 -> 8184 bytes testcode/lib/apple2/dhgrshow.c | 45 ++++++++++++++++++ testcode/lib/apple2/gatsby.dhgr | Bin 0 -> 16384 bytes testcode/lib/apple2/girl.dhgr | Bin 0 -> 16384 bytes testcode/lib/apple2/hgrshow.c | 37 ++++++++++++++ testcode/lib/apple2/macrometer.hgr | Bin 0 -> 8184 bytes testcode/lib/apple2/mariner.hgr | Bin 0 -> 8184 bytes testcode/lib/apple2/monarch.dhgr | Bin 0 -> 16384 bytes testcode/lib/apple2/rose.hgr | Bin 0 -> 8184 bytes testcode/lib/apple2/superman.dhgr | Bin 0 -> 16384 bytes testcode/lib/apple2/venice.dhgr | Bin 0 -> 16384 bytes .../lib/apple2/{werner.pic => werner.hgr} | Bin testcode/lib/apple2/werner.s | 2 +- testcode/lib/apple2/winston.hgr | Bin 0 -> 8184 bytes 17 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 testcode/lib/apple2/astronaut.hgr create mode 100644 testcode/lib/apple2/catface.dhgr create mode 100644 testcode/lib/apple2/chips.hgr create mode 100644 testcode/lib/apple2/dhgrshow.c create mode 100644 testcode/lib/apple2/gatsby.dhgr create mode 100644 testcode/lib/apple2/girl.dhgr create mode 100644 testcode/lib/apple2/hgrshow.c create mode 100644 testcode/lib/apple2/macrometer.hgr create mode 100644 testcode/lib/apple2/mariner.hgr create mode 100644 testcode/lib/apple2/monarch.dhgr create mode 100644 testcode/lib/apple2/rose.hgr create mode 100644 testcode/lib/apple2/superman.dhgr create mode 100644 testcode/lib/apple2/venice.dhgr rename testcode/lib/apple2/{werner.pic => werner.hgr} (100%) create mode 100644 testcode/lib/apple2/winston.hgr diff --git a/testcode/lib/apple2/Makefile b/testcode/lib/apple2/Makefile index 87dadcbe7..9d551aa62 100644 --- a/testcode/lib/apple2/Makefile +++ b/testcode/lib/apple2/Makefile @@ -1,12 +1,37 @@ # For this one see https://applecommander.github.io/ AC ?= ac.jar -CL = cl65 -CLFLAGS = -t apple2 -C apple2-hgr.cfg -Oirs +CL ?= cl65 -hgrtest.dsk: hgrtest +all: hgr.dsk dhgr.dsk + +hgr.dsk: hgrshow hgrtest cp prodos.dsk $@ - java -jar $(AC) -cc65 $@ hgrtest bin %bk>9 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 literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/catface.dhgr b/testcode/lib/apple2/catface.dhgr new file mode 100644 index 0000000000000000000000000000000000000000..1f373d9d0b2b2c73fd1f9df4d25b35c97b69c01f GIT binary patch literal 16384 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 B>>mIC literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/chips.hgr b/testcode/lib/apple2/chips.hgr new file mode 100644 index 0000000000000000000000000000000000000000..c8302db4da7395d96bd34e637ae32930be350ec0 GIT binary patch literal 8184 zcmai3U2EIQ7QIp&j!>bop(Zc)5}~|^G1RXIUx=q5(^nZJ{Bn&=pNtEqDMTc=m1lnX zU28sM$#I%7wxpS@y=H&R-h0NQFpq|*)Iq4DVZv)Js{Kl>L}flfIM7N*a>QvAy`j(5M6Xw=3a zTl|Xi(^BIp9$J?8l}B|Y!L5vg1aE+TEUHMSi?|YHX847JNGFDORvqhUCF)5ft|@`R zyMzx;zcvpJ*UlldJS=`;CEuyJ&Z?OBXkvYEy3&vH%HS_MGL6$*)Kkn*HNcn0yW|@4 z%%gLBpsJqaQ#B39-^vhS9P=LNLR~{*;&V{zPj;U8z20t&{G9)ScE~DYkLvLJy%LIY zX*nM!1Iiz__^{VfRL5psDZYu%eskFDZ!LSRCe}XCE8o)+I;1Cz?08n~m8cGUPaan- zKA%gmOc$_A{R{!XtT2lZJA&O_3EdKkLN zVK(Gk@9{SLw@6EeWbyDD^UnK|JZ|(jH1f3aW1i5Yd+)e8t`6`KwxgOre|US5QD5-y zXq2EIvg;Nf*zm0C2<`9GqySxuj5qPw2bd#$bZoq(42Q4qjU_?b2=!wF=4e}`f~*pw zbOD($H|Vv+PcUxrqY>5$b&EMbh8*-|Y*2}8Kjel+`7pzqLeuxaS9tr|@&0d;e^B=W zeOhjMYg`dj!%#+!7y`o$88%vH>9c8{lKeANnN{~Pk_RW^Tliu1(#-QH&|JPPhgUbv z{92Dw+dZ85VTP&;Em83pYBcWShcDqL2rKgq%$y?(N~pAz)xTw~g}T*+@L2L;>E@x6 zRgca;j8gT0ufWnvnj6=9j-Tc`b*QIY8YA!vlCMYSh@OqTCMwhd;k9jp$Sp-IZrS#B zZla&R>Ui{78TVaV*U`F*pU6o4T4iH{J%}FX^>lexiihR_v_wu_HJqO;3n&?lBI z@dN$aYrii)UPRi9hROfpCPjcU?f2aJymZeOFHx1QqGeiQNlJBTrdV)XN73lCZY-m& z{G>_qfB19#xpht!L3-gp>JzrY4H70b+%!LWKCzhUKZb6hDZ<~1_B&q_B-wQK(D5`n= z!^G>@MKCNwHbzjW*|+1y2t2{dWND}=f~$1#VRi}g zVIGiJwY5h+yM_Feeh7Nvvl8K*eldX$t~tPi6wi1M;Vm9(`Pt)lugtEH=sR*$Tpa&` zsZeE|1vKU}7S*(IOV#R=nE-NOku(1Xkk`z`Wv-=Ih+wNAR~~np|r}QVh!=>)+Pdb~$Ee-Rj_pmY=>$R091YKezj;=9(--^AWZRgOhZYCuv zS!U{zp$s9PyqWpjC)URm?R<_;JzJXN=CiM>U}aNrDNX!A%S1U z=*euxM#Y5u&&JA=QWd}&(pOLNW4`nvSZH2P3^9IC`(-CR4nU805;NMtm&p8U-~%y6 zO#u9pytWcvdWPT+?SClX|9yN<(7A#r?ku&=2yVR^P^2K+B_EfzQCdHJ zfS@mTw%gnPL}c!ye*X3qZvI~T9S7QAV-AZ}C9bwOds%MBSgM6t%i|I;kr-O@c$3v}xOpM5(0vf}FM z=XBr6t|xNb$s@AJJC;mOA{$a-|%sQ^b>@T#J zdgpnRm-D|KQEu21blEM#F_?em@xkbx}4RB zc--qTE8&WWO*dk*k*hi&N|_8i*3A_Ae?+qupOKAUgc4+;J$8cJQMDi9Gn=C)X7n^I zhJr%GOf3<)>;IA(88CcQ3seKd2fxtq#U8GnVE=uH{7(9(&T6&kNUlT! zO0?}A^ltI3JaA(y$dU5_P}u$N9{xfbr8skFEys!tnGlr+v~NDaK>?px>Lfqs+0Fl~ z)eN?Nx&k(;q7FV~WM?moPWWylo*}iL;k&8a#$w`DwMFm%V+qo7w|a$ zU$x_VtJkw2Sr9*?uK0b8FQYH;D$IL^Z(Ph5JXecw-~9m3G}u8ORBS3F^2@yaJwbbw zNqwJx942i?|0Z>hS-}0bsRq`*uTOb;3ZJk?l;*5Jzqmcl8~8u(pQq#0hmW^1DmEQh z3a%jAu4zCvl$RIVx5djSeVUFD=4b%ZF5m}ZwX2M};pV%aQCE|~pM=w)dE`2Y^s&RStACK7`q=pmUvYy(@`f*Y z=JuLL^(5ahEpTh~#|E00ZiRA&-@c28>(62l84-cq2u@+Kd^Dn%X-Q+w-&rIrkH|P? z*&rN*j8>=Ri@l!a=_jIORwMt8_2UF?h&_nMmySO#$ODI!IniVcgu;4lTzAPZW9ET5Bp3-%%_O)-{;v^_MIwyQ!)NsaY(z+f9T+jI z7+LE(4(!lRw_z(YRspy54K#!@RR--1WrF7x%o)s zf5>3?d3@LhJJ%K){G5kn>Wa22V{ZfcuklU(ulMS^avOvvp1;$Ez=a&<4?kk&hQIQC zN6gLVb)r5XOt`ZYFF)stPK@K9F-r}tvtC#_T4i|*LNEJ7Aj6|&@L6d+gyHe7yOL@f&7p>`Cae@{7*Q>TF^bn<)1Iz)6x##CX}5g z-kK$K*4KS}6w7=33B(+UBRbc5_%O@gBVBzR1Y8jTp-+VSxc?It$z5uWQ|PJhMEhk*;QO=q=q*JO?TPWB~5#$d-$vl z7*31H)6Gw3q0;I99sC`}Guj=0j9!=o_$E2CvkT)bNe`dBquCc#`Ew5hs`u9bUP?^y wezb|=9ls5G70MaD#2<6M;(IpvAGY}Tj_ev<5(WDer+@M+K3#0mg>^Idf5Po?;s5{u literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/dhgrshow.c b/testcode/lib/apple2/dhgrshow.c new file mode 100644 index 000000000..147ee01d6 --- /dev/null +++ b/testcode/lib/apple2/dhgrshow.c @@ -0,0 +1,45 @@ +// cl65 -t apple2enh --start-addr 0x4000 dhgrshow.c + +#include +#include +#include +#include +#include +#include +#include + +void main (void) +{ + unsigned old; + DIR *dir; + struct dirent *ent; + + old = videomode (VIDEOMODE_80x24); + tgi_install (a2e_hi_tgi); + tgi_init (); + POKE (0xC05E, 0); + + dir = opendir ("."); + while (ent = readdir (dir)) { + char *ext; + int hgr; + + ext = strrchr (ent->d_name, '.'); + if (!ext || strcasecmp (ext, ".dhgr")) + continue; + + hgr = open(ent->d_name, O_RDONLY); + POKE (0xC055, 0); + read(hgr, (void*)0x2000, 0x2000); + POKE (0xC054, 0); + read(hgr, (void*)0x2000, 0x2000); + close(hgr); + + if (cgetc () == '\r') + break; + } + closedir (dir); + + tgi_uninstall (); + videomode (old); +} diff --git a/testcode/lib/apple2/gatsby.dhgr b/testcode/lib/apple2/gatsby.dhgr new file mode 100644 index 0000000000000000000000000000000000000000..dc3750e668e26f84de1eaf6a1a573d873e69f1ea GIT binary patch literal 16384 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

ohx|Lp zZqjY9T%h0QVrYR3cHT+mzws#5Y;U?+;CGV*S5)OR_5gf6O}E`J{-6Jz1fgRly}w`; zypDdA4#I!D8$~LigTe1binz}Ew@1^1$weIm0x;N}{0)WWWFM!J<4=U|Z*6&|_+KA* zw{7EP1A~M!x3eJzTAL8Q(aYWha}9m3TbLYqjZ&f$`9JR8JfMJINO8VUJI>jlm(XMU z@&~PH(fvbB9wGkYG#-HLsD#vLFp75Ycik`W+svh1@LsEFv=P|<95F+6pqvbB=tSlW b_P@5}E_j=bguwc^mTKgiG*$(iM}r literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/girl.dhgr b/testcode/lib/apple2/girl.dhgr new file mode 100644 index 0000000000000000000000000000000000000000..af332edbe7c5bde96ba79dbfb8661715a35ad5c1 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/hgrshow.c b/testcode/lib/apple2/hgrshow.c new file mode 100644 index 000000000..5d839b5fa --- /dev/null +++ b/testcode/lib/apple2/hgrshow.c @@ -0,0 +1,37 @@ +// cl65 -t apple2 --start-addr 0x4000 hgrshow.c + +#include +#include +#include +#include +#include +#include + +void main (void) +{ + DIR *dir; + struct dirent *ent; + + tgi_install (a2_hi_tgi); + tgi_init (); + + dir = opendir ("."); + while (ent = readdir (dir)) { + char *ext; + int hgr; + + ext = strrchr (ent->d_name, '.'); + if (!ext || strcasecmp (ext, ".hgr")) + continue; + + hgr = open(ent->d_name, O_RDONLY); + read(hgr, (void*)0x2000, 0x2000); + close(hgr); + + if (cgetc () == '\r') + break; + } + closedir (dir); + + tgi_uninstall (); +} diff --git a/testcode/lib/apple2/macrometer.hgr b/testcode/lib/apple2/macrometer.hgr new file mode 100644 index 0000000000000000000000000000000000000000..925df6e417d71bb2966da737e2c90b57ce2697aa GIT binary patch literal 8184 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 CdLAPH literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/monarch.dhgr b/testcode/lib/apple2/monarch.dhgr new file mode 100644 index 0000000000000000000000000000000000000000..8812c4b2d7417154b750dcc86499142668a496aa GIT binary patch literal 16384 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 Beq{gv literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/rose.hgr b/testcode/lib/apple2/rose.hgr new file mode 100644 index 0000000000000000000000000000000000000000..d18fd83f0ecbc0f19ebcba7abc056898c3c04cb2 GIT binary patch literal 8184 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 literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/superman.dhgr b/testcode/lib/apple2/superman.dhgr new file mode 100644 index 0000000000000000000000000000000000000000..4886227c2884fac1259275dee49ac34c37a08443 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/testcode/lib/apple2/werner.pic b/testcode/lib/apple2/werner.hgr similarity index 100% rename from testcode/lib/apple2/werner.pic rename to testcode/lib/apple2/werner.hgr diff --git a/testcode/lib/apple2/werner.s b/testcode/lib/apple2/werner.s index 6456ade13..f9200f694 100644 --- a/testcode/lib/apple2/werner.s +++ b/testcode/lib/apple2/werner.s @@ -1,2 +1,2 @@ .segment "HGR" -.incbin "werner.pic" +.incbin "werner.hgr" diff --git a/testcode/lib/apple2/winston.hgr b/testcode/lib/apple2/winston.hgr new file mode 100644 index 0000000000000000000000000000000000000000..074ff178dafd641584342c249b06d3bc5712eea8 GIT binary patch literal 8184 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 literal 0 HcmV?d00001 -- 2.39.5