zorkzero/input.zabstr

50 lines
2.2 KiB
Plaintext

<BEGIN-SEGMENT 0>
<DEFINE-ROUTINE READ-INPUT>
<DEFINE-ROUTINE ADD-TO-INPUT>
<DEFINE-ROUTINE SCRIPT-INBUF>
<GLOBAL WIDTH 80>
<CONSTANT TCHARS <TABLE (BYTE) 255 0>>
<END-SEGMENT>
<BEGIN-SEGMENT SOFT>
<CONSTANT DIROUT-TABLE <ITABLE 80 <BYTE 0>>>
<DEFINE-ROUTINE PRINT-CENTER-TABLE>
<DEFINE SOFT-KEYS ("ARGS" TUP "AUX" (CNT 0) (DL (0)) L) <SET L <MAPF ,LIST <
FUNCTION ("AUX" VAL STR STRL) <COND (<EMPTY? .TUP> <MAPSTOP>)> <SET VAL <NTH .
TUP 1>> <SET STR <NTH .TUP 2>> <SET TUP <REST .TUP 2>> <COND (<TYPE? .STR
STRING> <SET STRL <LENGTH .STR>> <SET DL (.VAL .STRL .STR !.DL)> <COND (<L? .
STRL ,FLEN> <SET STR <STRING .STR <ISTRING <- ,FLEN .STRL> !\ >>>)> <SET CNT <+
.CNT 1>> <MAPRET .VAL <TABLE (STRING) ,FLEN .STRL .STR>>) (ELSE <MAPRET .VAL <
EVAL .STR>>)>>>> <CONSTANT FKEY-TBL <NTH .L 2>> <CONSTANT FKEYS-STRTABLE-LEN <*
.CNT <+ ,FLEN 2>>> <CONSTANT DEFAULT-FKEYS <TABLE (STRING) !.DL>> <CONSTANT
FKEYS <LTABLE !.L>>>
<CONSTANT FNAMES <LTABLE ,UP-ARROW " UP" ,DOWN-ARROW " DN" ,LEFT-ARROW " LF" ,
RIGHT-ARROW " RT" ,F1 " F1" ,F2 " F2" ,F3 " F3" ,F4 " F4" ,F5 " F5" ,F6 " F6" ,
F7 " F7" ,F8 " F8" ,F9 " F9" ,F10 "F10">>
<SYNTAX DEFINE = V-DEFINE>
<GLOBAL DONE-DEFINE? <>>
<DEFINE-ROUTINE V-DEFINE>
<DEFINE-ROUTINE IN-WINDOW?>
<DEFINE-ROUTINE DISPLAY-SOFTS>
<DEFINE-ROUTINE DISPLAY-SOFT>
<DEFINE-ROUTINE SOFT-RESET-DEFAULTS>
<CONSTANT DEFS-NAME <LTABLE (STRING) "DEFS">>
<DEFINE-ROUTINE SOFT-SAVE-DEFS>
<DEFINE-ROUTINE SOFT-RESTORE-DEFS>
<DEFINE-ROUTINE SOFT-EXIT>
<CONSTANT FLEN 30>
<CONSTANT SOFT-WINDOW 2>
<SOFT-KEYS ,UP-ARROW "n
" ,DOWN-ARROW "s
" ,LEFT-ARROW "w
" ,RIGHT-ARROW "e
" ,F1 "take " ,F2 "take all
" ,F3 "drop " ,F4 "look around
" ,F5 "inventory
" ,F6 "unlock door " ,F7 "jester, " ,F8 "give magic locket to moose
" ,F9 "read about " ,F10 "examine " -4 <TABLE "Save Defs" SOFT-SAVE-DEFS> -5 <
TABLE "Restore Defs" SOFT-RESTORE-DEFS> -6 <TABLE "Reset Defaults"
SOFT-RESET-DEFAULTS> -2 <TABLE "Exit" SOFT-EXIT>>
<END-SEGMENT>
<BEGIN-SEGMENT 0>
<DEFINE-ROUTINE Y?>
<DEFINE-ROUTINE BLINK>
<GLOBAL TYPED-TIMED-OUT <>>
<DEFINE-ROUTINE TYPED?>
<DEFINE-ROUTINE PICINF-PLUS-ONE>
<GLOBAL MOUSE-LOC-X <>>
<GLOBAL MOUSE-LOC-Y <>>
<DEFINE-ROUTINE MOUSE-INPUT?>
<END-SEGMENT>