From 64d421429eed6e8f593feb5101297df139cf5ff9 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Thu, 25 Apr 2019 21:55:23 -0400 Subject: [PATCH] Presentation slides with demo move sprites + tiles to far memory to free up space --- .gitignore | 2 +- egamap.h | 2 +- egavga.bgi | Bin 0 -> 5554 bytes footer2.tif | Bin 0 -> 8076 bytes game.exe | Bin 119894 -> 117552 bytes game.jor | 12 ++-- game.prj | Bin 5493 -> 5785 bytes gameboot.jor | 9 ++- goth.chr | Bin 0 -> 18063 bytes jopl.exe | Bin 64234 -> 64399 bytes jopl.jor | 1 + jopl.prj | Bin 4390 -> 4390 bytes jorth.c | 12 ++++ litt.chr | Bin 0 -> 5131 bytes sans.chr | Bin 0 -> 13596 bytes serial.c | 22 +++++++ serial.h | 3 +- slide.c | 82 +++++++++++++++++++++++ slide.exe | Bin 0 -> 85160 bytes slide.h | 1 + slide.jor | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++ slide.prj | Bin 0 -> 4151 bytes slide0.jor | 8 +++ slide1.jor | 4 ++ slide10.jor | 16 +++++ slide11.jor | 10 +++ slide12.jor | 15 +++++ slide13.jor | 9 +++ slide14.jor | 11 ++++ slide15.jor | 14 ++++ slide16.jor | 8 +++ slide17.jor | 9 +++ slide18.jor | 16 +++++ slide19.jor | 4 ++ slide2.jor | 6 ++ slide3.jor | 6 ++ slide4.jor | 30 +++++++++ slide5.jor | 11 ++++ slide6.jor | 8 +++ slide7.jor | 7 ++ slide8.jor | 20 ++++++ slide9.jor | 8 +++ slidenot.es | 19 ++++++ testbed.c | 101 +++++++++++++++++++++------- tiff.c | 12 ++-- tiff.h | 2 +- tiles.c | 14 ++-- tiles.h | 8 +-- trip.chr | Bin 0 -> 16677 bytes 49 files changed, 651 insertions(+), 52 deletions(-) create mode 100755 egavga.bgi create mode 100755 footer2.tif create mode 100755 goth.chr create mode 100755 litt.chr create mode 100755 sans.chr create mode 100755 slide.c create mode 100755 slide.exe create mode 100755 slide.h create mode 100755 slide.jor create mode 100755 slide.prj create mode 100755 slide0.jor create mode 100755 slide1.jor create mode 100755 slide10.jor create mode 100755 slide11.jor create mode 100755 slide12.jor create mode 100755 slide13.jor create mode 100755 slide14.jor create mode 100755 slide15.jor create mode 100755 slide16.jor create mode 100755 slide17.jor create mode 100755 slide18.jor create mode 100755 slide19.jor create mode 100755 slide2.jor create mode 100755 slide3.jor create mode 100755 slide4.jor create mode 100755 slide5.jor create mode 100755 slide6.jor create mode 100755 slide7.jor create mode 100755 slide8.jor create mode 100755 slide9.jor create mode 100755 slidenot.es create mode 100755 trip.chr diff --git a/.gitignore b/.gitignore index 4c11873..978054b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ *.swp *.log *.jim - +game.map diff --git a/egamap.h b/egamap.h index ca621c5..bc97221 100755 --- a/egamap.h +++ b/egamap.h @@ -1,6 +1,6 @@ #include "tiles.h" -#define NUM_TILES 128 +#define NUM_TILES 64 #define NUM_PORTRAITS 16 #define SIZE_FOOTER (PAGE_STRIDE * 48) diff --git a/egavga.bgi b/egavga.bgi new file mode 100755 index 0000000000000000000000000000000000000000..1771336b8c80c25658efdfd1a5256954ca59d166 GIT binary patch literal 5554 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 literal 0 HcmV?d00001 diff --git a/game.exe b/game.exe index 0eae2dbefdc5d4c85a55d48c8a58a95b6a0ae2c3..c44a8e33f854ae864a4f58c326550aacfe81ae1c 100755 GIT binary patch literal 117552 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 cZV8do more tick-mapedit - ^SPACE key-pressed if - ' hello-world JOB send - then tick-debounce q-level @ dup if 0 q-level ! @@ -141,13 +135,17 @@ player :tick r@ entity.dir @ r< entity>sprite draw-sprite ; +var showmouse +1 showmouse ! : full-draw player entity.x @ 152 - player entity.y @ 92 - scroll entities each draw-entity more - mouseworldpos 4 draw-sprite + showmouse @ if + mouseworldpos 4 draw-sprite + then draw-screen draw-footer ; diff --git a/game.prj b/game.prj index f55f6b035d8563193f7a0d7aa552d6248c371de0..1983900cbe3e9d81bba6803a314059c9e5a47ccc 100755 GIT binary patch delta 1288 zcmZ8hUu;uV82{aSZnv?~bz95KXu&eU$&^AgF^j_Vw!K^LdV4zBZcC*~3`8JE0uiE# zkWLbGX34@ltBVpJgpCJ@LBb=v=!@aO2i}a&8sp<+yhzOP`|e>0*yNskf6n*k_xrxn zhr?g(xqLb~i#1pff75{ne5})9J>+9?{<3A=PFY?E zLc#n?s>40^nk!C*bJV$S*4Nr|_eQAg{4#crYX^G=u362IY$I4=gA8S$C8D<;Gr z;!muJ->rLM&5GJv?VIAN7_uYQ57y6i&MsJo?MJq<6V^L8PalxLb2zcOEZdRpX!Li4 zrxTt7NFO6p1ov0!vKRd~F3Rmlt&B(;v&2>m>%>tf9(=tdcVOX6Q}$#1`_JVTERi<> z_iR)4;KR3CQtLuGjSui@l7Xe!)JH;9vlNo^#g>7z8wBNCrU1>|)Vyjf>*a|+9`rM~ zas5m6Pj9lx#kBr$+bzxAW{8{)v|)_M-yQaBS}<6&j-4CjYwa|j#M3cxymzW44bCT# z8?XkN0iyLrohTNk37H8p9GFlOq%{@V`D7t|@!E)-radT!I2@WiTTFtDAa<*L@$JoL zv6r|tPQ$a-<*BL%I1nfin}$4tM<>8Y5`W;jR+x__2Q?xdF!=O9+N3EB)y{;!Z3JH^a=!}H%kuQTMCm74!}M2$?Q zQOh-anG2@!USquCP8R%Jl_$+}+juBySKr`q8nc`zS84?Ur+I&BPn|K4G QIDq}wuRgI;^o)W30Ec^Cv;Y7A delta 1065 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 literal 0 HcmV?d00001 diff --git a/jopl.exe b/jopl.exe index 925e76da833f31dd8f23df94bf0480557bf7d05b..735eb43af0fa3c671b58e54daf9b1c8ed1881817 100755 GIT binary patch delta 23099 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 diff --git a/jopl.jor b/jopl.jor index 1c2c959..9bef52e 100755 --- a/jopl.jor +++ b/jopl.jor @@ -228,6 +228,7 @@ var t2 : ontick startt2 player status trackstatus ; : files findfile begin dup while yield findnext repeat ; +: .files files each type s" " type more ; : keynote [ inline| 44 b, 31 b, 45 b, 32 b, 46 b, 47 b, 34 b, 48 b, 35 b, 49 b, 36 b, 50 b, diff --git a/jopl.prj b/jopl.prj index bca732d6cc38d1dc0a50f961d1c538920292683b..2dabce4a118d7ba5bd9a297d2a97a8178108fe80 100755 GIT binary patch delta 284 zcmZ3cv`lG(IvexUwKF$su^nS$jlM{K~fp$-xE6@o5+C^S; delta 307 zcmZ3cv`lG(IvaCDMc-yEwqtCpq6`e{IwybSNoN&f2&w3soXDHbD$EcHWS!;B;w_bdW21Q~=GL=MVsob1o9CikpTY;}_#AA=Z!7*Oaxh~w?V zz`(=6#xSF(Z}NRUcL#QcqboY0267@9%f;|zZKoeM!{Vi`K*Jf>8UBN;)YJP90^Uw8 zdd?7$$>;bTO@M~^dHDzUfCNE~2=VlF4bt;q04s)YfHDy4T|nYMQzttMgfj!}o;+8e F69B!XWBmXC diff --git a/jorth.c b/jorth.c index cd26a41..60a425d 100755 --- a/jorth.c +++ b/jorth.c @@ -342,6 +342,10 @@ void f_fputc() { DROP(1); } +void f_gets() { + gets(TOP().s); +} + void f_fput() { if (ACTIVE_FILE) { fwrite(&TOP().u, 2, 1, ACTIVE_FILE); @@ -747,6 +751,12 @@ void f_tell() { PUSHU(ftell(ACTIVE_FILE)); } +void f_exists() { + struct stat statbuf; + int rc = stat(TOP().s, &statbuf); + TOP().i = rc == 0; +} + void f_swapinput() { cell *key = RUNNING + TASK_USER_KEY; cell *keysrc = RUNNING + TASK_USER_KEYSRC; @@ -1111,6 +1121,7 @@ void f_init(char *exe) { CDEF("swap-input", f_swapinput); CDEF("putc", f_putc); CDEF("fputc", f_fputc); + CDEF("gets", f_gets); CDEF("number", f_number); CDEF("LIT_", f_lit_); CDEF("GOTO_", f_goto_); @@ -1127,6 +1138,7 @@ void f_init(char *exe) { CDEF("open", f_open); CDEF("overwrite", f_overwrite); CDEF("close", f_close); + CDEF("exists", f_exists); CDEF("factivate", f_activate); CDEF("fdeactivate", f_deactivate); CDEF("seek", f_seek); diff --git a/litt.chr b/litt.chr new file mode 100755 index 0000000000000000000000000000000000000000..08c30672ea5a18f010183807f55c644c272ab1d4 GIT binary patch literal 5131 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 literal 0 HcmV?d00001 diff --git a/sans.chr b/sans.chr new file mode 100755 index 0000000000000000000000000000000000000000..c38bc694df2517df046ca69c8a34a4811fe1db96 GIT binary patch literal 13596 zcmcI~TWn;>d0ulka z1mZN=%=e#W&t)|`yVxBQ>?ZqkojO&2{g?0m{{J`s?Z(DufBiRZe);v+Uj3ur`})ma zd-avqZ+_+F7hk^liJM>e<5zC}ix+Ob{41aQmG0KRdG%Xwy!HqG@f)w-Jp2#0>Ds?~ z0dJqY`Po-r`{vhP`TEV@c;)rqd+n94z5WNUzVfwicDJsv)|dbF7r*@GFR!##T2J_S ze%@-WY^}DgwoaZf>cLl+TN|xTYo|4A9kgz=Znl1@b=Z2Lb*J^qtxvW--TKwm=UU%t zC9UtYF0K6P%3rPg?Mmm;r!W24rOBlqT>8$&2H8G+wOYr zcY9gy`@O&Kb+&J8e`9;J{p0PA?fm|Z-ucPS>CSWg&-VYYuloO`|HJ-ZaBc97!DR5g z!QpPQ`}5t;4}Um3^tAU+-WT@%dhcKEv;DXCf3*McgWoy$&cO>;fBWiRUj5Xy?_T@K zwHL1k*LQAw`^JxM3_kL$k9_YV|L-GTeI|b9=g<7wNB{Fj|L&uAZvOerpWQsYIe7M~ z&nC})|Jffs`_pHC`mz7{OIx@0ZhidLr*3`m*6-YU?UucDeCxm6`oXQgx%IPK|8#49 zt8;km@Z*Os9)9ZZ3x{7l{KLa;Kk>a! z+<8&G_!lq!^u?{0?!5HxU;5LR-hSzaFZJ%ca_2AZ{LP*Jd#CsEr(gd1%Qqez^W*;8 z+1MEl_7ARfyW4wvds_#1yZG7I@b)X41Z`T`mgWbWdcYSxb+d1eA z_O1*D{XxGw=x=QF*Ka`PgYBJ8zrWw__qW!z_WQ#=T^rzIe`kBk^ZL(RUwrg-cZUc2 zgF$=H-{0S*F`li_u!e` z{w^)P)7je}Y;NxNJKZ<2XZ9gp8SdpC5B-pPevS84<}=RmCb;l@yzxt%``pK`rswqh zir1`S39qbYDw9N&t?kexG?VuDN#cbkd@Hr=auQUyrmm{f@Kjw5r{QTda79$vJZB{D=7|*WyxURA=3PXkK{*0aQ6LytP#aLEhrXwAOzMP90 zZ^laxqpdX3qnD}z{LcowFtLr4D~kYkX@s+sbWj z*cLOn8R0wsNI(pn;n&BZ3jCh?XYBNWHu)`aP9ynN0Rdqm+kAS0{#lGJuF{^0tL2oR zkld693FRzih6jQxrdh;YkeDQPIcb`zgCWEmbK?gA7ng7>Jo4>I9600RIJZ@VlTno@ z>FK(qOO*#%kgLMfhLx>mO)Cjc7-PmpE>7b-Dh;$#lzxsg$awCTqLQ_#qbgn~gtL}2 zx-%a7m0!DB#jz)29Y>MVs;gZTJDY@wa$>2`q%%D5ec7zfNz;j~3!RDuHnze=vyL@e zSSUkOGnvX%aYa|%+QM>3Z!rh{$b}R{q7pm`k4z-&OjL0d*M7}oADeI1U`#j0*N;BM z4x=J&tW?z(vJJT)*@n#WSilm)7$%9uIT3Tal;4G%LtjYF*MzTl$gLksy%Gu7cNke6 z#~U^Z@qxB2JHF*%vx6aYzfS6a3Fd0LB4Gmy+ZQk_6Gb*QkOn+}fsbe`H1v(IGBVge zoVd&tab;lhV(1rsCKBoJO$74`lfd~n{>E=KmKky*BFyTdB+h83@h+Vwyv=IB?TTw; z9k;CswSpJm5ldJKr%@?*0b9j|OE7tW#V_V0?dE1B3Stu{QKU`WwKg;g>*G#t!f7Qu z^$S_?9Z@QH0b9nICMhTOQrPULIo%%F6_gX=63&Op@h+W}@3?y}ugsrtuUL6+JH(hX z^6uGynT*x=kHIhIj$vNBujeY4Y@Nwm(n{GNGi)(x2kx}=q5b+H?T>I`%Cen>ZOBSj zQ5okkoTPyp=7XRz!?=ihI#O*F;wMt85}HpMrn&Y*p@f2^hH!7nCm)}76S!HEg{ewp zB(+i+e;oAN?7)m7r9)gvcM_eb3=X!!LDg}UmU&*L(0WtDyTM+0+IR{$#{l|i@ByCO zFGRMJ>J)b#<5?QrVM=iELy--wY8Pz5BaOVrZGRe0Z@(1QH$bwth%s z$-;5pmbOsVa1rNt6S=TnXssn5Rr!c?IDdpdUm*N23sp!2tb8XS-7YPB6n2n77ql;F z^{_=4bplU7QI_3b+l7v1iG%ewQ7NS74@vK!bD48aFQQ$@IWHf%H?H}RyaaC}hFHFZ z*Gdf6&ss6dAB@C&%=^W$G~#{j$yoE~z65M`u`?ka-dm!rwr06M=J6U4g(aS=9gH&Z z62{vu;#zEb>S4H@qkpML6ld^I4voTHL|<7kLKnk@wg5;^bFZa z5Cs-vnwj}yB(g)R;yXBJPm2t%6#u6?q(PZ?VNY~EgJ#?SvBY!2HLs*z%&!oO-%STH zow+ny>Pk3#SP$ULpa;+b4HT2bh)iMikghf-bw4sS+G;FRXJ{5S34JvYkI2TJ<_gSe zGEe7b)rxff&ei;a?Yz@^BDEF66v8dXXkE!*;n^P`MmSosCBlSa5fKQfGJ%oBA~r9P zBZ53E5dlyo2vv(1zyzJA8p7KQL#F5~YF9xADp%3-@Sj@5y9P^86s?<+SA=2~_@Rk{ zh*%5FpmXOnoqXE7>xFOhXl`CB5qWqG6pIFca$Y7zUR~3B#_l%HBR!*$q|vS>{U$wG z%ndt4G;ijQQZK1PyaUHEvIz&BYR2OFV*Px9R9Y80OIYbDA;56T-Uv@(+*7{6r)*lB zlneB9RRK?ikBne_o~t^}U9LtfPg^9Dyp?kTb9sYm7Fd*c^d)15%PMR z6!=D@-+L|EqsSm~0dJ)}La9M1hd~}N)(*CkhdYI0u=*oLPvlQ zfDw4bdz4r5o}c)P(8ha=J@HSPu_sO5N&fRfH{xED@F4DS5nMr>WOC!7=yWlL{6EkO z-O~e-qP0F@eZfwU4pP>GwtK*R!u`z3M?DstvNkR4=ck1w0NC6gFA-nIi z0q7v%>f!_!Z%o%|e(1daWWW_%67$z_>GR}4Y=N&><7l_yJEo9rFr5qigIfT9g zWeH*wgh$#hyr6zm>&chld@-$n4@XWHH0O*A3g`(C2{ZLbCnK_q1$ODdA48JLC;g#! zb#Yxb*QGE$yxNkPwqvH}L;(y;?~V~uz?%7J2BgB6f#Dt6_1L+6$XhW14JK`{T^bA4 z0&5{eZJqxJs*+d5#2>>_fKWviBqUXF;E()D6hRJv=YoitAe2%98w%#n{Znzz-w0F? zAo6j3&d>arxF=62LuT;$via*z#29ib1?8y;oUHW^#0XYdAY)D$yt6b-5(B3SzGp5@ z{d-~q;)4_g56*)#G4t=S#jNWjWD!dwa*=jn8s-|w=mxjQrGOP9q=Tu-L*(*tBdsgg zGmAr&u~1!6VbNkOl1182%DA>8H417(=^UZYAPzKmoDgji0OFHkVX?SO0oQ;f%E44L zklvL^p6207cy7+4d3+kr%t`cZ@^SEbv*1MjT>m^eaWi)s&!cmLsH1sHWtOR?M;~e0>8lSaGz6>iZ%}|%RFrYaipbT4q``R_wt}RWOU+nI^J%1Ds z%e3IRNKxMz2ckWTY(YRddjYb3HBw_a383#_VhWwheK`t7!B~!;#xug9Dpdi6&%tzonGCCNH!O6a%kcgl zU1&uSvMXf+EpQ2u0g0^pN{4SjemdsqXW-mD)~51!%*_CyVR7|Aho0Y23SXB+0helUXH8wdBT zNA@J52DpR|Z1E}1g5uMInZ!_z!;1Cg$mR~;QdA6j0WhmXTx5G3+#9XJpYRDl1-!7# z{e6GLM||v$HSQqq{do2vxF)7zLi(&GYATO|1zrRm<*vPJ;bo#}bZn1H*amSEPeX^D*dE<$>t zhuX|Te4+%zjR1DxA0$G!%d!+sBLbJNhq8pzaH#c3L~hVx&QIlnZF4|)x+<=-8K0GR zi@W3xn>t+&*)O`Lq{TLNEte%(0(OLOvFfV1 zJPl_4jG{hfzZcw7vv3aA)d5@polr}_=u{!iK zvRvK!^9yE=Dz}6VnLKKbSByp)tk(?|DC={Pi z@L_#cazt>%`B7B5A}#W=sEaY%<&ciVNkxT2c9Itbm_gQ}^IqhyL6Nh(&cOPKnji3E z|E=I{^|pR1K2E0Dv^Xx`EZ^qW{5ONQ)LZ(^c$!SINii+oq#3|Sg{Xbi(5(SgqEX{Q zZLG=Ptk5z<-i$)E))KWUWaChD;$Eog5*JB}s1LA&U{V)W%eE;Gltvp+VKIu=O?7)Y zC*StrC?rUC3vvw=8`v6E;t^d6p1KuBd@>%fJO#C-P+$vf(2(j6>X&hVR0C=2gNl7q zd85SK1U8JQc28AJenr}FfV>I?8&ylHj~8J9bPfAfkDzM?=EzsXpde6VFJuL717rh> z0OXi<_pfHehGKM9qplr^NKm$0P?n%u;Ny`_!p2pG!o0P{n9xFgkx2|yfBLRjpf_0}lk!w)J8_H(FBBx|fTdig z?hG(FDq2VON_cQ?=cq%sqPYd*9%t0y5DlU%-G=hJ)TL>*jf%x)ZgMOjHQ6Q#cdLLV z9F9?Bs~JzdyhdfNOl#Cf%HSxNshK(p&g7AtrAPT$K1*lmS$34oh%@-0`}enl6vbaS zb+L_#>Sh2A#izRQrU?Dj09*>1T7+0drvmXygrI8JYZ-J@j0Da?i96B;>q>!W2?8b8 zWe~KWZu4LcT;G!OU;y8op~IW?E*h2Z(+MP~ag3CbQe< zMgW^+(`Y+#b`$ky(qj|WMCsuIEM0ixJ;mS!OMlQi8%wP}+IvM_&>Zl+^{A}Ms;<4d9C?#^QjW?|J@&?B&{xzQ zl!8s`!y5WJhp`h~)elqMM=}88M|R&gDeFRC;8Xw@h?(pHf}kRgLTgtg1 z7w)kONklPPIb7F8Rd?h@Q57L*ck5`>ow!Lfiohp#$I+vb$~FsAgjtxGd=q@xCWs`s zJP-?;Wysci)PKS%N}npLyvtUjt|qoc{$WHy?O&c;XMnOafjdPScX{VK20 zCOr00e(#U+QCg){Uia&C)Su*&bd-+raeth$O(2>OWq-prQS5)jLW50ZR2YPTk()9s zR**KI7v}{pSIYBxr9L08jL)l;>U^{^Iwxd?It3~PtVP@>swF3S4T(2CQ+;IlnZYI> zz6S4e!qzmZ`wO4X)-svlPJMF!$~u}rPS|A~Ebm+1gR5lW^>QRVgT7mSW@I1D><`UG z^Vg5w*Nm(6=7X8ohStbQ(J`=mCOu!DEI;Wj!~#S!>=|Qpo#DN)oMu#p_k|s?#nWjV zJ@-Nm8RXJ@{{~yE1fOXxT0hA!gFNVa8prCa*<;ss8j92L!|J)HlZ3Ewvcmp@Z_Fh#6`dt zv!>qY0Yjjd0lpIX43c(QPYW}l`7lF=17>Suwl-#KV>VPM&^N=vHY&qy%+|(iZOqoj zY;E{$R4tfq*ZH5!QhTI|(guNHf? z*sH}}E%s^=*P2tqUM*&`*sH}}Ej+cwUM=?8oM^mh(f$d?hN{t{mEsbiXIa~AI#Jc4 zNKg0*+O&LX0|K9p>Jq9@F=cMVT3Lx26aqbO`v{Qm-bNFT)kqnb z2{0f2+(FPdJUUg98Sny*HAthBYDjUKqzQeWij;8LqB4(&3OuJHAI*j6kYQoOAe#k4 zD?7iqALQU@TcEv$s4bS%k`T!@${bYxxTu3KYJd?$rcqU)ogp(p-=e~qpp6Wn2n8GP z!ayU)RgxY~nWagR1S`QA8035MOg7aH=*8U34fTXLU|edIz<4aw`e@0c7Cs$Ot}M6d zDpg=aAO#v$2?ZE{KagvvJE4k6t#iIYejI2VZiGE7>)OCLO^ymLLTEkJKsdlQb2oQq z?2OITTs4d}A@vWykU;bgI$BV5M9`;C6+Tk`5d2odbZ8)%SXqs=O$V1O4Y=ZGct)JVOwx z9Q7aSAQLqV6i|lPV=6ClxwH-Vql<1z>I4G0n-VudnP`MOkUDWG*QCnol4)X;Ng(fo z5v=7B?GJE*tcwN};(Z*QRnwKYl0z!^;qbA5`otqV7)9*RqobIYJL;HC9qiT-Beooq zuTaj6jGgBmb40KDF0b()yyJ2V`j{7ezfGQsd=)$96>dUzGWR1qjVjctqt4_kpc)Th zt$X|=I8pb)Gs<>Vyd0%HRFtT;h-@2mMe^3DHKJ~Y9A2+dYd&oqDh~&UEaDP%T_fT4 zSsRot(t`!})$DEy;wGXC2^WAVYzXvkQe><{z#N8v{#2w3RKiTyDo`dk1BpIY^inq9 zm~bdt;~{tjw2Gt9FH$P%p;LarW=QI`2KVrI4nYnVXZLsxVQB$D3ui?66yui>*)Aip zT?UVLDez-F#XxG!2tPoQ3n?@I5=LASjIbSj3)uiL(yk$y8vF~SR9&nO9VImh3T1#k zRg9a?x15|l1l4F)fSU7C6V-qreGieea0dvE@#t5ns9OcSzLhGL=L3yJSZN~Y6Jjyd IdHq)$ literal 0 HcmV?d00001 diff --git a/serial.c b/serial.c index d40ce44..4346321 100755 --- a/serial.c +++ b/serial.c @@ -85,3 +85,25 @@ void ser_write(char *str) { ser_write_byte(*str); } } + +int ser_getline(char *line) { + int i = strlen(line); + int value; + for (value = ser_poll(); value != SER_NODATA; value = ser_poll()) { + if (value == '\b' || value == 127) { + i --; + } else { + line[i] = value; + i ++; + } + line[i] = '\0'; + ser_write_byte(value); // echo + + if (value == '\r') { + line[i - 1] = '\n'; + ser_write_byte('\n'); + return 1; + } + } + return 0; +} \ No newline at end of file diff --git a/serial.h b/serial.h index 361cb38..c293072 100755 --- a/serial.h +++ b/serial.h @@ -19,10 +19,11 @@ #define BAUD_57600 0x0002 #define BAUD_115200 0x0001 -#define SER_READ_BUFFER_SIZE 0x200 +#define SER_READ_BUFFER_SIZE 64 #define SER_NODATA -1 void ser_init(int port, int baudrate, int protocol); int ser_poll(); void ser_write_byte(char byte); void ser_write(char *str); +int ser_getline(char *line); diff --git a/slide.c b/slide.c new file mode 100755 index 0000000..8516ff2 --- /dev/null +++ b/slide.c @@ -0,0 +1,82 @@ +#include +#include "jorth.h" + +static int bgi_on = 0; +void bgi_shutdown() { + if (bgi_on) { + closegraph(); + bgi_on = 0; + } +} + +void bgi_init() { + int driver = VGA; + int mode = VGAHI; + if (!bgi_on) { + initgraph(&driver, &mode, NULL); + bgi_on = 1; + } +} + +void s_outtext() { + outtext(TOP().s); + DROP(1); +} + +void s_justify() { + settextjustify(TOP().i, TOP_TEXT); + DROP(1); +} + +void s_font() { + struct textsettingstype settings; + gettextsettings(&settings); + settextstyle(ST1().i, settings.direction, TOP().i); + DROP(2); +} + +void s_direction() { + struct textsettingstype settings; + gettextsettings(&settings); + settextstyle(settings.font, TOP().i, settings.charsize); + DROP(1); +} + +void s_moveto() { + moveto(ST1().i, TOP().i); + DROP(2); +} + +void s_pos() { + PUSHI(getx()); + PUSHI(gety()); +} + +void s_setcolor() { + setcolor(TOP().i); + DROP(1); +} + +void s_setbgcolor() { + setbkcolor(TOP().i); + DROP(1); +} + +void s_clear() { + cleardevice(); +} + +void slide_init() { + CDEF("bgi-on", bgi_init); + CDEF("bgi-off", bgi_shutdown); + CDEF("outtext", s_outtext); + CDEF("justify", s_justify); + CDEF("font", s_font); + CDEF("direction", s_direction); + CDEF("moveto", s_moveto); + CDEF("pos", s_pos); + CDEF("color!", s_setcolor); + CDEF("bg!", s_setbgcolor); + CDEF("wipe", s_clear); + atexit(bgi_shutdown); +} diff --git a/slide.exe b/slide.exe new file mode 100755 index 0000000000000000000000000000000000000000..6cca4558a96284b39e37126f0a79a00da3a4f90c GIT binary patch literal 85160 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 literal 0 HcmV?d00001 diff --git a/slide.h b/slide.h new file mode 100755 index 0000000..a706ec9 --- /dev/null +++ b/slide.h @@ -0,0 +1 @@ +void slide_init(); \ No newline at end of file diff --git a/slide.jor b/slide.jor new file mode 100755 index 0000000..51a59e5 --- /dev/null +++ b/slide.jor @@ -0,0 +1,181 @@ +( K E Y B O A R D ) +57 const ^SPACE +75 const ^LEFT +77 const ^RIGHT +51 const ^< +52 const ^> +31 const ^S +59 const ^F1 + +0 const BLACK +1 const BLUE +2 const GREEN +3 const CYAN +4 const RED +5 const MAGENTA +6 const BROWN +7 const LGRAY +8 const DGRAY +9 const LBLUE +10 const LGREEN +11 const LCYAN +12 const PINK +13 const LMAGENTA +14 const YELLOW +15 const WHITE + +: rungame + 0 player.state DRIVING f! + 1 showmouse ! + [ MODE-MOVE @ lit ] dup MODE-MOVE ! ' tick redefine + ' full-draw ' draw redefine + 12 11 tile>world player entity.pos! + bgi-off 320x200 loadportraits + s" pete.jor" loadfile + begin suspend again ; + +( S L I D E ) +var skip +var autoslide +: pause + skip @ not if + begin + suspend 0 + ^< key-pressed if drop 1 1 skip ! -1 autoslide ! then + ^> key-pressed if drop 1 1 skip ! 1 autoslide ! then + ^S key-pressed if drop 1 1 skip ! then + ^RIGHT key-pressed ^SPACE key-pressed or if drop 1 then + ^F1 key-pressed if rungame then + until + then ; + +defer write +: y pos swap drop ; +: nexty ( dy -- y ) y + ; +: writeline ( s x dy ) nexty world player entity.pos! + s" pete.jor" loadfile ; +:noname :| player yield 0 |; ' entities redefine + 0 player.state DRIVING f! + 1 showmouse ! MODE-MOVE @ ' tick redefine + 12 11 tile>world player entity.pos! + loadportraits ; +:noname s" hide-footer" REPL send ; +:noname s" show-footer" REPL send ; +:noname :| player yield 0 |; ' entities redefine + 1 player.state DRIVING f! E player entity.dir ! ; +:noname :| 0 |; ' entities redefine 0 showmouse ! ; +array demostates , , , , , , , +var demostate + +: enterdemostate + demostate @ cells demostates + @ execute ; + +: tick-nextslide + ^SPACE key-pressed if 1 demostate +! enterdemostate then ; + +: demotick + tick-nextslide + 0 ^LEFT key-down if 3 - then + ^RIGHT key-down if 3 + then + 0 ^UP key-down if 3 - then + ^DOWN key-down if 3 + then + player entity.y +! + player entity.x +! + tick-mapedit + tick-debounce ; + +: autoadvance autoslide @ not if 1 autoslide ! then ; +: demo ( endstate startstate -- ) + bgi-off 320x200 + ' full-draw ' draw redefine + ' demotick ' tick redefine + demostate ! enterdemostate + begin suspend dup demostate @ <= until drop + ' noop ' draw redefine + ' noop ' tick redefine + bgi-on autoadvance ; + +var demorepldone +: quit 1 demorepldone ! ; +: start-demorepl activate ' putc task-emit ! + s" .:: J O R T H ( jean forth) ::." type cr + begin receive loadstring s" ok" type cr again ; +task const DEMOREPL +array replbuf 256 allot + +: demorepl + bgi-off key-end 0 demorepldone ! + DEMOREPL start-demorepl suspend + begin replbuf gets DEMOREPL send suspend + demorepldone @ until + bgi-on key-start autoadvance ; + +array filenamebuf 13 allot +var filenameindex +: store-fn-char filenamebuf filenameindex @ + b! ; +: filename-emit + dup [ key lit ] != if + store-fn-char + 1 filenameindex +! + 0 store-fn-char + else drop then ; + +: slidefilename ( i -- s ) + task-emit @ + ' filename-emit task-emit ! + 0 filenameindex ! + s" slide" type + swap . + s" .jor" type + task-emit ! + filenamebuf ; + +var slidecount +var slideindex + +: skipto ( i -- ) + slideindex @ - autoslide ! 1 skip ! ; + +: fixindex + slideindex @ 0 < if slidecount @ 1 - slideindex ! else + slideindex @ slidecount @ >= if 0 slideindex ! then then ; + +: show ( i -- ) 0 skip ! 0 autoslide ! slidefilename loadjor ; +: nextslide + autoslide @ if + autoslide @ slideindex +! + else + begin + suspend + ^LEFT key-pressed ^< key-pressed or + if -1 else + ^RIGHT key-pressed ^SPACE key-pressed or ^> key-pressed or + if 1 else 0 then then + dup if dup slideindex +! then + until + then fixindex ; + +: slideshow activate blah + bgi-on ' noop ' draw redefine ' noop ' tick redefine + begin slideindex @ show nextslide again ; +task const SLIDESHOW +SLIDESHOW slideshow + +:noname + 0 begin dup slidefilename exists while 1 + repeat slidecount ! + :| tick-nextslide [ MODE-MOVE @ , ] |; MODE-MOVE ! +; ' onload redefine diff --git a/slide.prj b/slide.prj new file mode 100755 index 0000000000000000000000000000000000000000..8a21db2b31ce9cb3216085dc317b4160265ec2a5 GIT binary patch literal 4151 zcmeH~>rWh27{=ez-Gwd4rJ&SeOUJq@wCO^(g=*EL%kBybd&}+^X&rCCmZDH_fm&}A zYPA<@tqq@Q{Ng7QV-x)gG^vSgty=H@gT_Q#FNxOid1hED6|!X4tcmf!{PMnM-gBP! zymNLg`b4I8LTQC$1wZh)O_J(W)j^5H&D5%t7P z#A-mTq16C5*3#AJZcwbzj%Dy42V^I$2MB|Bka&oAn0SPEl;|b;h<+kX>>>t;-GB_z z8X|`2?jc6#juKDM&CnX7HBL+rd)fCSt$nnfBAzCmA)W=~IPo0aNn$@SMNAV1i01)0 zNb3dSMY@NG!*q`jM~Rn+W5mnEE5r%nRpKPEQ3X+=!kbr3Nno3y2aIqm5VwdRay%NemX zXT%*jBks%@u`OrBT{$D}&Ka>CTk79#0qh`e09lwOc9E3e&inQ0nOK>`OJuSm8A>c6 z!GTPAbO~Wg4%xV8gXW2bqK$1^nlw)=p1R+k&^(D`JetroPXJCd)zQf0d@!2!jtur| z>%D#2k_Czs_@SvLb?cey9~(;#_YS2qiz(~=RCKX(`SdqOd$i`AVXZl?dH(6S^T{XQ zF=tJ&D>xZU_f8B9EM7qw@6T6c;c=QL)Dw#Nqs4yEESydLz31jii1)r-c;#Dk6Uz7~ zBJx-I+sOY)3D29nJO1Aasz9r}iBpeLQYGv(0v|M;#mO>3*9P&NZ)rL=k2)toxg_2=^ z1Y%g%oLzvJTb4^1)`m|U(f1vXVNY6(Q+BrpA!Ky0hPGXR5QdgRqXJ)WGSwy*R4sZ; z^F8&3npSDmqq@{Rs#2|1hMYjZL;Wg^at4P8bG(R}my6~$>PqGE+eczf%XZ79Q!}w@ zse9`HGJk)~J0>H%UXH1fZmh?SE3u-paaFsIaX>ZFIgCP^bh_I)rc9i#&CDBPE0`w6 zP|A%3)KZ5|3O8{#YWKmL*?e4f();" write +s" }" write diff --git a/slide14.jor b/slide14.jor new file mode 100755 index 0000000..5abd9b7 --- /dev/null +++ b/slide14.jor @@ -0,0 +1,11 @@ +header +s" Jorth Crash Course" write +s" Calling Conventions" write +bullet +s" void f_docolon() {" write +s" RPUSH(IP);" write +s" IP.p = W.p + 1;" write +s" }" write pause +s" void f_ret() { " write +s" IP = *RPOP();" write +s" }" write diff --git a/slide15.jor b/slide15.jor new file mode 100755 index 0000000..d92987e --- /dev/null +++ b/slide15.jor @@ -0,0 +1,14 @@ +header +s" Jorth Crash Course" write +s" Writing Jorth In Itself" write +bullet +s" : begin here ; immediate" write +s" : until ' BZ_ , , ; immediate" write pause +s" " write +s" : if ' BZ_ , here 0 , ; immediate" write +s" : then here swap ! ; immediate" write pause +s" " write +s" : ( begin key ')' = until ; immediate" write + + + diff --git a/slide16.jor b/slide16.jor new file mode 100755 index 0000000..c9aface --- /dev/null +++ b/slide16.jor @@ -0,0 +1,8 @@ +header +s" What Good Was It?" write +bullet +s" * Jorth soon spread to every part of the project" write pause +s" * C for the hardware, Jorth for everything else" write pause +s" * All game & drawing logic" write pause +s" * Map editing" write pause +6 4 demo \ No newline at end of file diff --git a/slide17.jor b/slide17.jor new file mode 100755 index 0000000..e1738c9 --- /dev/null +++ b/slide17.jor @@ -0,0 +1,9 @@ +header +s" Entirely Intuitive Results" write +bullet +s" * Forth does not scale up" write pause +s" * Arranging postfix expressions without local" write +s" variables is hard" write pause +s" * It's too easy to fill 64kb of memory" write pause +s" * This would have been impossible without" write +s" the internet" write diff --git a/slide18.jor b/slide18.jor new file mode 100755 index 0000000..eeedb12 --- /dev/null +++ b/slide18.jor @@ -0,0 +1,16 @@ +header +s" Counterintuitive Results" write +bullet +s" * Complicated Forth code is AWFUL..." write pause +s" ... which is a powerful force for simplicity" write pause +s" * Virtually ALL state is global..." write pause +s" ... which makes it all visible when debugging" write pause +s" ... and which lets code stay small and focussed" write pause +s" * Hard to tell what a word might do..." write pause +s" ... but this makes huge implementation" write +s" changes possible!" write pause +s" * The most flexible abstraction may be the tiniest" write pause +s" * It's easier to write my own!" write pause +s" * Map editor" write pause +s" * Music livecoding REPL (<300 LOC!)" write pause +s" * This presentation software (<200 LOC!)" write diff --git a/slide19.jor b/slide19.jor new file mode 100755 index 0000000..46f1c0b --- /dev/null +++ b/slide19.jor @@ -0,0 +1,4 @@ +header +s" I should shut up now" write pause +goof CYAN bg! MAGENTA color! +s" Questions?" write \ No newline at end of file diff --git a/slide2.jor b/slide2.jor new file mode 100755 index 0000000..f4be0f3 --- /dev/null +++ b/slide2.jor @@ -0,0 +1,6 @@ +header +s" Background" write +bullet +s" I decided to write a game" write pause +s" for a 30-year-old computer" write pause +s" on a 30-year-old computer" write diff --git a/slide3.jor b/slide3.jor new file mode 100755 index 0000000..4ae3119 --- /dev/null +++ b/slide3.jor @@ -0,0 +1,6 @@ +header +s" WHY?!" write pause +bullet +s" * I fell in love with MS-DOS" write pause +s" * I wanted to see if I could" write pause +s" * Learning is fun" write diff --git a/slide4.jor b/slide4.jor new file mode 100755 index 0000000..17971b0 --- /dev/null +++ b/slide4.jor @@ -0,0 +1,30 @@ +header +s" What were my restrictions?" write +bullet +s" * Turbo C++ 1.0 (C & assembler)" write pause +s" * 16-bit real-mode x86" write pause +pos s" * 640kb of RAM" write pause +moveto s" -----" write +pos s" * ~550-600kb of RAM" write pause +moveto s" ----------" write + s" * 64kb of code, 64kb of data," write + s" 256kb of video memory" write pause + s" * E" outtext +2 color! s" G" outtext +3 color! s" A " outtext +4 color! s" G" outtext +5 color! s" r" outtext +6 color! s" a" outtext +7 color! s" p" outtext +8 color! s" h" outtext +9 color! s" i" outtext +10 color! s" c" outtext +11 color! s" s" outtext +12 color! s" !" outtext +13 color! s" !" outtext +14 color! s" !" write +LCYAN color! +s" * 320x200 pixel resolution, 16 colours" write pause +s" * AdLib sound" write +s" * FM synthesis - no digital sampling" write pause +s" * All work done ON THE 286" write diff --git a/slide5.jor b/slide5.jor new file mode 100755 index 0000000..e660fef --- /dev/null +++ b/slide5.jor @@ -0,0 +1,11 @@ +header +s" How would I learn all this?" write +bullet +pos s" * StackOverflow" write pause +moveto s" -----------" write pause +s" * Graphics Programming Black Book" write +s" by Michael Abrash" write pause +s" * Teach Yourself Game Programming in 21 Days" write +s" by Andre LaMothe" write pause +s" * Commander Keen Dreams source code" write pause +s" * Google... sometimes helped" write diff --git a/slide6.jor b/slide6.jor new file mode 100755 index 0000000..035f53f --- /dev/null +++ b/slide6.jor @@ -0,0 +1,8 @@ +header +s" First Steps" write +bullet +s" * Could I write a tile engine?" write pause +s" * Stretch goal: Could I make it scroll smoothly?" write pause +s" * And obviously I've got to draw stuff on top..." write pause +s" * Ooh, what about a stationary HUD?" write pause +3 0 demo diff --git a/slide7.jor b/slide7.jor new file mode 100755 index 0000000..fc34a66 --- /dev/null +++ b/slide7.jor @@ -0,0 +1,7 @@ +BLUE bg! +header +s" Problems: One Month In" write +bullet +s" * Game logic was messy" write pause +s" * Debugging is hard!" write pause +s" * How to edit maps?" write diff --git a/slide8.jor b/slide8.jor new file mode 100755 index 0000000..942eeb4 --- /dev/null +++ b/slide8.jor @@ -0,0 +1,20 @@ +header +s" I know, I'll just..." write pause +s" WRITE MY OWN" write +s" SCRIPTING LANGUAGE" write pause +bullet +s" What could POSSIBLY go wrong??" write pause + +header +s" @SpindleyQ" write pause +bullet +s" ohhh noooo I am definitely going to" write +s" write a 16-bit x86 Forth as a scripting" write +s" language for my game, this is happeniiiiing" write pause + +header +s" @mogwai_poet" write pause +bullet +s" @SpindleyQ Have you used forth before?" write +s" It's like programming assembly" write +s" on a CPU designed by an alien." write diff --git a/slide9.jor b/slide9.jor new file mode 100755 index 0000000..1b0ebb1 --- /dev/null +++ b/slide9.jor @@ -0,0 +1,8 @@ +header +s" FORTH" write +bullet +s" * Invented by Chuck Moore around 1970" write pause +s" * Still used in embedded systems & firmware" write pause +s" * The tiniest possible useful language" write pause +s" * 'If you've seen one Forth, you've seen one forth'" write pause +s" * I called mine Jorth ( jean forth)" write diff --git a/slidenot.es b/slidenot.es new file mode 100755 index 0000000..50a292d --- /dev/null +++ b/slidenot.es @@ -0,0 +1,19 @@ +: slideNotes + bullet + s" * The tiniest abstraction may be the most flexible" write + s" (if you're willing to trade off 'safety')" write + +* Forth is really, really good for one person who understands everything +* It is not necessarily great for complex problems + (Change the problem!) +* It is not necessarily great for co-operation + (write-only language) +* It's kind of an anti-social language + (not least because you want to talk about it at length once you learn it!) + +Challenges: +* I spent a couple of hours figuring out how to free up enough + memory in the data segment to hold my game engine, Jorth data, + graphics data, and the slide fonts, all at the same time +* Then I wrote some more slides and ran out of RAM to store all + the text, so I diff --git a/testbed.c b/testbed.c index 83d2f94..ee32f03 100755 --- a/testbed.c +++ b/testbed.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "video.h" #include "kbd.h" @@ -12,6 +13,7 @@ #include "jorth.h" #include "egamap.h" #include "adlib.h" +#include "slide.h" /*** T E X T ***/ char far *font = NULL; @@ -54,11 +56,23 @@ void text_draw(unsigned int vidOffset, unsigned char *s) { #define NUM_SPRITES 64 #define TILE_STRIDE 64 #define SPRITE_STRIDE 80 -unsigned int tiles[NUM_TILES * TILE_STRIDE]; -unsigned int sprites[NUM_SPRITES * SPRITE_STRIDE]; - +unsigned int far *tiles; +unsigned int far *sprites; unsigned char map[10000]; +void allocate_gfx() { + unsigned long memleft = farcoreleft(); + tiles = farmalloc(NUM_TILES * TILE_STRIDE); + sprites = farmalloc(NUM_SPRITES * SPRITE_STRIDE); + if (!tiles || !sprites) { + printf("%lu bytes free - need %lu\n", memleft, + (unsigned long) + ((NUM_TILES * TILE_STRIDE) + + (NUM_SPRITES * SPRITE_STRIDE))); + exit(1); + } +} + void fillMap() { unsigned int x, y, z; z = 0; @@ -74,6 +88,8 @@ void game_init() { FILE *f; TifImageMeta_t meta; + allocate_gfx(); + mouse_init(); setEGAMode(); @@ -125,13 +141,16 @@ void f_keyWasPressed() { TOP().i = keyWasPressed(k); consumeKey(k); } + void f_keyIsDown() { TOP().i = keyIsDown(TOP().i); } + void f_drawSprite() { // ( x y sprite -- ) drawSprite(&sprites[TOP().i * SPRITE_STRIDE], ST2().i, ST1().i); DROP(3); } + void f_scroll() { // ( x y -- ) scroll(ST1().i, TOP().i); DROP(2); @@ -141,9 +160,11 @@ void f_scrollpos() { // ( -- x y ) PUSHI(screen.scrollX); PUSHI(screen.scrollY); } + void f_ticks() { PUSHU(timer_counter); } + void f_splitscreen() { setSplitScreen(399 - (TOP().i << 1)); DROP(1); @@ -199,11 +220,51 @@ void f_adlib() { DROP(2); } +cell f_atexit; +void f_cleanup() { + f_execcp(f_atexit); +} + +void f_320x200() { + FILE *f; + TifImageMeta_t meta; + + setEGAMode(); + tile_init(); + + f = fopen("FOOTER2.TIF", "rb"); + meta = tifLoadMeta(f); + tifLoadEGA(f, meta, 0, 48, 336); + fclose(f); + + f = fopen("TILES.TIF", "rb"); + meta = tifLoadMeta(f); + tifLoadEGA(f, meta, OFF_TILES, NUM_TILES * 16, 16); + fclose(f); +} + +void f_loadportraits() { + FILE *f; + TifImageMeta_t meta; + + f = fopen("FOOTER.TIF", "rb"); + meta = tifLoadMeta(f); + tifLoadEGA(f, meta, 0, 48, 336); + fclose(f); + + f = fopen("PORTRAIT.TIF", "rb"); + meta = tifLoadMeta(f); + tifLoadEGA(f, meta, OFF_PORTRAITS, NUM_PORTRAITS * 32, 32); + fclose(f); + +} void game_f_init(char *exe) { f_init(exe); CDEF("seremit", f_seremit); CDEF("key-pressed", f_keyWasPressed); CDEF("key-down", f_keyIsDown); + CDEF("key-start", kbd_init); + CDEF("key-end", kbd_cleanup); CDEF("draw-sprite", f_drawSprite); CDEF("draw-portrait", f_drawportrait); CDEF("scroll", f_scroll); @@ -219,33 +280,25 @@ void game_f_init(char *exe) { CDEF("mousepos", f_mousepos); CDEF("mousebuttons", f_mousebuttons); CDEF("unfuck", tile_init); + CDEF("320x200", f_320x200); + CDEF("loadportraits", f_loadportraits); + + slide_init(); f_loadjor("gameboot.jor"); + + f_atexit = f_lookupcp("atexit"); + atexit(f_cleanup); + } void f_poll() { static char line[128] = { 0 }; - int i = strlen(line); - int value; - for (value = ser_poll(); value != SER_NODATA; value = ser_poll()) { - if (value == '\b' || value == 127) { - i --; - } else { - line[i] = value; - i ++; - } - line[i] = '\0'; - ser_write_byte(value); // echo - - if (value == '\r') { - line[i - 1] = '\n'; - ser_write_byte('\n'); - PUSHS(line); - f_runstring("REPL send"); - f_taskloop(); - i = 0; - line[i] = '\0'; - } + while (ser_getline(line)) { + PUSHS(line); + f_runstring("REPL send"); + f_taskloop(); + line[0] = '\0'; } } diff --git a/tiff.c b/tiff.c index cdb2a2f..f0d088e 100755 --- a/tiff.c +++ b/tiff.c @@ -117,7 +117,7 @@ int tifLoadEGA(FILE *f, TifImageMeta_t meta, unsigned int vidOffset, int maxY, u return y; } -int tifLoad(FILE *f, TifImageMeta_t meta, unsigned int *planeBuf, int maxY, int yRepeat, int planes) { +int tifLoad(FILE *f, TifImageMeta_t meta, unsigned int far *planeBuf, int maxY, int yRepeat, int planes) { int istrip; int irow; int ipixelpair; @@ -125,11 +125,11 @@ int tifLoad(FILE *f, TifImageMeta_t meta, unsigned int *planeBuf, int maxY, int unsigned long offset; unsigned char rowData[MAX_WIDTH >> 1]; unsigned int planeStride = (meta.width >> 4) * yRepeat; - unsigned int *bp = planeBuf; - unsigned int *gp = bp + planeStride; - unsigned int *rp = gp + planeStride; - unsigned int *ip = rp + planeStride; - unsigned int *mp = ip + planeStride; + unsigned int far *bp = planeBuf; + unsigned int far *gp = bp + planeStride; + unsigned int far *rp = gp + planeStride; + unsigned int far *ip = rp + planeStride; + unsigned int far *mp = ip + planeStride; unsigned int bv, gv, rv, iv; if (meta.width > MAX_WIDTH || (meta.width % 16) != 0 || planes < 4 || planes > 5) { diff --git a/tiff.h b/tiff.h index 3af7942..2ee2fcd 100755 --- a/tiff.h +++ b/tiff.h @@ -14,4 +14,4 @@ typedef struct { TifImageMeta_t tifLoadMeta(FILE *f); int tifLoadEGA(FILE *f, TifImageMeta_t meta, unsigned int vidOffset, int maxY, unsigned int w); -int tifLoad(FILE *f, TifImageMeta_t meta, unsigned int *planeBuf, int maxY, int yRepeat, int planes); +int tifLoad(FILE *f, TifImageMeta_t meta, unsigned int far *planeBuf, int maxY, int yRepeat, int planes); diff --git a/tiles.c b/tiles.c index 44db0b4..9e5cc77 100755 --- a/tiles.c +++ b/tiles.c @@ -52,7 +52,7 @@ void blit32x32(unsigned int offsetFrom, unsigned int offsetTo) { TiledScreen_t screen = { 0, 0, 0, 0, { OFF_PAGE1, OFF_PAGE2 }, 0, 0, NULL, NULL, 0, 0, 0, 0, 0 }; -void loadTiles(unsigned int tilesOffset, unsigned int *memTiles) { +void loadTiles(unsigned int tilesOffset, unsigned int far *memTiles) { screen.tilesOffset = tilesOffset; screen.memTiles = memTiles; } @@ -66,6 +66,7 @@ void loadMap(unsigned char *map, unsigned int w, unsigned int h) { int prepareBuffer(int pageX, int pageY) { unsigned char *dirty = &screen.dirty[screen.currentPage][pageX + (pageY * PAGE_TILES_W)]; + int i; if (!isBufIndex(*dirty)) { unsigned int startX = screen.scrollX >> 4; unsigned int startY = screen.scrollY >> 4; @@ -73,15 +74,18 @@ int prepareBuffer(int pageX, int pageY) { unsigned char ibuffer = screen.nextBuffer; screen.nextBuffer = nextBufferIndex(ibuffer); *dirty = ibuffer; - memcpy(screen.buffer[ibuffer], &screen.memTiles[tile * BUF_WSIZE], BUF_WSIZE << 1); + for (i = 0; i < BUF_WSIZE; i ++) { + screen.buffer[ibuffer][i] = (&screen.memTiles[tile * BUF_WSIZE])[i]; + } screen.bufferOffset[ibuffer] = screen.pageOffset[screen.currentPage] + (pageX << 1) + (pageY * PAGE_STRIDE * 16); } return *dirty; } -void drawSpriteToBuf(unsigned int *sprite, int pageX, int pageY, int shift, int yStart) { - unsigned int *buf, *mask; +void drawSpriteToBuf(unsigned int far *sprite, int pageX, int pageY, int shift, int yStart) { + unsigned int *buf; + unsigned int far *mask; unsigned int maskval; int y, h, plane; if (pageX < 0 || pageY < 0 || @@ -122,7 +126,7 @@ void drawSpriteToBuf(unsigned int *sprite, int pageX, int pageY, int shift, int } } -void drawSprite(unsigned int *sprite, int x, int y) { +void drawSprite(unsigned int far *sprite, int x, int y) { int pageX = (int)(x - (screen.scrollX & 0xfff0)) >> 4; int pageY = (int)(y - (screen.scrollY & 0xfff0)) >> 4; int pageOffsetX = x & 0x0f; diff --git a/tiles.h b/tiles.h index 1401e45..d6064ee 100755 --- a/tiles.h +++ b/tiles.h @@ -4,9 +4,9 @@ void tile_init(); -void loadTiles(unsigned int tilesOffset, unsigned int *memTiles); +void loadTiles(unsigned int tilesOffset, unsigned int far *memTiles); void loadMap(unsigned char *map, unsigned int w, unsigned int h); -void drawSprite(unsigned int *sprite, int x, int y); +void drawSprite(unsigned int far *sprite, int x, int y); void scroll(int newX, int newY); void drawScreen(); @@ -17,7 +17,7 @@ void blit32x32(unsigned int offsetFrom, unsigned int offsetTo); #define PAGE_TILES_COUNT (PAGE_TILES_H * PAGE_TILES_W) #define PAGE_STRIDE (PAGE_TILES_W << 1) -#define NUM_BUFFERS 32 +#define NUM_BUFFERS 20 #define BUF_WSTRIDE 16 #define BUF_WSIZE (BUF_WSTRIDE * 4) @@ -29,7 +29,7 @@ typedef struct { unsigned int pageOffset[2]; unsigned char dirty[2][PAGE_TILES_COUNT]; unsigned int tilesOffset; - unsigned int *memTiles; + unsigned int far *memTiles; unsigned char *map; unsigned int buffer[NUM_BUFFERS][BUF_WSIZE]; unsigned int bufferOffset[NUM_BUFFERS]; diff --git a/trip.chr b/trip.chr new file mode 100755 index 0000000000000000000000000000000000000000..d1f79f8d1f75a61a7907f568fc8d8dfea7b6ef98 GIT binary patch literal 16677 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