From 530d79c09b01ea63b4f57bdf7e92f1e47b6cca23 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Mon, 20 May 2019 15:54:13 -0400 Subject: [PATCH] remove presentation as it no longer runs --- footer2.tif | Bin 8076 -> 0 bytes game.exe | Bin 118687 -> 95317 bytes game.prj | Bin 5815 -> 5522 bytes slide.c | 82 ------------------------ slide.h | 1 - slide.jor | 181 ---------------------------------------------------- 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 | 37 ----------- 28 files changed, 540 deletions(-) delete mode 100755 footer2.tif delete mode 100755 slide.c delete mode 100755 slide.h delete mode 100755 slide.jor delete mode 100755 slide0.jor delete mode 100755 slide1.jor delete mode 100755 slide10.jor delete mode 100755 slide11.jor delete mode 100755 slide12.jor delete mode 100755 slide13.jor delete mode 100755 slide14.jor delete mode 100755 slide15.jor delete mode 100755 slide16.jor delete mode 100755 slide17.jor delete mode 100755 slide18.jor delete mode 100755 slide19.jor delete mode 100755 slide2.jor delete mode 100755 slide3.jor delete mode 100755 slide4.jor delete mode 100755 slide5.jor delete mode 100755 slide6.jor delete mode 100755 slide7.jor delete mode 100755 slide8.jor delete mode 100755 slide9.jor delete mode 100755 slidenot.es diff --git a/footer2.tif b/footer2.tif deleted file mode 100755 index f3b0665918214f8eb06574c1287b6f553aa5df58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8076 zcmeI0J#Q;T6ow}Rkyrv*G|=!1sQ3vfNO2|7Ws5D`Qs0V=E2luZz7=V#y;H2*@-rwX zDJWv3Ew;V2JFtW_yziOs$tFf}5(RN5_RN`&-Sgy}IWs4D_3CSNs+5{2b#$zbAf2H) za`HFmf8^wkAs;)L>ppSvG33u7bN&x}zi{K9LjEdQe+HTF`vKojepdG9QrVxsmHpuY z&ahmf%h~kH+2s2kli%aldOt<`rBcfmUi5#qwDT8^-n?|a7jD4j`3%_o3s<$} znx=U+1NNovv3^0*HqT%{3)Z38Z^FWzzFO3DaBe51!WnjJ&*F2^)dF-EV=PHMB$=o(f#3`!SscqK>g7R=d?n_A7z ztGcVT#z(I>$VdU{fR@ZfX`8EMVK;;^!bD-zt_1~^Y>k;f60}4D*VJq^Sp~CrKc2H6 zKh9l8HwqgDB~m!%!Tmzp0*}QbO8f@CxvZgPDltYuvS?8PGx#RL2h6mrcf{UeT2|O8 z;i@6mHf+0LxY&SC3wV!-tTfBF=-Y%92cSJ)oPXUhBYe={_yjGhBHtu?_gc(a@QGt( zSub_RNU1l@ptX!8RYN=}?+EG6KROs?E)xgv(X1t3aBR;Dt{cv)s;g(vRExH}YOk`s z_}Li|e0FZVRnzT>L8Xks2Ypw?E*CLP3$LAgiZ+C8O|F*d+>B&JC~ko-ig&{ z#{h?EXjUrcQx@_L-xM*ugS{ol5jhX=N!V^cY0sM!Dv_Ouv~2}X9Ns2t)-cO!@S!yd z_F&(3d>1W#i^+OB-J(Sd8SaUlu1tP7xE2HIc32PXpvybOo?`LKS9 zFKz7j%E*D5aKY68K}%-#BcBGJcojCLvAtrp4vc4V&;CdW@d*wT ze{am=QW=+O@n_@sPK~mBvbPdGVKCmm7Djrq|4P1Iv`9W`#i-Rw;=bs>2ottpgkE4T z@scv;1d?p6BuT(d!yIg6S79j^Nl)U4b8--R)w%-|FE%97Othr*t__WBw*)JSc1hdt z8WFoLps(aB^MjI)@e5G7e@i}IY=icRw5Yqg75C-M?bQ-bO3v_8;LE6DIur93hh@(f z@FC6(b}NNY!o_wwt7Z-i#Kl%@qrsw-Gr;root$pS>YuSo3Xsk=E^K=02^LcYR{0wpp9kLZ4)&;zW7d+K$*osf3 r;L!KhhrZy$^B*kmf3v_ZN?l){F4gt&Z29B22bJ%Bd#L<+$h-dmBT@7X diff --git a/game.exe b/game.exe index a394d0f79e632474e32e644610e0a687be566873..00e8cd0ab183cd2b2ca883c12b62c66ca95f760e 100755 GIT binary patch delta 18912 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 bh+`5OVu)e_5sV{@(BDZB;x!sD$v5!>2Dy4H delta 529 zcmXYu&1(}u7{;HSnXFMG+ccZ4YZ6%zDYdwI@C)gO+s!tqjnk6E`a!@T9(tgzW zwD|)fI1Om=n2N=Vwg<23r5B5|2M;26Q@pkc-p1XHhk57geSgn0^FHl=cj`^AO6TX+ zH%_WkD(Q-dM(hE-x5L z)U^AN3}$`8FKt+CEJS1yU&_>GK;(S;W83#B@MjuR=hD~|XcPl|l^j%dcM zt^h9Ohs;|UIJIqIB+l&*V4aWL(oMrD6ee6d4;j3u?3KzRUeqk{J$f9&S9~WSfIX&DC$2BUPs3FIE8B{i@~I6dKg6xS-2R1gUcAk5C$=T L0kK5Vepi5hLSU4a diff --git a/slide.c b/slide.c deleted file mode 100755 index 8516ff2..0000000 --- a/slide.c +++ /dev/null @@ -1,82 +0,0 @@ -#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.h b/slide.h deleted file mode 100755 index a706ec9..0000000 --- a/slide.h +++ /dev/null @@ -1 +0,0 @@ -void slide_init(); \ No newline at end of file diff --git a/slide.jor b/slide.jor deleted file mode 100755 index 91a8612..0000000 --- a/slide.jor +++ /dev/null @@ -1,181 +0,0 @@ -( 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 done |; ' party 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 done |; ' party redefine - 1 player.state DRIVING f! E player entity.dir ! ; -:noname :| done |; dup ' party redefine ' 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/slide0.jor b/slide0.jor deleted file mode 100755 index 2441a9d..0000000 --- a/slide0.jor +++ /dev/null @@ -1,8 +0,0 @@ -MAGENTA bg! -goof -s" What A 30-Year" write -s" Old PC Can Teach" write -s" Us About Graphic" write -s" Design" write pause -BLUE bg! bullet -s" (just kidding)" write diff --git a/slide1.jor b/slide1.jor deleted file mode 100755 index 7d445c1..0000000 --- a/slide1.jor +++ /dev/null @@ -1,4 +0,0 @@ -header 320 180 moveto -s" Building Your Own Tools" write pause -bullet -s" Or, Be Moore Like Chuck" write diff --git a/slide10.jor b/slide10.jor deleted file mode 100755 index ccda40d..0000000 --- a/slide10.jor +++ /dev/null @@ -1,16 +0,0 @@ -header -s" Things Jorth is missing" write pause -bullet -s" * Garbage collection" write pause -s" * Dynamic memory allocation" write pause -s" * Garbage" write pause -s" * Memory safety" write pause -s" * Error reporting" write pause -s" * Static types" write pause -s" * Dynamic types" write pause -s" * Objects" write pause -s" * Polymorphic methods" write pause -s" * Closures" write pause -s" * Flow control (in the interpreter)" write pause -s" * Local variables" write pause -s" * Syntax" write diff --git a/slide11.jor b/slide11.jor deleted file mode 100755 index 2975928..0000000 --- a/slide11.jor +++ /dev/null @@ -1,10 +0,0 @@ -header -s" Things Jorth has" write -bullet -s" * An interactive embedded REPL" write pause -s" * Lightweight co-operative multitasking" write pause -s" * A C FFI" write pause -s" * An extensible compiler, defined in itself" write pause -s" * The ability to fit comfortably in 16kb of RAM" write pause -s" * An entire codebase I completely understand" write -s" and am willing to change to fit my problem" write diff --git a/slide12.jor b/slide12.jor deleted file mode 100755 index 38038b4..0000000 --- a/slide12.jor +++ /dev/null @@ -1,15 +0,0 @@ -header -s" Jorth Crash Course" write -s" Syntax & Semantics" write -bullet -s" * Read text until a space is encountered" write pause -s" * Look up word in dictionary" write pause -s" * If a definition is found: Execute it" write pause -s" * Otherwise: Parse it as a number" write pause -s" * Otherwise: Give up" write pause -s" * Postfix / Reverse Polish Notation" write -s" parameters and return values live on The Stack" write pause -s" * D E M O !" write pause -demorepl - - diff --git a/slide13.jor b/slide13.jor deleted file mode 100755 index fb38001..0000000 --- a/slide13.jor +++ /dev/null @@ -1,9 +0,0 @@ -header -s" Jorth Crash Course" write -s" The Jorth Virtual Machine" write -bullet -s" while (IP.p) {" write -s" W = *IP.p;" write -s" IP.p++;" write -s" W.p->f();" write -s" }" write diff --git a/slide14.jor b/slide14.jor deleted file mode 100755 index 5abd9b7..0000000 --- a/slide14.jor +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100755 index d92987e..0000000 --- a/slide15.jor +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100755 index c9aface..0000000 --- a/slide16.jor +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100755 index e1738c9..0000000 --- a/slide17.jor +++ /dev/null @@ -1,9 +0,0 @@ -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 deleted file mode 100755 index eeedb12..0000000 --- a/slide18.jor +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100755 index 46f1c0b..0000000 --- a/slide19.jor +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100755 index f4be0f3..0000000 --- a/slide2.jor +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100755 index 4ae3119..0000000 --- a/slide3.jor +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100755 index 17971b0..0000000 --- a/slide4.jor +++ /dev/null @@ -1,30 +0,0 @@ -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 deleted file mode 100755 index e660fef..0000000 --- a/slide5.jor +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100755 index 035f53f..0000000 --- a/slide6.jor +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100755 index fc34a66..0000000 --- a/slide7.jor +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100755 index 942eeb4..0000000 --- a/slide8.jor +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100755 index 1b0ebb1..0000000 --- a/slide9.jor +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100755 index 50a292d..0000000 --- a/slidenot.es +++ /dev/null @@ -1,19 +0,0 @@ -: 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 ee32f03..cd0ade6 100755 --- a/testbed.c +++ b/testbed.c @@ -13,7 +13,6 @@ #include "jorth.h" #include "egamap.h" #include "adlib.h" -#include "slide.h" /*** T E X T ***/ char far *font = NULL; @@ -225,39 +224,6 @@ 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); @@ -280,10 +246,7 @@ 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");