home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l010 / 5.ddi / C5.ARC / EQUATES.ASM < prev    next >
Encoding:
Assembly Source File  |  1989-12-20  |  22.1 KB  |  756 lines

  1. ;--------------------------------------------------------------------------
  2. ;
  3. ;   To access internal LAYOUT calls, the user MUST push bp before
  4. ;   pushing the parameters required for the specific call.  Then
  5. ;   after the setup has been done for the call, BP is filled with the
  6. ;   correct INT 0F4H equate and an int 0F4H is executed.
  7. ;
  8. ;   Using the _BBX_ICALL macro with the name of the equate, without the
  9. ;   leading underscore (_) will produce calls within all the supported
  10. ;   languages correctly.
  11. ;
  12. ;   Example:  Using the _ADD_CARD internal call (compiles in all 4 languages)
  13. ;
  14. ;     PUSH       BP         ; store BP : accessing int 0F4H changes it
  15. ;
  16. ;     LES       DI,cardfile_handle
  17. ;     push       es
  18. ;     push       di         ; push cardfile handle on to stack to pass
  19. ;
  20. ;     LES       DI,cardfile_status
  21. ;     push       es
  22. ;     push       di         ; push cardfile status variable to pass
  23. ;
  24. ;     _BBX_ICALL    ADD_CARD, 8
  25. ;
  26. ;     ; this will call add_card in all 4 languages and restore the
  27. ;     ; stack properly
  28. ;
  29. ;     POP       BP
  30. ;
  31. ;------------------------- INT 0F4H EQUATES -------------------
  32.  
  33. ; these values are passed in bp when int 0F4H is called
  34.  
  35. _DPADD           equ    0
  36. _DPMUL           equ    1
  37. _DPDIV           equ    2
  38. _DFLOAT        equ    3
  39. _DINT           equ    4
  40. _DBINASC       equ    5
  41. _DASCBIN       equ    6
  42.  
  43. _ADVANCE_REL_ORIG    equ  7
  44. _RESTORE_REL_ORIG    equ  8
  45.  
  46. _GET_BYTE_PARAMS    equ  9
  47. _GET_BIT_PARAMS     equ  10
  48.  
  49. _INIT_BUFFER        equ  11
  50. _INIT_MEM_BUFFER    equ  12
  51. _INIT_FILE_BUFFER    equ  13
  52.  
  53. _DEINIT_BUFFER        equ  14
  54.  
  55. _DISPLAY_CARD        equ  15
  56. _EDIT_CARD        equ  16
  57.  
  58. _GET_MENU_INPUT     equ  17
  59. _GET_GENERAL_INPUT    equ  18
  60. _GET_CARD_INPUT     equ  19
  61. _DO_DISPLAY_CARD    equ  20
  62.  
  63. _GET_IMAGE        equ  21
  64. _DISPLAY_IMAGE        equ  22
  65. _DISPLAY_VARIABLE    equ  23
  66.  
  67. _DO_HELP_BOX        equ  24
  68. _SETUP_HELP        equ  25
  69. _SET_HELP_PAGE        equ  26
  70.  
  71. _ALLOCATE_VARIABLE    equ  27
  72. _SET_LIST_SIZE        equ  28
  73. _GET_CURRENT_ITEM    equ  29
  74. _INSERT_LIST_ITEM    equ  30
  75. _DELETE_LIST_ITEM    equ  31
  76.  
  77. _OPEN_CARD_FILE     equ  32
  78. _CLOSE_CARD_FILE    equ  33
  79. _GET_CARDFILE_INFO    equ  34
  80. _MOVE_FILE_PTR        equ  35
  81.  
  82. _ADD_CARD        equ  36
  83. _CLEAR_CARD        equ  37
  84. _DELETE_CARD        equ  38
  85. _GET_CURRENT_CARD    equ  39
  86. _REPLACE_CARD        equ  40
  87.  
  88. _GET_CARD_ID        equ  41
  89. _GET_CARD_LINK        equ  42
  90. _SET_CARD_LINK        equ  43
  91. _GET_CHOSEN_LINK    equ  44
  92.  
  93. _PRINT_CRLF        equ  45
  94. _PRINT_PAGE        equ  46
  95. _PRINT_TEXT        equ  47
  96. _PRINT_VARIABLE     equ  48
  97.  
  98. _EVALUATE_CONDITION    equ  49
  99. _EVALUATE_ASSIGNMENT    equ  50
  100.  
  101. _RESET_PROGRAM        equ  51
  102.  
  103. _PRINT_CARD        equ  52
  104. _DO_PRINT_CARD        equ  53
  105.  
  106. _LOAD_AND_RUN_BBX    equ  54
  107.  
  108. _INTERNAL_DBOX_ON    equ  55
  109. _INTERNAL_DBOX_OFF    equ  56
  110.  
  111. _INTERNAL_LOAD_BOX    equ  57
  112. _INTERNAL_SAVE_BOX    equ  58
  113.  
  114. _GET_CARD_TABLE_SIZE    equ  59
  115. _CARD_CHECK_HANDLE    equ  60
  116. _CARDFILE_READ        equ  61
  117. _CARDFILE_WRITE     equ  62
  118. _CARD_INSERT        equ  63
  119. _CARD_DELETE        equ  64
  120.  
  121. _GET_LIST_INDEX     equ  65
  122.  
  123. _ADD_CARD_IMAGE     equ  66
  124. _GET_ERROR_REFRESH    equ  67
  125. _GET_PROGRAM_PSP    equ  68
  126.  
  127.  
  128.  
  129. ; ---------------------------------------------------------------------------
  130. ; the following is not a call within itself, but it causes int 0F4H to set
  131. ; the ds segment to the interrupt's near data segment before executing the
  132. ; call.  This is to be used if the _BBX_ICALL macro is bypassed.
  133. ; ---------------------------------------------------------------------------
  134.  
  135. _SET_DS_DATA_FLAG  equ    8000H
  136.  
  137.  
  138. ; ---------------------------------------------------------------------------
  139. ;
  140. ; The following are the internal values used to indicate the type of variable
  141. ; in the variable segment of a flowchart.
  142. ;
  143. ; ---------------------------------------------------------------------------
  144.  
  145. prop_name_type       equ    1
  146. icon_name_type       equ    2
  147. image_name_type    equ    3
  148.  
  149. var_level2       equ    image_name_type     ; all level2 vars are data in
  150.                         ; other segments
  151. dword_name_type    equ    4
  152. integer_name_type  equ    5
  153. float_name_type    equ    6
  154. string_name_type   equ    7
  155. char_name_type       equ    8
  156. handle_name_type   equ    9      ; if the number of varname variables is
  157.                   ; >= link_field_type, change add_set_link
  158. card_id_name_type  equ    10
  159.  
  160. var_level3       equ    card_id_name_type   ; all level3 vars are simple vars
  161.                         ; that can be created
  162. check_name_type    equ    11
  163. link_field_type    equ    12
  164. input_name_type    equ    13
  165. exit_field_type    equ    input_name_type     ; used by cards
  166.  
  167.  
  168. var_level4       equ    exit_field_type     ; all level4 vars are check or
  169.                         ; link or exit variables
  170. list_name_type       equ    14
  171. card_var_name_type equ    15
  172.  
  173.  
  174. var_level5       equ    card_var_name_type  ; all level5 vars are separately
  175.                         ; typed and refer to other addresses
  176.  
  177. card_name_type       equ    16
  178.  
  179.  
  180. input_var_type_type    equ  1
  181. input_var_type_data    equ  2
  182. input_var_type_card    equ  10
  183.  
  184.      ; 0 - cancel or no action
  185.      ; 1 - object chosen
  186.      ; 2 - menu option
  187.      ; 3 - keystroke
  188.      ; 4 - unknown or other
  189.  
  190. object_cancel_value    equ  0
  191. object_object_chosen    equ  1
  192. object_menu_chosen    equ  2
  193. object_keystroke_value    equ  3
  194. object_unknown_value    equ  4
  195.  
  196.  
  197. card_var_type_type    equ  1
  198. card_var_type_flags    equ  2
  199. card_var_type_off    equ  3
  200. card_var_type_card    equ  5
  201. card_var_type_length    equ  9           ; length of entire card variable
  202.  
  203. list_var_type_type    equ  1
  204. list_var_type_flags    equ  2
  205. list_var_type_size    equ  3
  206. list_var_type_off    equ  5
  207. list_var_type_seg    equ  7
  208.  
  209. check_var_type_flags    equ  1
  210. check_var_type_addr    equ  2
  211. check_var_type_inum    equ  2           ; internal check's number
  212. check_var_type_bnum    equ  5           ; blackbox check's number
  213.  
  214. check_var_type_data    equ  6
  215.  
  216. check_var_data_length    equ  32        ; data length
  217.  
  218. check_var_multiple    equ  1           ; value for multiple fields
  219. check_var_internal    equ  2           ; value for internal check fields
  220. check_var_bbx        equ  4           ; value for blackbox check fields
  221.  
  222.  
  223. input_cancel_action    equ  0
  224. input_object_action    equ  1
  225. input_menu_action    equ  2
  226. input_keyboard_action    equ  3
  227. input_other_action    equ  4
  228.  
  229.  
  230. ; ---------------------------------------------------------------------------
  231. ;
  232. ; The following are the equates used when drawing icons on the screen or
  233. ; working with proportional text data
  234. ;
  235. ; ---------------------------------------------------------------------------
  236.  
  237.  
  238. empty_box_icon       equ    100H + 88      ; used w/ DRAW_ICON for an empty check
  239. check_box_icon       equ    100H + 86      ; used w/ DRAW_ICON for an checked box
  240.  
  241. prop_text_font_ht  equ    19           ; location within a proportional font
  242.                        ; maximum height of that font
  243.  
  244.  
  245. ; ---------------------------------------------------------------------------
  246. ;
  247. ; The following are the error codes already built into layout programs.
  248. ; These can be used with DO_ERROR_FAR
  249. ;
  250. ; ---------------------------------------------------------------------------
  251.  
  252.  
  253. bad_clipboard_code    equ  1
  254. bad_help_file_code    equ  2
  255. file_protected_code    equ  3
  256. disk_error_code     equ  4
  257. disk_full_code        equ  5
  258. invalid_password_code    equ  6
  259. need_master_code    equ  7
  260. not_pct_code        equ  8
  261. no_transfer_image_code    equ  9
  262. no_old_images_code    equ  10
  263. link_broken_code    equ  11
  264. not_enough_mem_code    equ  12
  265. cant_load_crd_code    equ  13
  266. system_error_code    equ  14
  267.  
  268. ifdef basic
  269. no_basic_img_code    equ  15
  270. endif
  271.  
  272. no_printer_code     equ  disk_error_code
  273.  
  274.  
  275. ;-------------------- Black Box Header Structure Equates -----------------
  276.  
  277.  
  278. bbx_name_length    equ    25
  279.  
  280. bbx_recognition    equ    0      ; 'B',8,4,6
  281. bbx_file_length    equ    4
  282. bbx_dir_num       equ    8
  283.  
  284. bbx_file_init_data_length    equ  10
  285.  
  286.  
  287. bbx_length       equ    0      ; length of entire header
  288. bbx_ip           equ    2      ; ip and cs within bbx to jump to
  289. bbx_cs           equ    4
  290. bbx_cs_ip       equ    6      ; actual relocated cs_ip after it's loaded
  291. bbx_used       equ    10      ; # of times this blackbox is used
  292. bbx_fname       equ    12      ; file name (without .BBX extension)
  293. bbx_name       equ    21      ; element name
  294. bbx_icon       equ    46      ; icon data
  295.  
  296. bbx_flags       equ    270      ; flags for this bbx
  297. bbx_num_checks       equ    271      ; # of check box types here
  298. bbx_check_ptr       equ    272      ; pointer to check type declarations
  299. bbx_message_ptr    equ    274      ; pointer to strings for this type
  300.  
  301. bbx_help_page       equ    276
  302. bbx_help_name       equ    278
  303.  
  304. bbx_param_len       equ    286      ; parameter length
  305.  
  306. bbx_param_flags    equ    288      ; flags for those parameters
  307. bbx_param_num       equ    289      ; # of parameters
  308. bbx_param_lst       equ    290      ; list follows in internal parameter form
  309.  
  310. ; the parameter list must be terminated in a -1
  311. ; it MUST contain a comment parameter, which is not passed
  312. ; following the parameters come the check types and then messages
  313. ; the whole thing MUST be divisible by 8
  314.  
  315. bbx_subdir_num       equ    273
  316. bbx_subdir_address equ    275
  317.  
  318.  
  319. bbx_memory_based   equ    1
  320. bbx_disk_based       equ    2
  321. bbx_layout_based   equ    4
  322.  
  323.  
  324. ; ---------------------------------------------------------------------------
  325. ;
  326. ; The following is the structure of a list header
  327. ;
  328. ; ---------------------------------------------------------------------------
  329.  
  330. pblock_top_off       equ    0      ; offset w/in list data of top item on screen
  331. pblock_curr_off    equ    2      ; offset of current item
  332. pblock_eof       equ    4      ; offset of end of list
  333. pblock_total       equ    6      ; total # of items w/in the list
  334. pblock_top_line    equ    8      ; # of top item on screen
  335. pblock_curr_line   equ    10      ; note that curr line starts from 0
  336. pblock_max       equ    12      ; maximum items that list can hold
  337.  
  338.                   ; bytes 14,15 are reserved
  339.  
  340. pblock_length       equ    16
  341.  
  342.  
  343. ; ---------------------------------------------------------------------------
  344. ;
  345. ; The following is the structure of a CardFile handle
  346. ;
  347. ; ---------------------------------------------------------------------------
  348.  
  349. handle_off    equ  0          ; DOS handle of .CRD File (0FFFFH if closed)
  350. thandle_off   equ  2          ; DOS handle of temporary ~LW file
  351. current_ptr   equ  4          ; current ptr within file of current card
  352. current_rec   equ  8          ; current card number within file
  353. free_space    equ  12          ; amount of free space within the file
  354. table_ptr     equ  16          ; pointer to table at end of .CRD File
  355. total_recs    equ  20          ; total # of cards within the file
  356. total_images  equ  24          ; total # of images within the file
  357. hndl_reserved equ  28          ; reserved dword, must always be 0
  358. file_flags    equ  32          ; file flags
  359. template_off  equ  34          ; address of card template to read/write
  360. orig_temp_off equ  38          ; address of original card template
  361.  
  362. tname_off     equ  42          ; offset of temporary file name
  363.  
  364.  
  365. ; ----- Values for File Flags
  366.  
  367. protected_file_flag    equ  08000H    ; protected to view only
  368. protect_add_only    equ  0A000H    ; protected to add+view only
  369. protect_change_only    equ  0C000H    ; protected to change+add+view only
  370. protect_all_only    equ  0E000H    ; protected with master password
  371.  
  372. unknown_card_flag    equ  1000H     ; This file was opened using an
  373.                        ; unknown card
  374.  
  375.             ; all other bit values are reserved.
  376.  
  377.  
  378.  
  379. ; ---------------------------------------------------------------------------
  380. ;
  381. ; The following are the values and data structures used to define parameters
  382. ; within FLOWCHRT.EXE and .BHD header files
  383. ;
  384. ; ---------------------------------------------------------------------------
  385.  
  386. .comment_ptype        equ  0           ; byte 0: .comment_ptype
  387. .comment_ptype_length    equ  1
  388.  
  389.  
  390. .asciiz_ptype        equ  1           ; byte 0: .asciiz_ptype
  391.                        ; byte 1: flags
  392.                        ; word 2: offset of param name
  393.                        ; word 4: ask_var_name_flags
  394. .asciiz_ptype_length    equ  6
  395.  
  396.  
  397. .user_int_ptype     equ  2           ; byte 0: .user_int_ptype
  398.                        ; byte 1: flags
  399.                        ; word 2: offset of message
  400.                        ; word 4: ask_var_name_flags
  401.                        ; word 6: minimum number
  402.                        ; word 8: maximum number
  403.                        ; word 10: offset of param name
  404. .user_int_ptype_length    equ  12
  405.  
  406.  
  407. .screen_ptype        equ  3           ; byte 0: .screen_ptype
  408.                        ; byte 1: flags
  409.                        ; byte 2: possible relativity
  410.                        ; byte 3: default relativity
  411.                        ; byte 4: flags for cursor_area
  412.                        ; byte 5: minimum width
  413.                        ; byte 6: minimum height
  414.                        ; word 7: offset of action to call
  415.                        ;     0 - no action
  416. .screen_ptype_length    equ  9
  417.  
  418.  
  419. .bit_ptype        equ  4           ; byte 0: .bit_ptype
  420.                        ; byte 1: flags
  421.                        ; byte 2: possible relativity
  422.                        ; byte 3: default relativity
  423.                        ; byte 4: flags for cursor_area
  424.                        ; word 5: offset of bit_cursor_proc
  425.                        ; word 7: offset of action to call
  426.                        ;     0 - no action
  427. .bit_ptype_length    equ  9
  428.  
  429.  
  430. .variable_ptype     equ  5           ; byte 0: .variable_ptype
  431.                        ; byte 1: .variable_flags
  432.                        ; word 2: variable window flags
  433.                        ; word 4: variable window type
  434.                        ; word 6: variable name
  435. .variable_ptype_length    equ  8
  436.  
  437.  
  438. .flag_box_ptype     equ  6           ; byte 0: .flag_box_ptype
  439.                        ; byte 1: flags
  440.                        ; word 2: flags for edit card
  441.                        ; word 4: offset of card structure
  442.                        ; word 6: internal check number
  443.                        ; byte 8: check_flags
  444. .flag_box_ptype_length    equ  9
  445.  
  446.  
  447. .text_msg_ptype     equ  7           ; byte 0: .text_msg_ptype
  448.                        ; byte 1: flags
  449.                        ; word 2: flags for read text
  450.                        ; word 4: end characters for read text
  451.                        ; word 6: segment ptr value
  452.                        ; word 8: offset of name for window
  453.                        ; word 10: offset in data of screen parm
  454. .text_msg_ptype_length    equ  12
  455.  
  456.  
  457. .internal_string_ptype    equ  8           ; byte 0: .internal_string_ptype
  458.                        ; byte 1: flags
  459.                        ; word 2: flags for ask_var_name
  460.                        ; word 4: offset of param name
  461.                        ; word 6: offset of message to ask
  462.                        ; word 8: offset of variable in ds
  463. .internal_string_ptype_length      equ  10
  464.  
  465.  
  466. .start_proc_ptype    equ  9           ; byte 0: .start_proc_ptype
  467.                        ; byte 1: 0
  468. .start_proc_ptype_length     equ  2
  469.  
  470.  
  471. .assignment_ptype    equ  10        ; byte 0: .assigment_ptype
  472.                        ; byte 1: flags
  473. .assignment_ptype_length     equ  2
  474.  
  475.  
  476. .condition_ptype    equ  11        ; byte 0: .condition_ptype
  477.                        ; byte 1: flags
  478. .condition_ptype_length      equ  2
  479.  
  480.  
  481. .case_ptype        equ  12        ; byte 0: .case_ptype
  482.                        ; byte 1: flags
  483. .case_ptype_length    equ  2
  484.  
  485.  
  486. .font_ptype        equ  13        ; byte 0: .font_ptype
  487.                        ; byte 1: flags
  488.                        ; word 2: variable window flags
  489.                        ; word 4: variable window type
  490.                        ; word 6: variable name
  491. .font_ptype_length    equ  8
  492.  
  493.  
  494. .image_ptype        equ  14        ; byte 0: .image_ptype
  495.                        ; byte 1: .image flags
  496.                        ; word 2: unused
  497.                        ; word 4: unused
  498.                        ; word 6: variable name
  499. .image_ptype_length    equ  8
  500.  
  501.  
  502. .action_ptype        equ  15        ; byte 0: .action_ptype
  503.                        ; byte 1: .action flags
  504.                        ; word 2: offset of action procedure
  505. .action_ptype_length    equ  4
  506.  
  507.  
  508. .if_ptype        equ  16        ; byte 0: .if_ptype
  509.                        ; byte 1: if ptype flags
  510.                        ; word 2: offset of procedure to call
  511. .if_ptype_length    equ  4           ; can cause skipping of parameters
  512.  
  513.  
  514. .odd_comment_ptype    equ  17        ; byte 0: .odd_comment_ptype
  515. .odd_comment_ptype_length   equ  1     ; stores the current position in comment
  516.  
  517. .black_box_ptype    equ  18        ; byte 0: .black_box_ptype
  518.                        ; byte 1: black box ptype flags
  519. .black_box_ptype_length equ  2
  520.  
  521.  
  522. .buffer_ptype        equ  19        ; byte 0: .buffer_ptype
  523.                        ; byte 1: .buffer_ptype_flags
  524.                        ; word 2: size in paragraphs of buffer
  525. .buffer_ptype_length    equ  4
  526.  
  527.  
  528. .menu_ptype        equ  20        ; byte 0: .menu_ptype
  529.                        ; byte 1: flags
  530. .menu_ptype_length    equ  2
  531.  
  532.  
  533. .button_string_ptype    equ  21        ; byte 0: .button_string_ptype
  534.                        ; byte 1: flags
  535. .button_string_ptype_length  equ  2
  536.  
  537.  
  538. ;--------------------- Parameter List Flags ----------------
  539. ;
  540. ;   The following are types found in the parameter lists in Layout's Data
  541. ;
  542.  
  543. .can_be_var       equ    1
  544. .input_var       equ    2
  545. .output_var       equ    4
  546.  
  547. .asciiz_wname       equ    80H
  548.  
  549. .byte_value       equ    80H
  550. .float_value       equ    40H
  551. .dword_value       equ    20H      ; .float value MUST also be turned on
  552.  
  553. .no_end_row       equ    80H
  554. .no_end_col       equ    40H
  555.  
  556. .no_end_y       equ    80H
  557. .no_end_x       equ    40H
  558.  
  559. .allow_integer       equ    80H      ; used by flag_box_param.  Allows integers
  560.                   ; to be entered for variable input flags
  561.  
  562. .pass_text_length  equ    40H      ; pass the maximum length of the string var
  563. .hidden_var       equ    80H      ; can this variable be automatically
  564.                   ; undefined?    If so, then hide_variable_flag
  565.                   ; must be set to 1
  566.  
  567. .call_post       equ    40H      ; this action must be called if the
  568.                   ; parameter directly before it is affected.
  569.  
  570. .always_call       equ    80H      ; this action must be called whenever
  571.                   ; accessing variables because it
  572.                   ; affects the presence of them.
  573.  
  574. .no_text_window    equ    80H      ; this text field does not use a text window
  575. .prop_msg_flag       equ    40H      ; for it's user interface
  576.  
  577.  
  578. .variable_buffer   equ    80H      ; this buffer can be variable
  579. .refresh_buffer    equ    40H      ; this buffer is a refresh buffer
  580.  
  581.  
  582.  
  583.  
  584. ;--------------------- Parameter Data Types ----------------
  585. ;
  586. ;   The following are types found in the .LAY data segment, indicating the
  587. ;   type of a specific parameter in the data
  588.  
  589. .var_type       equ    0      ; byte 0: .var_type
  590.                   ; word 1: low word of address
  591.                   ; byte 3: high byte of 3-byte address
  592. .var_type_length   equ    4
  593.  
  594.  
  595. .list_var_type       equ    1      ; byte 0: .list_var_type
  596.                   ; word 1: low word of address
  597.                   ; byte 3: high byte of 3-byte address
  598. .list_var_type_length    equ  4      ;
  599.                   ; either a .int_type structure
  600.                   ; or the .var_type structure of an integer
  601.                   ; follows
  602.  
  603.  
  604. .dword_type       equ    dword_name_type     ; byte 0: .dword_type
  605.                         ; word 1: low word of dword
  606.                         ; word 3: high word of dword
  607. .dword_type_length equ    5
  608.  
  609.  
  610. .int_type       equ    integer_name_type   ; byte 0: .int_type
  611.                         ; word 1: integer
  612. .int_type_length   equ    3
  613.  
  614.  
  615. .float_type       equ    float_name_type     ; byte 0: .float_type
  616.                         ; byte 1-8: floating point
  617. .float_type_length equ    9
  618.  
  619.  
  620. .asciiz_type       equ    string_name_type    ; byte 0: .asciiz_type
  621.                         ; byte 1 - ?: asciiz string
  622.  
  623.  
  624. .byte_type       equ    char_name_type        ; byte 0: .byte_type
  625.                         ; byte 1: byte
  626. .byte_type_length  equ    2
  627.  
  628.  
  629. .text_msg_type       equ    17            ; byte 0: .text_msg_type
  630.                         ; byte 1: segment ptr value [B]
  631.                         ; word 2: low word of address
  632.                         ; word 4: high word of address
  633. .text_msg_type_length    equ  6
  634.  
  635.  
  636. .expression_type   equ    19            ; byte 0: .expression_type
  637.                         ; byte 1: segment ptr value [B]
  638.                         ; word 2: low word of address
  639.                         ; word 4: high word of address
  640. .expression_type_length equ  6
  641.  
  642.  
  643. .relativity_type   equ    20            ; byte 0: .relativity_type
  644.                         ; word 1: relativity
  645. .relativity_type_length equ  3
  646.  
  647.  
  648. .screen_type       equ    21      ; byte 0: .screen_type
  649.  
  650.                   ; next depends on whether it's variable
  651.                   ; variable:
  652.                   ;    byte 1: normal .var_type structure
  653.                   ;    byte 5: normal .var_type structure
  654.                   ;    byte 9: normal .var_type structure
  655.                   ;    byte 13: normal .var_type structure
  656.                   ; constant:
  657.                   ;    byte 1: normal .relativity_type struct
  658.                   ;    byte 4: normal .int_type structure
  659.                   ;    byte 7: normal .int_type structure
  660.  
  661.  
  662. .screen_orig_type  equ    22      ; byte 0: .screen_orig_type
  663.  
  664.                   ; next depends on whether it's variable
  665.                   ; variable:
  666.                   ;    byte 1: normal .var_type structure
  667.                   ;    byte 5: normal .var_type structure
  668.                   ; constant:
  669.                   ;    byte 1: normal .relativity_type struct
  670.                   ;    byte 4: normal .int_type structure
  671.  
  672.  
  673. .screen_ecol_type  equ    23      ; byte 0: .screen_ecol_type
  674.                   ; next depends on whether it's variable
  675. ; origin + end column          ; variable:
  676.                   ;    byte 1: normal .var_type structure
  677.                   ;    byte 5: normal .var_type structure
  678.                   ;    byte 9: normal .var_type structure
  679.                   ; constant:
  680.                   ;    byte 1: normal .relativity_type struct
  681.                   ;    byte 4: normal .int_type structure
  682.                   ;    byte 7: normal .int_type structure
  683.  
  684.  
  685. .screen_erow_type  equ    24      ; byte 0: .screen_erow_type
  686.                   ; next depends on whether it's variable
  687. ; origin + end row          ; variable:
  688.                   ;    byte 1: normal .var_type structure
  689.                   ;    byte 5: normal .var_type structure
  690.                   ;    byte 9: normal .var_type structure
  691.                   ; constant:
  692.                   ;    byte 1: normal .relativity_type struct
  693.                   ;    byte 4: normal .int_type structure
  694.                   ;    byte 7: normal .int_type structure
  695.  
  696.  
  697. .bit_type       equ    25      ; byte 0: .bit_type
  698.  
  699.                   ; next depends on whether it's variable
  700.                   ; variable:
  701.                   ;    byte 1: normal .var_type structure
  702.                   ;    byte 5: normal .var_type structure
  703.                   ;    byte 9: normal .var_type structure
  704.                   ;    byte 13: normal .var_type structure
  705.                   ; constant:
  706.                   ;    byte 1: normal .relativity_type struct
  707.                   ;    byte 4: normal .int_type structure
  708.                   ;    byte 7: normal .int_type structure
  709.                   ;    byte 10: normal .int_type structure
  710.                   ;    byte 13: normal .int_type structure
  711.  
  712.  
  713. .bit_orig_type       equ    26      ; byte 0: .bit_orig_type
  714.  
  715.                   ; next depends on whether it's variable
  716.                   ; variable:
  717.                   ;    byte 1: normal .var_type structure
  718.                   ;    byte 5: normal .var_type structure
  719.                   ; constant:
  720.                   ;    byte 1: normal .relativity_type struct
  721.                   ;    byte 4: normal .int_type structure
  722.                   ;    byte 7: normal .int_type structure
  723.  
  724.  
  725. .bit_endx_type       equ    27      ; byte 0: .bit_endx_type
  726.  
  727. ; origin + end x          ; next depends on whether it's variable
  728.                   ; variable:
  729.                   ;    byte 1: normal .var_type structure
  730.                   ;    byte 5: normal .var_type structure
  731.                   ;    byte 9: normal .var_type structure
  732.                   ; constant:
  733.                   ;    byte 1: normal .relativity_type struct
  734.                   ;    byte 4: normal .int_type structure
  735.                   ;    byte 7: normal .int_type structure
  736.                   ;    byte 10: normal .int_type structure
  737.  
  738.  
  739. .bit_endy_type       equ    28      ; byte 0: .bit_endy_type
  740.                   ; next depends on whether it's variable
  741. ; origin + end y          ; variable:
  742.                   ;    byte 1: normal .var_type structure
  743.                   ;    byte 5: normal .var_type structure
  744.                   ;    byte 9: normal .var_type structure
  745.                   ; constant:
  746.                   ;    byte 1: normal .relativity_type struct
  747.                   ;    byte 4: normal .int_type structure
  748.                   ;    byte 7: normal .int_type structure
  749.                   ;    byte 10: normal .int_type structure
  750.  
  751.  
  752. .black_box_type    equ    30      ; byte 0: .black_box_type
  753.                   ; dword 1: offset of blackbox header to use
  754. .black_box_type_length    equ  5
  755.  
  756.