home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / GAMES / infocom_src.lha / infocom.h < prev    next >
Text File  |  1993-03-03  |  17KB  |  633 lines

  1. /*
  2. **    File:    infocom.h
  3. **
  4. **    (C)opyright 1987-1992 InfoTaskforce.
  5. */
  6.  
  7. /*
  8. **    INFOCOM INTERPRETER.
  9. **    
  10. **    (C)opyright InfoTaskforce.
  11. **    4th April, 1988.
  12. **
  13. **    This version:
  14. **                    6th October, 1990.
  15. **
  16. **    "May the Grues be with you !"
  17. **
  18. */
  19.  
  20. #ifndef    __INFOCOM__
  21.  
  22. #define        __INFOCOM__
  23.  
  24. #include    "machine.h"
  25.  
  26. /*
  27. **    Universal Type Definitions.
  28. **
  29. **    'byte'            - 8 bits    ; unsigned.
  30. **    'word'            - 16 bits    ; unsigned.
  31. **    'long_word'        - 32 bits    ; unsigned.
  32. **
  33. **    'signed_word'    - 16 bits    ; signed.
  34. **    'signed_long'    - 32 bits    ; signed.
  35. */
  36.  
  37. typedef        unsigned char    byte ;
  38. typedef        unsigned short    word ;
  39. typedef        unsigned long    long_word ;
  40. typedef        short            signed_word ;
  41. typedef        long            signed_long ;
  42.  
  43. typedef        byte HUGE        *byte_ptr ;
  44.  
  45. typedef        char            boolean ;
  46. typedef        Void            (*proc_ptr)() ;
  47. typedef        byte_ptr        property ;
  48.  
  49. /*
  50. **    Universal Constants
  51. **
  52. **    Note:
  53. **        MAX_BYTES            = maximum RAM size ( in bytes - rounded to the
  54. **                              nearest 512-byte boundary ) allocated by the
  55. **                              standard "malloc" library function. This
  56. **                              value assumes the arguement to "malloc" is
  57. **                              a 16-bit unsigned int.
  58. **        STACK_SIZE            = size in words
  59. **        BLOCK_SIZE            = size in bytes
  60. **        TABLE_SIZE            = size of white_space buffer
  61. **        MAX_LINE_LENGTH        = maximum screen line size
  62. */
  63.  
  64. #ifndef    FALSE
  65. #define        FALSE                        (0)
  66. #endif    /* FALSE */
  67.  
  68. #ifndef    TRUE
  69. #define        TRUE                        (!FALSE)
  70. #endif    /* TRUE */
  71.  
  72. #define        BITS_PER_BYTE                ((byte)8)
  73. #define        BYTE_MASK                    ((byte)0xFF)
  74.  
  75. #define        BELL                        ((char)0x07)
  76. #define        VERTICAL_TAB                ((char)0x0B)
  77. #define        LOCAL_VARS                    ((byte)0x10)
  78. #define        MAX_PARAMS                    ((byte)0x08)
  79.  
  80. #define        MAX_BYTES                    ((word)0xFE00)
  81. #define        STACK_SIZE                    ((word)0x0400)
  82. #define        BLOCK_SIZE                    ((word)0x0200)
  83. #define        TABLE_SIZE                    ((word)0x0100)
  84. #define        MAX_LINE_LENGTH                ((word)0x0200)
  85.  
  86. #define        MOST_SIGNIFICANT_BYTE(x)    (((word)(x) >> BITS_PER_BYTE) & BYTE_MASK)
  87. #define        LEAST_SIGNIFICANT_BYTE(x)    ((word)(x) & BYTE_MASK)
  88.  
  89. #define        VERSION_1                    ((byte)0x01)
  90. #define        VERSION_2                    ((byte)0x02)
  91. #define        VERSION_3                    ((byte)0x03)
  92. #define        VERSION_4                    ((byte)0x04)
  93. #define        VERSION_5                    ((byte)0x05)
  94.  
  95. #define        MAX_VERSION                    VERSION_5
  96.  
  97. #define        PROCEDURE                    ((word)0)
  98. #define        FUNCTION                    ((word)0x0100)
  99.  
  100. #define        STD_PAGE(x)                    ((word)(x) >> BITS_PER_BYTE)
  101. #define        STD_OFFSET(x)                (((word)(x) & BYTE_MASK) << 1)
  102. #define        STD_CHARS_PER_WORD            ((word)0x06)
  103. #define        STD_ENCODED_SIZE            ((word)(STD_CHARS_PER_WORD/3))
  104. #define        PLUS_PAGE(x)                ((word)(x) >> 7)
  105. #define        PLUS_OFFSET(x)                (((word)(x) & 0x7F) << 2)
  106. #define        PLUS_CHARS_PER_WORD            ((word)0x09)
  107. #define        PLUS_ENCODED_SIZE            ((word)(PLUS_CHARS_PER_WORD/3))
  108.  
  109. /*
  110. **    Enhanced and Plus Series Windowing Definitions.
  111. */
  112.  
  113. #define        WINDOW_0                    ((word)0)
  114. #define        WINDOW_1                    ((word)1)
  115. #define        FULL_SCREEN                    ((word)2)
  116. #define        STD_TOP_SCREEN_LINE            ((word)1)
  117. #define        PLUS_TOP_SCREEN_LINE        ((word)0)
  118.  
  119. /*
  120. **    Error Codes
  121. */
  122.  
  123. #define        ERR_MEMORY                    ((word)0x0000)
  124. #define        ERR_OPCODE                    ((word)0x0015)
  125. #define        ERR_HEADER                    ((word)0x0016)
  126. #define        ERR_PUT_PROP                ((word)0x0017)
  127. #define        ERR_NEXT_PROP                ((word)0x0018)
  128.  
  129. #define        PLUS_ERROR_1                ((word)0x03E9)
  130. #define        PLUS_ERROR_2                ((word)0x03EA)
  131.  
  132. /*
  133. **    Signal Handler States.
  134. */
  135.  
  136. #define        SH_EXIT                        ((int)-1)
  137. #define        SH_INIT                        ((int)0)
  138. #define        SH_NORMAL                    ((int)1)
  139. #define        SH_NO_IO                    ((int)2)
  140.  
  141. #define        SH_NO_SIGNAL                ((int)0x00)
  142. #define        SH_CLOSE                    ((int)0x01)
  143. #define        SH_IO                        ((int)0x02)
  144. #define        SH_COREDUMP                    ((int)0x04)
  145.  
  146. /*
  147. **    Command Line Options
  148. */
  149.  
  150. #define        NO_OPTIONS        ((word)0x0000)    /*     No Options Selected        */
  151. #define        OBJ_ATTR        ((word)0x0001)    /* a = Monitor Object Attributes  */
  152. #define        ECHO_INPUT        ((word)0x0002)    /* e = Echo Input Characters      */
  153. #define        HEAD_INFO        ((word)0x0004)    /* h = Print Header Information   */
  154. #define        OBJECTS            ((word)0x0008)    /* o = Print Object / Room List   */
  155. #define        NO_PAGE            ((word)0x0010)    /* p = Disable pager              */
  156. #define        TREE            ((word)0x0020)    /* r = Print Object / Room Tree   */
  157. #define        SHOW_PROPS        ((word)0x0040)    /* s = Print Object Properties    */
  158. #define        OBJ_XFER        ((word)0x0080)    /* t = Monitor Object Transfers   */
  159. #define        VOCABULARY        ((word)0x0100)    /* v = Print Vocabulary Word List */
  160. #define        EXTENDED_VOCAB    ((word)0x0200)    /* x = Print Extended Vocabulary  */
  161.  
  162. /*
  163. **    Object Structure Definition.
  164. **
  165. **    Note:
  166. **        We want the size of a standard object to be 9 bytes, but some
  167. **    compliers will only make it an integral number of WORDS. Thus
  168. **    we have to explicitly define the size of an object structure.
  169. */
  170.  
  171. #define        STD_OBJ_SIZE                ((byte)0x09)
  172. #define        PLUS_OBJ_SIZE                (sizeof(plus_object))
  173. #define        STD_OBJ_OFFSET                ((byte)0x35)
  174. #define        PLUS_OBJ_OFFSET                ((byte)0x70)
  175. #define        FIRST_ATTRIBUTE                ((byte)0x80)
  176.  
  177. #define        STD_OBJ_ADDR(x)                ((std_object_ptr)((byte_ptr)std_obj_list + ((x) * STD_OBJ_SIZE) + STD_OBJ_OFFSET))
  178. #define        PLUS_OBJ_ADDR(x)            ((plus_object_ptr)((byte_ptr)plus_obj_list + ((x) * PLUS_OBJ_SIZE) + PLUS_OBJ_OFFSET))
  179.  
  180. typedef struct
  181. {
  182.     byte    attributes[4] ;
  183.     byte    location[1] ;
  184.     byte    link[1] ;
  185.     byte    holds[1] ;
  186.     byte    prop_ptr[2] ;
  187. } std_object ;
  188.  
  189. typedef struct
  190. {
  191.     byte    attributes[6] ;
  192.     byte    location[2] ;
  193.     byte    link[2] ;
  194.     byte    holds[2] ;
  195.     byte    prop_ptr[2] ;
  196. } plus_object ;
  197.  
  198. typedef        std_object HUGE                *std_object_ptr ;
  199. typedef        plus_object HUGE            *plus_object_ptr ;
  200.  
  201. /*
  202. **    Property Mask Definitions.
  203. */
  204.  
  205. #define        STD_PROP_NUM_BITS            ((int)5)
  206. #define        PLUS_PROP_NUM_BITS            ((int)6)
  207. #define        STD_PROP_NUM_MASK            ((byte)0x1F)
  208. #define        PLUS_PROP_NUM_MASK            ((byte)0x3F)
  209. #define        NEXT_BYTE_IS_LENGTH            ((byte)0x80)
  210. #define        STD_WORD_MASK                ((byte)0x20)
  211. #define        PLUS_WORD_MASK                ((byte)0x40)
  212. #define        STD_PROPERTY_LENGTH(p)        ((*(p) >> STD_PROP_NUM_BITS) + 1)
  213. #define        PLUS_PROPERTY_LENGTH(p)        PLUS_PROPERTY_NUMBER(p)
  214. #define        STD_PROPERTY_NUMBER(p)        (*(p) & STD_PROP_NUM_MASK)
  215. #define        PLUS_PROPERTY_NUMBER(p)        (*(p) & PLUS_PROP_NUM_MASK)
  216.  
  217. /*
  218. **    Page Table Definitions.
  219. */
  220.  
  221. #define        EMPTY_PAGE                    ((word)0xFFFE)
  222. #define        END_OF_TABLE                ((word)0xFFFF)
  223. #define        MAX_COUNT                    ((long_word)0xFFFFFFFF)
  224.  
  225. typedef struct
  226. {
  227.     word        page ;
  228.     long_word    count ;
  229.     word        padding ;
  230. } page_table_t ;
  231.  
  232. typedef        page_table_t HUGE            *page_table_ptr ;
  233.  
  234. /*
  235. **    Infocom Game Header Structure.
  236. */
  237.  
  238. struct    header
  239. {
  240.     byte    z_code_version ;        /* Game's Z-CODE Version Number         */
  241.     byte    mode_bits ;                /* Status Bar display indicator         */
  242.     word    release ;                /* Game Release Number                  */
  243.     word    resident_bytes ;        /* No. bytes in the Resident Area       */
  244.     word    start ;                    /* Offset to Start of Game              */
  245.     word    vocab ;                    /* Offset to VocabtList                 */
  246.     word    object_list ;            /* Offset to Object/Room List           */
  247.     word    globals ;                /* Offset to Global Variables           */
  248.     word    save_bytes ;            /* No. bytes in the Save Game Area      */
  249.     word    script_status ;            /* Z-CODE printing modes                */
  250.     char    serial_no[6] ;            /* Game's Serial Number                 */
  251.     word    common_word ;            /* Offset to Common Word List           */
  252.     word    verify_length ;            /* No. words in the Game File           */
  253.     word    verify_checksum ;        /* Game Checksum - used by Verify       */
  254.     byte    interpreter_number ;    /* Number          - Set by Interpreter */
  255.     byte    interpreter_version ;    /* ASCII Character - Set by Interpreter */
  256.     byte    screen_height ;            /* Screen Height   - Set by Interpreter */
  257.     byte    screen_width ;            /* Screen Width    - Set by Interpreter */
  258.     byte    left ;                    /* Left Coordinate - Set by Interpreter */
  259.     byte    right ;                    /* Right Coord.    - Set by Interpreter */
  260.     byte    top ;                    /* Top Coordinate  - Set by Interpreter */
  261.     byte    bottom ;                /* Bottom Coord.   - Set by Interpreter */
  262.     byte    unknown1 ;                /* Unknown         - Set by Interpreter */
  263.     byte    unknown2 ;                /* Unknown         - Set by Interpreter */
  264.     word    padding1[2] ;            /* Blank                                */
  265.     byte    unknown3 ;                /* Unknown         - Set by Interpreter */
  266.     byte    unknown4 ;                /* Unknown         - Set by Interpreter */
  267.     word    unknown5 ;                /* Unknown         - Set in Data File   */
  268.     word    padding2[3] ;            /* Blank                                */
  269.     word    unknown6 ;                /* Unknown         - Set in Data File   */
  270.     word    padding3[4] ;            /* Blank                                */
  271. } ;
  272. typedef        struct header    header ;
  273. typedef        header HUGE        *header_ptr ;
  274.  
  275. /*
  276. **    Header Information.
  277. **
  278. **    The 'z_code_version' byte has the following meaning:
  279. **        $00 : Game compiled for an early version of the interpreter
  280. **        $01 : Game compiled for an early version of the interpreter
  281. **        $02 : Game compiled for an early version of the interpreter
  282. **        $03 : Game compiled for the current 'Standard Series Interpreter'
  283. **        $04 : Game compiled for the current 'Plus Series Interpreter'
  284. **
  285. **    The 'mode_bits' byte performs the following functions:
  286. **        Bit 0 :        Clear    - Game Header OK.
  287. **                    Set        - Game Header Error.
  288. **        Bit 1 :        Clear    - Status Bar displays the SCORE.
  289. **                    Set        - Status Bar displays the TIME.
  290. **        Bit 2 :        Clear
  291. **                    Set
  292. **        Bit 3 :        Clear    - Standard:    Normal.
  293. **                    Set        - Standard:    "Licensed to Tandy Corporation" Flag.
  294. **                    Clear    - Plus:        Capitalise instead of Underline.
  295. **                    Set        - Plus:        Has Underline Capability.
  296. **        Bit 4 :        Clear
  297. **                    Set
  298. **        Bit 5 :        Clear    - No Special Screen Modes Available.
  299. **                    Set        - Special Screen Modes Available.
  300. **        Bit 6 :        Clear
  301. **                    Set
  302. **        Bit 7 :        Clear
  303. **                    Set
  304. **
  305. **    The 'script_status' word is used by Z-CODE to set printing modes
  306. **    for use by the interpreter:
  307. **        Bit 00 :    Clear    - Script mode off.
  308. **                    Set        - Script mode on.
  309. **        Bit 01 :    Clear    - Use any type of Font.
  310. **                    Set        - Use a Non-Proportional Font only.
  311. **        Bit 10 :    Clear    - Printer OK.
  312. **                    Set        - Printer Error (e.g.: Not Connected ).
  313. */
  314.  
  315. /*
  316. **    "mode_bits" Bit Definitions:
  317. */
  318.  
  319. #define        GAME_HEADER_OK        ((byte)0xFE)
  320. #define        GAME_HEADER_BAD        ((byte)0x01)
  321. #define        USE_SCORE            ((byte)0xFD)
  322. #define        USE_TIME            ((byte)0x02)
  323. #define        NON_TANDY            ((byte)0xF7)
  324. #define        TANDY                ((byte)0x08)
  325. #define        CAPITALISE            ((byte)0xF7)
  326. #define        UNDERLINE            ((byte)0x08)
  327. #define        NO_SCREEN_MODES        ((byte)0xDF)
  328. #define        SCREEN_MODES        ((byte)0x20)
  329.  
  330. /*
  331. **    "script_status" Bit Definitions:
  332. */
  333.  
  334. #define        SCRIPT_MODE_OFF        ((word)0xFFFE)
  335. #define        SCRIPT_MODE_ON        ((word)0x0001)
  336. #define        USE_ANY_FONT        ((word)0xFFFD)
  337. #define        USE_NON_PROP_FONT    ((word)0x0002)
  338. #define        SCRIPT_OK            ((word)0xFBFF)
  339. #define        SCRIPT_ERROR        ((word)0x0400)
  340.  
  341. /*
  342. **    "interpreter_number" Byte Definitions:
  343. */
  344.  
  345. #define        XZIP                ((byte)0x00)
  346. #define        DEC_20                ((byte)0x01)
  347. #define        APPLE_2E            ((byte)0x02)
  348. #define        MACINTOSH            ((byte)0x03)
  349. #define        AMIGA                ((byte)0x04)
  350. #define        ATARI_ST            ((byte)0x05)
  351. #define        IBM_MSDOS            ((byte)0x06)
  352. #define        COMMODORE_128        ((byte)0x07)
  353. #define        C64                    ((byte)0x08)
  354. #define        APPLE_2C            ((byte)0x09)
  355. #define        APPLE_2GS            ((byte)0x0A)
  356. #define        TANDY_COLOR            ((byte)0x0B)
  357. #define        OS_9                ((byte)0x0F)
  358.  
  359. /*
  360. **    Function Prototypes
  361. */
  362.  
  363. word            find_mode_v1 () ;
  364. word            find_mode_v3 () ;
  365. word            convert () ;
  366. byte            get_byte () ;
  367. word            get_word () ;
  368. byte            next_byte () ;
  369. word            next_word () ;
  370. word            load_var () ;
  371. word            load () ;
  372. word            make_word () ;
  373. byte_ptr        init_status ();
  374. char            *copy_string () ;
  375. word            look_up () ;
  376. word            scan_buffer () ;
  377. word            get_code () ;
  378. byte_ptr        fetch_page () ;
  379. page_table_ptr    get_LRU_page () ;
  380.  
  381. char            read_char () ;
  382. int                open_file () ;
  383. word            allocate () ;
  384. boolean            open_script () ;
  385.  
  386. int                default_get_x () ;
  387. int                default_get_y () ;
  388. int                main () ;
  389.  
  390. Void            PrintNumber () ;
  391. Void            adv_compare2 () ;
  392. Void            adv_gosub () ;
  393. Void            adv_pop_stack () ;
  394. Void            adv_rtn () ;
  395. Void            advanced_parse_buffer () ;
  396. Void            and () ;
  397. Void            ansi_erase_to_eoln () ;
  398. Void            ansi_erase_window () ;
  399. Void            ansi_goto_xy () ;
  400. Void            ansi_init_io () ;
  401. Void            ansi_putchar () ;
  402. Void            ansi_restore_cursor () ;
  403. Void            ansi_save_cursor () ;
  404. Void            arithmetic_shift () ;
  405. Void            assign () ;
  406. Void            do_beep () ;
  407. Void            bit () ;
  408. Void            bit_byte () ;
  409. Void            block_copy () ;
  410. Void            branch_true () ;
  411. Void            buffer_copy () ;
  412. Void            call () ;
  413. Void            call_function () ;
  414. Void            clear_flag () ;
  415. Void            do_clear_screen () ;
  416. Void            close_file () ;
  417. Void            close_script () ;
  418. Void            compare () ;
  419. Void            cp_zero () ;
  420. Void            curses_erase_to_eoln () ;
  421. Void            curses_erase_window () ;
  422. Void            curses_exit_io () ;
  423. Void            curses_goto_xy () ;
  424. Void            curses_init_io () ;
  425. Void            curses_putchar () ;
  426. Void            deallocate () ;
  427. Void            dec_chk () ;
  428. Void            dec_var () ;
  429. Void            decode () ;
  430. Void            default_goto_xy () ;
  431. Void            default_putchar () ;
  432. Void            default_restore_cursor () ;
  433. Void            default_save_cursor () ;
  434. Void            default_signal_init () ;
  435. Void            default_signal_quit () ;
  436. Void            display () ;
  437. Void            divide () ;
  438. Void            encrypt () ;
  439. Void            erase_line () ;
  440. Void            error () ;
  441. Void            execute_opcode () ;
  442. Void            fix_pc () ;
  443. Void            flush_prt_buff () ;
  444. Void            get_key () ;
  445. Void            get_var () ;
  446. Void            gosub2 () ;
  447. Void            gosub4 () ;
  448. Void            gosub5 () ;
  449. Void            greater_than () ;
  450. Void            hex_digit () ;
  451. Void            hex_display () ;
  452. Void            illegal_opcode () ;
  453. Void            inc_chk () ;
  454. Void            inc_var () ;
  455. Void            init () ;
  456. Void            init_input () ;
  457. Void            init_interpreter () ;
  458. Void            init_message () ;
  459. Void            init_opcodes () ;
  460. Void            init_page () ;
  461. Void            init_print () ;
  462. Void            init_script () ;
  463. Void            input () ;
  464. Void            io_buffer_mode () ;
  465. Void            io_mode () ;
  466. Void            jump () ;
  467. Void            less_than () ;
  468. Void            letter_v1 () ;
  469. Void            letter_v2 () ;
  470. Void            letter_v3 () ;
  471. Void            load_byte_array () ;
  472. Void            load_page () ;
  473. Void            load_word_array () ;
  474. Void            logical_shift () ;
  475. Void            lsc_erase_to_eoln () ;
  476. Void            lsc_erase_window () ;
  477. Void            lsc_init_io () ;
  478. Void            lsc_putchar () ;
  479. Void            lsc_use_window () ;
  480. Void            minus () ;
  481. Void            mod () ;
  482. Void            more () ;
  483. Void            msc_erase_to_eoln () ;
  484. Void            msc_erase_window () ;
  485. Void            msc_exit_io () ;
  486. Void            msc_goto_xy () ;
  487. Void            msc_init_io () ;
  488. Void            msc_putchar () ;
  489. Void            msc_textattr () ;
  490. Void            msdos_putchar () ;
  491. Void            msdos_signal_init () ;
  492. Void            msdos_signal_quit () ;
  493. Void            multiply () ;
  494. Void            new_line () ;
  495. Void            not () ;
  496. Void            null () ;
  497. Void            null_io () ;
  498. Void            num_local_params () ;
  499. Void            obtree () ;
  500. Void            operand1 () ;
  501. Void            operand2 () ;
  502. Void            operand3 () ;
  503. Void            operand4 () ;
  504. Void            options () ;
  505. Void            or () ;
  506. Void            out_char () ;
  507. Void            parameter_copy () ;
  508. Void            parse () ;
  509. Void            plus () ;
  510. Void            plus_check_loc () ;
  511. Void            plus_clr_attr () ;
  512. Void            plus_compare2 () ;
  513. Void            plus_encode () ;
  514. Void            plus_get_holds () ;
  515. Void            plus_get_link () ;
  516. Void            plus_get_loc () ;
  517. Void            plus_get_next_prop () ;
  518. Void            plus_get_p_len () ;
  519. Void            plus_get_prop_addr () ;
  520. Void            plus_getprop () ;
  521. Void            plus_gosub () ;
  522. Void            plus_p_obj () ;
  523. Void            plus_parse_buffer () ;
  524. Void            plus_print2 () ;
  525. Void            plus_put_prop () ;
  526. Void            plus_random () ;
  527. Void            plus_remove_obj () ;
  528. Void            plus_set_attr () ;
  529. Void            plus_test_attr () ;
  530. Void            plus_transfer () ;
  531. Void            pop () ;
  532. Void            print1 () ;
  533. Void            print_buffer () ;
  534. Void            print_char () ;
  535. Void            print_coded () ;
  536. Void            print_item () ;
  537. Void            print_num () ;
  538. Void            print_status () ;
  539. Void            print_text () ;
  540. Void            print_word () ;
  541. Void            prt_status () ;
  542. Void            push () ;
  543. Void            put_status () ;
  544. Void            put_var () ;
  545. Void            quit () ;
  546. Void            raw_display () ;
  547. Void            read_header () ;
  548. Void            read_line () ;
  549. Void            restart () ;
  550. Void            restore_cursor_position () ;
  551. Void            restore_game () ;
  552. Void            ret_false () ;
  553. Void            ret_true () ;
  554. Void            ret_value () ;
  555. Void            rts () ;
  556. Void            save_byte_array () ;
  557. Void            save_cursor_position () ;
  558. Void            save_game () ;
  559. Void            save_word_array () ;
  560. Void            script_char () ;
  561. Void            seed_random () ;
  562. Void            set_current_window () ;
  563. Void            set_cursor_posn () ;
  564. Void            set_flag () ;
  565. Void            set_text_mode () ;
  566. Void            show_header () ;
  567. Void            show_objects () ;
  568. Void            show_tree () ;
  569. Void            show_vocab () ;
  570. Void            signal_chit () ;
  571. Void            signal_shit () ;
  572. Void            split_screen () ;
  573. Void            std_check_loc () ;
  574. Void            std_clr_attr () ;
  575. Void            std_encode () ;
  576. Void            std_get_holds () ;
  577. Void            std_get_link () ;
  578. Void            std_get_loc () ;
  579. Void            std_get_next_prop () ;
  580. Void            std_get_p_len () ;
  581. Void            std_get_prop_addr () ;
  582. Void            std_getprop () ;
  583. Void            std_gosub () ;
  584. Void            std_p_obj () ;
  585. Void            std_parse_buffer () ;
  586. Void            std_pop_stack () ;
  587. Void            std_print2 () ;
  588. Void            std_put_prop () ;
  589. Void            std_random () ;
  590. Void            std_remove_obj () ;
  591. Void            std_rtn () ;
  592. Void            std_set_attr () ;
  593. Void            std_test_attr () ;
  594. Void            std_transfer () ;
  595. Void            store () ;
  596. Void            tc_erase_to_eoln () ;
  597. Void            tc_erase_window () ;
  598. Void            tc_goto_xy () ;
  599. Void            tc_init_io () ;
  600. Void            tc_putchar () ;
  601. Void            tcap_erase_to_eoln () ;
  602. Void            tcap_erase_window () ;
  603. Void            tcap_exit_io () ;
  604. Void            tcap_goto_xy () ;
  605. Void            tcap_init_io () ;
  606. Void            tcap_putchar () ;
  607. Void            tcap_restore_cursor () ;
  608. Void            tcap_save_cursor () ;
  609. Void            test_byte_array () ;
  610. Void            throw_away_stack_frame () ;
  611. Void            unix_exit_io () ;
  612. Void            unix_init_io () ;
  613. Void            unix_signal_init () ;
  614. Void            unix_signal_quit () ;
  615. Void            usage () ;
  616. Void            verify () ;
  617. #ifdef OSK
  618. #define writeln writeline
  619. #endif
  620. Void            writeln () ;
  621. Void            wrt () ;
  622.  
  623. /*
  624. **    PLUS Function Prototypes
  625. */
  626.  
  627. int                default_kbd_hit () ;
  628. word            read_the_key () ;
  629. word            special_gosub () ;
  630. boolean            wait_for_key () ;
  631.  
  632. #endif    /* __INFOCOM__ */
  633.