From d23e8c1172e947654d4ac5f8a383dd5a1786e09a Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Tue, 9 Apr 2019 22:00:32 -0400 Subject: [PATCH] store exe timestamp in JIM files; small game cleanups --- boot.jor | 9 ++++++--- game.exe | Bin 118902 -> 119894 bytes game.prj | Bin 5493 -> 5493 bytes jopl.c | 8 ++++---- jopl.exe | Bin 62755 -> 63298 bytes jopl.jor | 10 +++++++--- jopl.prj | Bin 4390 -> 4390 bytes jorth.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- jorth.h | 2 +- road.jor | 4 +++- sprite.tif | Bin 4078 -> 4078 bytes state.jor | 7 ++++--- testbed.c | 14 +++++++------- trail1.jor | 4 ++-- 14 files changed, 79 insertions(+), 25 deletions(-) diff --git a/boot.jor b/boot.jor index b39e239..eab41fc 100755 --- a/boot.jor +++ b/boot.jor @@ -60,11 +60,14 @@ defer onload : postload ' onload definition ' noop ' onload redefine execute ; : loadimage ( -- [0 | onload] ) - fget fget fget fget fget ( onload tasks latest size start ) - here != if tell + seek drop drop drop 0 else - dup here fread here + here! latest! tasks! then ; + imagemagic fget = if + fget fget fget fget fget ( onload tasks latest size start ) + here != if tell + seek drop drop drop 0 else + dup here fread here + here! latest! tasks! then + else 0 then ; : saveimage ( herestart -- ) + imagemagic fput ' onload definition here drop fput tasks fput latest fput diff --git a/game.exe b/game.exe index 51307df219454723b9bba125e6a5af1b6396cb83..0eae2dbefdc5d4c85a55d48c8a58a95b6a0ae2c3 100755 GIT binary patch delta 30882 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 T+7nNRlpwLN{nih}&4&K~W%sBk delta 29994 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 Ke6zKP6(a!Xkw_;1 delta 231 zcmeyW^;K(wIvaEJ#`euxY$w=w!#B431u8HwEOcgIXx{vv=Q$H|MN!-4m;B+3j2)95 z1;yi6GMF*5F*z|8Fi9~BGbu1lW@KRg%(R5bhDnNX8-pfe5Mu~K2m=EH2ZK0+FVHl0 z1_h27F>Wv^#vrn&&X0>>@lsd6|Ns5O7&I6}4$5x)4-)nA{|^F_wS;6vK@2bdpb!r| zpfeZ*7*rT?i`pi)3)*XdREjbjnG@+J!r)j^4>YBboq-vwR^dNTkza^waEOzu%jN)~ O7mUn6)tjwFtQY}Y_DCxL diff --git a/jopl.c b/jopl.c index 591727e..3b14f2d 100755 --- a/jopl.c +++ b/jopl.c @@ -53,13 +53,13 @@ void f_keydown() { TOP().i = keyIsDown(TOP().i); } -void do_repl() { +void do_repl(char *exe) { char buf[128]; adlib_init(); timer_init(TIMER_18HZ); - f_init(); + f_init(exe); CDEF("quit", f_quit); CDEF("adlib!", f_adlib_write); @@ -84,7 +84,7 @@ void do_repl() { } } -int main() { - do_repl(); +int main(int argc, char *argv[]) { + do_repl(argv[0]); return 0; } \ No newline at end of file diff --git a/jopl.exe b/jopl.exe index dc2eab23f764192d684c02df812709b13e64a1b4..d0198662979f83f637a406d82cd1b8d6f6051a39 100755 GIT binary patch delta 24070 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 ZYnR;Z ub@ oct+ notestate @ if b, else noteon rest then ; : %loop 0xfe b, , ; +: mod % ; : % notestate @ if 0xf0 b, else rest then ; : %% 0 for % next ; : %- notestate @ if 0xfd b, else noteoff then ; @@ -134,11 +135,14 @@ array tracks 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , : ;track %loop 0 notestate ! ; : shush 0 voice @ track ! %- ; +var tempo 1 tempo ! : player 1 songticks +! - voice @ - 0 10 for i voice ! i track-tick next - voice ! ; + songticks @ tempo @ mod 0 = if + voice @ + 0 10 for i voice ! i track-tick next + voice ! + then ; var t2 : startt2 diff --git a/jopl.prj b/jopl.prj index 7624429dd1d397df4d413d8a506517f639f201de..4f3b654f0a06c6cfcbe38e121fc0e54fe27f407d 100755 GIT binary patch delta 184 zcmZ3cv`lG(IvaE3y3Wm7Y$w=w8P;|B-B4m+IO5E}uzvG@9&<+4FrZM_WNW@+TUEv^ z#;=Um8MiU6WSq_T|Nk?F35<@6&5UJ?QjD7zVj1fg{{J^(Fk)a};9+262mtD1Wl-RV z5#wU`vbJ;bYd&iOc7~%XI{i4nqMTro1);)^n_=-%SHJ)N8Q2;AgY@a?O;+NcIQcn$ SIy1CwY;$H{n6UXjk2xdj&Y7)#K9jBaifunK zWHEkayw13daV6ty#{d5}F-%}|WNcO?#}LcN3luYAFk)a};9+26*bLOi%Amjz zBgVxbvZ!wIYd-7AQT)9|91QFXmpkhHIKXn82o-+Z42ze#`u+d!$HgGZAaYQ4@uAI>i70 diff --git a/jorth.c b/jorth.c index b5d4fb2..cd26a41 100755 --- a/jorth.c +++ b/jorth.c @@ -2,6 +2,7 @@ #include #include +#include #include "jorth.h" #include "serial.h" @@ -164,6 +165,26 @@ void f_bset() { DROP(1); } +void f_farset() { + *((cell far *)MK_FP(TOP().u, ST1().u)) = ST2(); + DROP(3); +} + +void f_farget() { + ST1() = *((cell far *)MK_FP(TOP().u, ST1().u)); + DROP(1); +} + +void f_farbset() { + *((char far *)MK_FP(TOP().u, ST1().u)) = ST2().i; + DROP(3); +} + +void f_farbget() { + ST1().i = *((char far *)MK_FP(TOP().u, ST1().u)); + DROP(1); +} + void f_addset() { TOP().p->i += ST1().i; DROP(2); @@ -841,10 +862,25 @@ void f_image_up_to_date() { TOP().i = uptodate; } +static int imagemagic = -1; +static void f_calc_imagemagic(char *exefilename) { + struct stat exe; + if (stat(exefilename, &exe) == 0) { + imagemagic = exe.st_mtime; + } +} + + void f_loadimage() { cell *start, *latestNew, *tasksNew; size_t size; + int magic; + fread(&magic, sizeof(int), 1, ACTIVE_FILE); + if (magic != imagemagic) { + PUSHI(0); + return; + } fread(&start, sizeof(cell *), 1, ACTIVE_FILE); fread(&latestNew, sizeof(cell *), 1, ACTIVE_FILE); fread(&tasksNew, sizeof(cell *), 1, ACTIVE_FILE); @@ -863,6 +899,7 @@ void f_loadimage() { void f_saveimage() { size_t size = (size_t)(((char*)HERE) - TOP().s); + fwrite(&imagemagic, sizeof(int), 1, ACTIVE_FILE); fwrite(&TOP().p, sizeof(cell *), 1, ACTIVE_FILE); fwrite(&LATEST, sizeof(cell *), 1, ACTIVE_FILE); fwrite(&TASKS, sizeof(cell *), 1, ACTIVE_FILE); @@ -991,7 +1028,9 @@ void f_taskusersize() { PUSHU(TASK_USER_SIZE); } -void f_init() { +void f_init(char *exe) { + f_calc_imagemagic(exe); + CDEF("[", f_compileoff); f_immediate(); CDEF("]", f_compileon); CDEF("key", f_key); @@ -1053,6 +1092,10 @@ void f_init() { CDEF("b@", f_bget); CDEF("ub@", f_ubget); CDEF("b!", f_bset); + CDEF("!far", f_farset); + CDEF("@far", f_farget); + CDEF("b!far", f_farbset); + CDEF("b@far", f_farbget); CDEF("dup", f_dup); CDEF("over", f_over); CDEF("drop", f_drop); @@ -1112,6 +1155,7 @@ void f_init() { PCONST("$DOCREATE", f_docreate); PCONST("$DOVAR", f_dovar); PCONST("$DODEFERRED", f_dodeferred); + ICONST("imagemagic", imagemagic); #ifdef TRACE CDEF("traceon", f_traceon); CDEF("traceoff", f_traceoff); diff --git a/jorth.h b/jorth.h index 0b9b8b2..473fcdf 100755 --- a/jorth.h +++ b/jorth.h @@ -4,7 +4,7 @@ #define STACK_SIZE 64 #define RSTACK_SIZE 32 -void f_init(); +void f_init(char *exe); void f_cdef(); void f_immediate(); diff --git a/road.jor b/road.jor index 03dce2a..e0e991f 100755 --- a/road.jor +++ b/road.jor @@ -4,7 +4,9 @@ :noname 1 player.state DRIVING f! - :| player yield chuck yield 0 |; ' entities redefine + :| player yield + chuck.state @ CHUCK-HOME = if chuck yield then + 0 |; ' entities redefine :| touch-begin E leaving? dup if pete say" It's 100 miles to the next town." then diff --git a/sprite.tif b/sprite.tif index 187d5718aed303b4f2991e3316dad04bf02a2108..ebdcc4260e7649021c1d76a02036eaa07820fb40 100755 GIT binary patch delta 155 zcmaDS|4x2GJZJrX5cu}rA55bVE)cOVE-qkUmorDe0x 1) { - do_repl(); + do_repl(argv[0]); return 0; } ser_init(SER_COM2, BAUD_19200, SER_8N1); game_init(); - game_f_init(); + game_f_init(argv[0]); tick = f_lookupcp("tick"); draw = f_lookupcp("draw"); diff --git a/trail1.jor b/trail1.jor index 717555b..e679f69 100755 --- a/trail1.jor +++ b/trail1.jor @@ -11,7 +11,7 @@ car :touch 0 player.state DRIVING f! :| player yield - chuck.state @ CHUCK-LOST = if e_chuck yield then + chuck.state @ CHUCK-SEARCH = if e_chuck yield then player.driving? not if car yield then 0 |; ' entities redefine @@ -22,7 +22,7 @@ touch-begin S leaving? dup else player move-entity 13 7 road.jor queue-level then then -chuck.state @ CHUCK-LOST = if +chuck.state @ CHUCK-SEARCH = if touch-next 37 60 2= dup if pete say" Oh for the love of..."