home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / vdmbiosj.h < prev    next >
Text File  |  1999-03-15  |  14KB  |  454 lines

  1. /***    VDMBIOSJ.H
  2.  *
  3.  *      SCCSID = @(#)vdmbiosj.h    xx.xx 90/05/28
  4.  *
  5.  *      MVDM BIOSJ Data Definitions
  6.  *      Copyright (c) 1990 IBM Japan Corporation
  7.  *
  8.  *      For include file hierarchy, see MVDM.H
  9.  *
  10.  * CHANGE ACTIVITY =
  11.  *   DATE      FLAG        APAR   CHANGE DESCRIPTION
  12.  *   --------  ----------  -----  --------------------------------------
  13.  *   mm/dd/yy  @Vr.mpppxx  xxxxx  xxxxxxx
  14.  *   02/15/96  @V3.1MNH01 D148300 Merge DBCS-J (IBM J) source w/SBCS source
  15.  ***********************************************************************/
  16.  
  17. #define EBIOS_BIOSMODE  0x0121          // bios mode flag       j-ea0000
  18.  
  19.  
  20. #define BIOSJDATA_LEN   0x00800         // reserve 2K
  21. //c-begin
  22. #define BIOSJDATA_PAGES PAGESFROMBYTES(BIOSJDATA_LEN)
  23. //c-end
  24.  
  25. //c-begin
  26. #define EBIOSDATA_SEG   (*(PWORD)(0x40E))
  27. #define EBIOSDATA_ADR   (EBIOSDATA_SEG << 4)
  28. //J-YF005#define BIOSJDATA_ADR   (EBIOSDATA_ADR + (*(PWORD)(EBIOSDATA_ADR) * 1024))
  29. #define BIOSJDATA_ADR   (EBIOSDATA_ADR + (*(PBYTE)(EBIOSDATA_ADR) * 1024))      //J-YF005
  30. #define BIOSJDATA_SEG   (BIOSJDATA_ADR >> 4)
  31. //c-end
  32.  
  33. //c-begin
  34. #define BIOSMODE        (*(PBYTE)(EBIOSDATA_ADR + EBIOS_BIOSMODE))
  35. //c-end
  36. #define PS2_MODE        0x00            // PS/2 mode BIOS       (will be deleted later...) //J-YF001
  37. #define PS55_MODE       0x01            // PS/55 DBCS mode BIOS (will be deleted later...) //J-YF001
  38. #define PCDOS_MODE      0x00            // PC-DOS mode BIOS           //J-YF004
  39. #define DOSJ_MODE       0x01            // DOS-J mode BIOS            //J-YF004
  40. #define DOSV_MODE       0x02            // DOS/V mode BIOS            //J-YF004
  41. #define DOSK_MODE       0x03            // DOS/K mode BIOS
  42.  
  43.  
  44. /***    Int 16h Equates (AH values)
  45.  */
  46.  
  47. #define INT16J_BEEPON           0x03                                    //ss0003
  48. #define INT16J_BEEPOFF          0x04                                    //ss0003
  49. #define INT16J_SETSTATE         0x05                                    //ss0003
  50. #define INT16J_SETSTATE2        0x85                                    //ss0003
  51. #define INT16J_READCHGXTBL      0x06                                    //ss0004
  52. #define INT16J_CHGDISP          0x07                                    //ss0003
  53. #define INT16J_SETSHIFT         0x82                                    //ss0003
  54. #define INT16J_GETKBDFUNC       0x09                                    //j-mi1110
  55. #define INT16J_GETKBDHWID       0x0A                                    //j-mi1110
  56. #define INT16J_GETKBDTYPE       0x0B                                    //ss0003
  57. #define INT16J_READCHAR         0xF0                                    //ss0003
  58. #define INT16J_PEEKCHAR         0xF1                                    //ss0003
  59. #define INT16J_FLUSHBUFF        0xF2                                    //ss0003
  60. #define INT16V_RETKBDID         0x0A         // DOSV return KBD ID   //j-mh0001
  61. #define INT16V_DBCSSHIFT        0x13                                 //j-mh0001
  62. #define INT16V_SETDSHIFT        0x00         // INT16 AH=13 AL=00    //j-mh0001
  63. #define INT16V_GETDSHIFT        0x01         // INT16 AH=13 AL=01    //j-mh0001
  64. #define INT16V_CHGDISP          0x14                                 //j-mh0001
  65. #define INT16V_ENADISP          0x00         // INT16 AH=14 AL=00    //j-mh0001
  66. #define INT16V_DISDISP          0x01         // INT16 AH=14 AL=01    //j-mh0001
  67. #define INT16V_QUEDISP          0x02         // INT16 AH=14 AL=02    //j-mh0001
  68.  
  69.  
  70. /***ET+ MVDM BIOSJ Data Definitions - used by VDDs */
  71.  
  72. /***    BIOSJ Data Area
  73.  *
  74.  *      This area cannot exceed BIOSJDATA_LEN
  75.  */
  76.  
  77. typedef struct drvtbl_ss {
  78.         WORD    max_cyl_m;
  79.         BYTE    max_head_m;
  80.         WORD    dummy1;
  81.         WORD    dummy2;
  82.         WORD    dummy3;
  83.         BYTE    dummy4[7];
  84.         BYTE    dummy5;
  85.         WORD    start_chr_m;
  86.         BYTE    dummy6;
  87.         BYTE    dummy7;
  88.         WORD    dummy8;
  89.         BYTE    dummy9;
  90.         BYTE    dummy10;
  91. } DRVTBL_S;
  92. //c-begin
  93. #define TABLE_LEN sizeof(DRVTBL_S)
  94. //c-end
  95.  
  96. typedef struct ba_ss {
  97.         BYTE    normal;
  98.         BYTE    intensify;
  99. } BA_S;
  100.  
  101. typedef struct lss_ss {
  102.         BYTE    ls_reset;
  103.         BYTE    ls_mode;
  104.         BYTE    ls_bank;
  105. } LSS_S;
  106.  
  107. typedef struct lgs_ss {
  108.         BYTE    set_reset;
  109.         BYTE    enable_sr;
  110.         BYTE    color_compare;
  111.         BYTE    data_rotation;
  112.         BYTE    read_map_select;
  113.         BYTE    lg_mode;
  114.         BYTE    complement;
  115.         BYTE    color_dont_care;
  116.         BYTE    bit_mask_low;
  117.         BYTE    bit_mask_high;
  118.         BYTE    map_mask;
  119.         BYTE    lg_command;
  120.         BYTE    set_reset_2;
  121. } LGS_S;
  122.  
  123. typedef struct bios_version_blk_ss {
  124.         WORD    bios_version;
  125. } BIOS_VERSION_BLK_S;
  126. //c-begin
  127. #define bios_version_blk_len sizeof(BIOS_VERSION_BLK_S)
  128. //c-end
  129.  
  130. typedef struct communication_blk_ss {
  131.         BYTE    cb_byte0;
  132.         BYTE    sdlc_bca_num;
  133.         BYTE    tca_num;
  134. } COMMUNICATION_BLK_S;
  135.  
  136. typedef struct asyncronus_ss {
  137.         BYTE    ab_byte0;
  138. } ASYNCRONUS_BLK_S;
  139.  
  140. typedef struct hdisk_blk_ss {
  141.         BYTE    int_hdisk_num;
  142.         BYTE    ext_hdisk_num;
  143. } HDISK_BLK_S;
  144.  
  145. typedef struct keyboard_blk_ss {
  146.         BYTE    kbdid_1st;
  147.         BYTE    kbdid_2nd;
  148.         BYTE    kbdid_3rd;
  149.         BYTE    kbd_character;
  150.         WORD    table_offset;
  151.         WORD    table_segment;
  152. } KEYBOARD_BLK_S;
  153.  
  154. typedef struct diskette_blk_ss {
  155.         BYTE    diskette_num;
  156. } DISKETTE_BLK_S;
  157.  
  158. typedef struct printer_blk_ss {
  159.         BYTE    printer_num;
  160.         BYTE    dot_size;
  161.         BYTE    color_num;
  162.         BYTE    prn_character;
  163.         WORD    prn_type;
  164. } PRINTER_BLK_S;
  165.  
  166. typedef struct timer_blk_ss {
  167.         BYTE    tb_byte0;
  168. } TIMER_BLK_S;
  169.  
  170. typedef struct video_blk_ss {
  171.         BYTE    flags1;
  172.         BYTE    flags2;
  173.         WORD    regen_offset;
  174.         WORD    regen_segment;
  175.         WORD    regen_length;
  176.         WORD    shadow_offset;
  177.         WORD    shadow_segment;
  178.         WORD    video_page_info_offset;
  179.         WORD    video_page_info_segment;
  180.         WORD    video_mode_info_offset;
  181.         WORD    video_mode_info_segment;
  182. } VIDEO_BLK_S;
  183.  
  184. typedef struct register_shadow_ss {
  185.         WORD    word0;
  186.         WORD    ls_offset;
  187.         WORD    ls_segment;
  188.         WORD    lg_offset;
  189.         WORD    lg_segment;
  190. } REGISTER_SHADOW_S;
  191.  
  192. typedef struct cpu_blk_ss {
  193.         BYTE    cpu;
  194. } CPU_BLK_S;
  195.  
  196. typedef struct jis_mode_blk_ss {
  197.         BYTE    jis_mode;
  198. } JIS_MODE_BLK_S;
  199.  
  200. typedef struct extention_blk_ss {
  201.         WORD    ext[16];
  202. } EXTENTION_BLK_S;
  203.  
  204. typedef struct kbd_inf_blk_ss {
  205.         BYTE    rk_flag;
  206.         DWORD   roman_adr;
  207.         DWORD   kanakan_adr;
  208.         DWORD   dict_top_adr;
  209.         DWORD   mast_top_adr;
  210.         DWORD   c_top_adr;
  211.         DWORD   kmode_adr;
  212.         DWORD   hptr_adr;
  213.         DWORD   apkanji_adr;
  214.         DWORD   nodisp_mode_adr;
  215.         DWORD   phrase_conv_inf_adr;
  216. } KBD_INF_BLK_S;
  217.  
  218. typedef struct video_inf_blk_ss {
  219.         DWORD   acorn_mode_adr;
  220.         DWORD   vib_common_disp_adr;
  221. } VIDEO_INF_BLK_S;
  222.  
  223. typedef struct prt_inf_blk_ss {
  224.         DWORD   print_id_adr;
  225.         DWORD   must_release_adr;
  226.         DWORD   monitor_flag_adr;
  227.         DWORD   dma_check_flag_adr;
  228.         DWORD   reset_ecc_adr;
  229.         DWORD   ps_high_low_adr;
  230. } PRT_INF_BLK_S;
  231.  
  232. typedef struct common_inf_blk_ss {
  233.         DWORD   beep_adr;
  234.         DWORD   service_adr;
  235.         DWORD   dict_loader_adr;
  236.         DWORD   click_click_adr;
  237.         DWORD   soft_kankan_adr;
  238.         DWORD   delay_adr;
  239.         DWORD   file_loader_adr;
  240.         DWORD   cib_common_disp_adr;
  241. } COMMON_INF_BLK_S;
  242.  
  243. typedef struct d_d_inf_blk_ss {
  244.         DWORD   ps_flag_adr;
  245.         WORD    hdd_start;
  246.         WORD    hdd_end;
  247.         WORD    hdd_start_block;
  248.         WORD    hdd_end_block;
  249.         WORD    hdd_start_cyl;
  250.         WORD    hdd_end_cyl;
  251.         WORD    mf35_0CH_adr;
  252.         WORD    mf35_13H_adr;
  253. } D_D_INF_BLK_S;
  254.  
  255. typedef struct bank_inf_blk_ss {
  256.         BYTE    bank0[3];
  257.         BYTE    bank1[3];
  258.         BYTE    bank2[3];
  259. } BANK_INF_BLK_S;
  260.  
  261. typedef struct sear_inf_blk_ss {
  262.         BYTE    sib_dummy;
  263. } SEAR_INF_BLK_S;
  264.  
  265. typedef struct mem_ctl_blk_ss {
  266.         BYTE    mcb_dummy;
  267. } MEM_CTL_BLK_S;
  268.  
  269. typedef struct video_page_information_ss {                                 //j-ys0914
  270.         WORD    vpinfo_nb;                                           //j-ys0914
  271.         WORD    vpinfo_number_of_pages;                              //j-ys0914
  272.         BYTE    vpinfo_page_allocation_table[8];                     //j-ys0914
  273. } VIDEO_PAGE_INFORMATION_S;                                                               //j-ys0914
  274.  
  275. typedef struct videomode_info_ss {                                        //j-ys0914
  276.         WORD    vminfo_nb;                                           //j-ys0914
  277.         BYTE    vminfo_video_mode;                                   //j-ys0914
  278.         BYTE    vminfo_number_of_planes;                             //j-ys0914
  279.         BYTE    vminfo_foreground_color;                             //j-ys0914
  280.         BYTE    vminfo_background_color;                             //j-ys0914
  281.         BYTE    vminfo_CPU_page;                                     //j-ys0914
  282.         BYTE    vminfo_CRT_page;                                     //j-ys0914
  283. } VIDEOMODE_INFO_S;                                                               //j-ys0914
  284.  
  285. typedef struct biosjdata_s {
  286.  
  287.     /* BIOS-J Data Area Length */
  288.     WORD    biosjlen;
  289.  
  290.     /* Keyboard Area */
  291.     WORD    fdabuffer_head;
  292.     WORD    fdabuffer_tail;
  293.     WORD    fdabuffer_len;
  294.     WORD    fdabuffer_start;
  295.     WORD    fdabuffer_end;
  296.     BYTE    fdabios_break;
  297.     WORD    fdareset_flag;
  298.     BYTE    fdakbd_id[3];
  299.     BYTE    fdajkb_flag;
  300.     BYTE    fdawork;
  301.     BYTE    fdabeep_status;
  302.     WORD    fdabeep_freq;
  303.  
  304.     /* Diskette Area */
  305.     BYTE    seek_status;
  306.     BYTE    diskette_status;
  307.     BYTE    nec_status[7];
  308.     BYTE    work_status;
  309.     BYTE    nec_copy[7];
  310.     BYTE    dvt0[4];
  311.     WORD    motor_status;
  312.     BYTE    chip_status;
  313.     BYTE    adap_status;
  314.     BYTE    int_status;
  315.     BYTE    motor_flag;
  316.     BYTE    status_status;
  317.  
  318.     /* Disk Area */
  319.     BYTE    ipldrv;
  320.     BYTE    mode;
  321.     WORD    flag_tati;
  322.     DRVTBL_S drv0_table;
  323.     DRVTBL_S drv1_table;
  324.  
  325.     /* Video Area */
  326.     BYTE    crt_mode;
  327.     WORD    crt_cols;
  328.     WORD    crt_len;
  329.     BYTE    dmy_crt_reg[16];
  330.     BYTE    dmy_cmd_reg;
  331.     BYTE    dmy_col_reg;
  332.     BA_S base_attr;
  333.  
  334.     /* Video Area (Cursor Position) */
  335.     WORD    cursor_posn;
  336.     WORD    grph_posn;
  337.     WORD    cursor_mode;
  338.     WORD    gr_crs_mode;
  339.     WORD    save_ccp;
  340.     WORD    save_wrt;
  341.     BYTE    tty_char_save;
  342. #define TAB_LENGTH 13
  343.     WORD    alt_posn;
  344.     WORD    alt_grph_posn;
  345.     WORD    alt_mode;
  346.     WORD    alt_gr_crs;
  347.     WORD    alt_save_ccp;
  348.     WORD    alt_save_wrt;
  349.     BYTE    alt_tty_save;
  350.     WORD    cpp1;
  351.     WORD    cpp2;
  352.     WORD    cpp3;
  353.     WORD    cpp4;
  354.     WORD    cpp5;
  355.     WORD    cpp6;
  356.     WORD    cpp7;
  357.     WORD    cpp8;
  358.     BYTE    current_page;
  359.     WORD    addr_6845;
  360.     BYTE    crt_mode_set;
  361.     BYTE    crt_palette;
  362.  
  363.     /* Video Area (EGA) */
  364.     BYTE    rows;
  365.     WORD    bytesperchar;
  366.     BYTE    ega_mode;
  367.     BYTE    xswitch;
  368.  
  369.     /* Phoenix Area (LS_PORT) */
  370.     LSS_S   ls_save;                                            /*@V3.1MNH01*/
  371.  
  372.     /* Phoenix Area (LG_PORT) */
  373.     LGS_S lg_save;
  374.  
  375.     /* Timer Area */
  376.     WORD    timer_low;
  377.     WORD    timer_high;
  378.  
  379.     /* Keyboard Buffer Area */
  380.     WORD    fdakb_buffer[240];
  381. //c-begin
  382. #define FDAKB_BUFFER_LEN sizeof(fdakb_buffer)
  383. //c-end
  384.     BYTE    apl_flag;
  385.  
  386.     /* Printer Area */
  387.     BYTE    vlpt_data[40];
  388.  
  389.     /* Dummy INT 18H (CDH, 18H) */
  390.     BYTE    int18code[40];
  391.  
  392.     /* INT 1FH Area */
  393.     BIOS_VERSION_BLK_S bios_version_blk;
  394.  
  395.     COMMUNICATION_BLK_S communication_blk;
  396.  
  397.     ASYNCRONUS_BLK_S asyncronus_blk;
  398.  
  399.     HDISK_BLK_S hdisk_blk;
  400.  
  401.     KEYBOARD_BLK_S keyboard_blk;
  402.  
  403.     DISKETTE_BLK_S diskette_blk;
  404.  
  405.     PRINTER_BLK_S printer_blk;
  406.  
  407.     TIMER_BLK_S timer_blk;
  408.  
  409.     VIDEO_BLK_S video_blk;
  410.  
  411.     REGISTER_SHADOW_S register_shadow;
  412.  
  413.     CPU_BLK_S cpu_blk;
  414.  
  415.     JIS_MODE_BLK_S jis_mode_blk;
  416.  
  417.     EXTENTION_BLK_S extention_blk;
  418.  
  419.     KBD_INF_BLK_S kbd_inf_blk;
  420.  
  421.     VIDEO_INF_BLK_S video_inf_blk;
  422.  
  423.     PRT_INF_BLK_S prt_inf_blk;
  424.  
  425.     COMMON_INF_BLK_S common_inf_blk;
  426.  
  427.     D_D_INF_BLK_S d_d_inf_blk;
  428.  
  429.     BANK_INF_BLK_S bank_inf_blk;
  430.  
  431.     SEAR_INF_BLK_S sear_inf_blk;
  432.  
  433.     MEM_CTL_BLK_S mem_ctl_blk;
  434.  
  435.     VIDEO_PAGE_INFORMATION_S videopageinfo;                   //j-ys0914
  436.  
  437.     VIDEOMODE_INFO_S videomodeinfo;                           //j-ys0914
  438.  
  439. //c-begin
  440.     BYTE    b0;      //test test test                           /*@V3.1MNH01*/
  441.     BYTE    b1;      //test test test                           /*@V3.1MNH01*/
  442.     BYTE    b2;      //test test test                           /*@V3.1MNH01*/
  443.     BYTE    b3;      //test test test                           /*@V3.1MNH01*/
  444.     BYTE    b4;      //test test test                           /*@V3.1MNH01*/
  445.     BYTE    b5;      //test test test                           /*@V3.1MNH01*/
  446. //c-end
  447.  
  448. } BIOSJDATA;
  449.  
  450. typedef BIOSJDATA *PBIOSJDATA;
  451.  
  452. //J-YF004 08/27/91 DOS/V mode support
  453. //J-YF005 10/15/91 Bug Fix (EBIOS length field is BYTE)
  454.