From 5d5f60c2d517ef3f93e2d94608c913250a95b733 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Fri, 9 Feb 2024 21:11:07 -0800 Subject: [PATCH] Allow GRAFIX to be unloaded and reloaded --- images/apple/PLASMA-2.1-BLD.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-FPSOS.po | Bin 143360 -> 143360 bytes images/apple/apple3.hd | Bin 5177344 -> 5177344 bytes src/libsrc/apple/grafix.pla | 59 ++++++++++++++++++------------- src/scripts/gfxplot.4th | 6 ++-- 5 files changed, 37 insertions(+), 28 deletions(-) diff --git a/images/apple/PLASMA-2.1-BLD.po b/images/apple/PLASMA-2.1-BLD.po index ea7a6138d556ab4da777b40db4ade065f6602527..4645f43f82c2f4d0b3d740b214715df7acefd45c 100644 GIT binary patch delta 2298 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 delta 1679 zcmZY94@{J090%~<^YHrKd!5jG9B>yXI{^oSi_S?aTeClOhbSI&cglr~Vi-|5vn*ql z9q*iOWDO2%Z#9S7ikNJP;dX51Opdb{2Zum1buK1bv8l^wE7}VCzIQ1>w|(CC`~L3t zd!FaU9ZgeG)0EV+S}4$wNEVjwDfbj^a=2ZNGK#$&`Q!dBCAk81cpW(8e zaCSMHrb!FxjbxT__rzq?j?zr|jxxt)PhoNSGx2e;kBmgtdt1iZ)LIies(t>>6eb$x zIDe6-Ku)B6sv(_a1=pmrDASR>ihtPB+ROOgOz-2Yp2%5dSL-vGU1yYC0#$LfCzI8v zLMGedZ#2p_vR3l~nRp4*!5&bd4`x7bB)%Iu;X2G4NwE_t55r^d1X18=GAQ_pDbK=I z*oImSYB-_t3cQBrH}L!pauXbY_lf*U3*KnM8%Iz$4xP{qJ*fAheipeOzJmx{giCN0 zrqDBuo?FPX@CW<_j8Q;f1|^A+Vgd`Sge=Gf8>~T35%U|Ab$D10#jpW3gBvQL8fu{) zUd6ypEZT_tE+}vi4nZq?1fM_$`i`To8~G%hhHv0JT!0}Mg&*LGAI;a${4*YI!msc< zYJZ}3A15UdWJu){uyBL25_uKmKrYx&e+czQke`HNa6&1RK?Q7qDtI31;3e1ryP)zd zEYQdef%iBIe9Q%<1I5qb1e}Ck=tIvLY;q2{ABJEOuELKn4KwJufu3KGXE~{-EG)x6 z8XgHnBT=_hAYT}aMB=$5md8V5;jl}plhHFAz2uPg$fJ>{S5oE3;D|%&({AC3a%n~$ z3x~Xt-l#1Qi@S~egA@G`uheNA7&|{X935~-*Nx-hiCDsS^WLl7z^$EGY(-&_PWz>F znUctE4h;{CU-n?N@L)NeOYJhHm@Q_jIq%FSxygRWkoJk(3&!h3z5*c8E#J>&S1y+prh*K@;qUgU}2gKnt{i3P<25 zdz0(qa~fF#!|&fC+?ZvJb#02{`D&hLdT0i3%o8qaXBx;>-VbD;wJ6w?5}N z|NETwwoALa`^0Vy2_%w^^kkqinnp&NPBW;SW|E0!(QJ~)Oct6$6;w%cX&ya5Rb-_H zX+ABWYI=w`EhHN)qKB!5?6jC1w1gg^T3SlWsE+E%Ne%QUHBu8bQwuGp7389ow2E43 z_1U(SViRY>A!Yq z=vLOePMEKgaP`u;?m z%Gv2wx6?X@*=wb;9kbX5q{1`Vvt}t&#$uwynRQ#;Ta&1QMz)mku#WL9V!gz~4%iNR zpcndJ3`}Mw?uJuv8$=5eH(OY$iLsOm+Q7?LkDryN!l=7o6FiRIQ|LX1Isva>{VLW; z)Jejh{qQCn#zqDk@1i~dr{FZ4ML&oB1=N?}6BvY>FbZG6cgWm9=2z6e!=JzemNE#e z$0(GiEU4$fd{_u}s1;Z;sct4r)p3;paE8c3)j2|%XXHn=e>hvj-j@s_g4jeW+}vpsIFsg?U&BdDWmA;hcwqav7-3Qn97n`qw41l5=pz+>{nFq)-6Fc2zExG$hJ5l9x_ znYM_j{~0mfEDeb$-v6JXHA?~Q#ZQDLUq-1}3V8xCPjGzBcu3Xm;dr-{@kQi~xbxae zo*YzamO@b_Hj$YULNnWD@jEkRen;_xt!s*{wVCkA+PFX5HNG;fPx# delta 1113 zcmX}rT})GF90u_J`}QcO7WABo3{en20JnBn9L|XhJ8BCkpfZ>XGaAEW$uwtvWQ1gM zK85wi%Cg;*>DCfUrgMJ`6Nnq^+-OwjEC6Px_f=Y9J0 zZ7$|u)_0rK4-AXPF}z+&g3j!$ctEGo!z{cvv~>U@N1mQOF561@p8`R z0$#y|ypmV(YF@)dT+AiBmS5*L*u!3alS_FW`?!qP^IKfb8~APB$nWqbuHemF$?x8* zsz^)mU%WD1)vdV|nw&?Tiw+{1B3kdu%{-Bwsfwp(wq!5W|CRCpkw?p-g zeVbSwFU#?#Lt1lTt$Ba{cYra_z{xu6WoUf@CPZ&d{_k~;Ds`5%0<{^Zo;7o0#FML&;+|-5A26_IEXhGxU>`b zOEAHLQ*av2!gtV(-39C}BVU1=&=rErEzk=4pbb8OLvR>&e~t?}r7QB46p?SG zVs@j9!X>x@H=q}rTlkP4ko(~-Ou_^B9j0I!o4>I68~L#$`&y}gS$H&YZy=RSHK`tL zXgHaCnQP|q_`p~q(Wtg**o>s^2h|R3G?{8vZ7n%`FR1p;J|!l0sMFe5VxU=d>a!Qj z#bbK^@I-&IS&iv~V|OM;QiDPDp+26Nm`nI=zIxc1*S&>Sf!`{4FIG@}IQF6@$BI^4 z(SQ}*+7k^HofOV^acSsdVawwg9X-BKQKgV}@uATB#Z=o=y`!Zu5G*ZkuEm9l?Ql@5 vgElKG+;e})fRgPVitow}?H862vWyzbsI`nb%h+Za+byHsG8$q= 0 +end + export def setmode(mode)#0 if mode < 0 // @@ -122,15 +148,19 @@ export def setmode(mode)#0 syscall($CC, @params) gfxref = 0 // - // Deaalocate bank 0 + // Deallocate bank 0 // params.0 = 1 params.1 = gfxseg syscall($45, @params) ^$1907 = $00 // Unset graphics pages allocated - fin - if not gfxref + // + // Reset textmode + // + cmdsys:syswrite(cmdsys.refcons, @textmode, 3) return + elsif not gfxref + gfxopen fin params.0 = 3 params.1 = gfxref @@ -151,28 +181,7 @@ if MACHID <> $F2 return -1 fin // -// Allocate bank 0 -// -params.0 = 4 -params:1 = $2000 -params:3 = $9F00 -params.5 = $10 -params.6 = $00 -syscall($40, @params) -gfxseg = params.6 -^$1907 = $80 // Set graphics pages allocated -// -// Open graphics driver -// -params.0 = 4 -params:1 = ".GRAFIX" -params.3 = 0 -params:4 = 0 -params.6 = 0 -syscall($C8, @params) -gfxref = params.3 -// // Keep module in memory // -return modkeep +return gfxopen ?? modkeep :: -1 done diff --git a/src/scripts/gfxplot.4th b/src/scripts/gfxplot.4th index 8b8d014..e7924bf 100644 --- a/src/scripts/gfxplot.4th +++ b/src/scripts/gfxplot.4th @@ -5,7 +5,7 @@ SRC" FPU.4TH" : DRAWAXIS 3 GFXSETMODE - 1 GFXPENCOLOR + 6 GFXPENCOLOR 0 96 139 96 GFXLINE 70 0 70 191 GFXLINE ; @@ -19,12 +19,12 @@ FPEXT XSCALE FPCONSTPI 69 >FPINT FP/ XSCALE FPEXT! FPEXT YSCALE --95 >FPINT YSCALE FPEXT! +95 >FPINT YSCALE FPEXT! DEFER FUNC : PLOTFUNC - 3 GFXPENCOLOR + 15 GFXPENCOLOR 140 0 DO I DUP 69 - >FPINT XSCALE FPEXT@ FP* FUNC