home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / CDOSDSK5.ZIP / CDOSDSK5.TD0 / XIOS / PUBDATA.A86 < prev    next >
Encoding:
Text File  |  1989-01-26  |  37.3 KB  |  1,429 lines

  1. ; PUBDATA.A86
  2. title 'Public Data'
  3. pagesize 60+11
  4. ;****************************************
  5. ;*                    *
  6. ;*    PUBLIC XIOS DATA        *
  7. ;*    CPCDOS 6.0 XIOS            *
  8. ;*    DRI OS ENGR, JMB, GMS, JW    *
  9. ;*                    *
  10. ;****************************************
  11. ; Major mods:
  12. ; 6.x
  13. ; 10 OCT 88 -- extended MGE VS structures        - GMS
  14. ; 12 SEP 88 -- move last_curs out of dispatch area    - GMS
  15. ;  3 AUG 88 -- added pointer to pc2port2_table in io_pointer - GMS
  16. ; 13 Jul 88 -- XPC protocol support added        - IJ
  17. ; 12 JUL 88 -- removed memory disk size param        - GMS
  18. ; 15 JUN 88 -- int14 and int17 tables extended for per VC GMS
  19. ;  5 APR 88 -- SUN river support added            - GMS
  20. ;  5 APR 88 -- pc2port_table moved from LISTAUX        - GMS
  21. ; 16 FEB 88 -- return IO_POINTER to DRIVE_TYPE$        - JW
  22. ; 11 JAN 88 -- save_equip$ moved from PCTERM.A86    - GMS
  23. ; 17 DEC 87 -- added public serdrv_vector$        - JW
  24. ;  2 DEC 87 -- removed num_color and num_mono        - GMS
  25. ; 6.0
  26. ; 11 NOV 87 -- add entry for ROS vector table in ptr_list GMS
  27. ; 21 OCT 87 -- added int14 and int17 tables        - GMS
  28. ; 30 SEP 87 -- extra ccb's for 386 version        - GMS
  29. ;  5 AUG 87 -- next_flag$ moved to header.a86        - GMS
  30. ; 5.2
  31. ; 26 May 87 -- added next_flag$                - GMS
  32. ; 25 Mar 87 -- Added the Console Attributes to CCB's    - JC
  33. ;  9 FEB 87 -- added structs for up to 9 ports         - JW
  34. ; 13 NOV 86 -- Hercules retrace set to 0EEEEh        - GMS
  35. ; 27 OCT 86 -- Hercules parameter tables        - PAR
  36. ; 16 OCT 86 -- Amstrad initial attribute support    - GMS
  37. ; 18 AUG 86 -- Multiple DOS partition support        - GMS
  38. ; 20 SEP 85 -- add data BCBs
  39. ; 10 JUN 85 -- update 4.1 ASM86 XIOS to RASM86
  40.  
  41. ; include COPYRITE.TXT
  42.  
  43. nolist
  44. include CDOS.EQU
  45. include XIOS.EQU
  46. include PCHW.EQU
  47. list
  48. ; These have been included:
  49. ; include PCHW.EQU
  50. ; include CDOS.EQU
  51. ; include XIOS.EQU
  52.  
  53. DGROUP    group    pdseg0,pdseg1,pdseg2,pdseg3,pdseg4
  54.  
  55. public    cloneflag$
  56. public    iattrib$, blank$
  57. public    ccb_list$                ; for STATLINE.A86
  58. public    ccb_tab$, lcb_tab$, acb_tab$        ; for HEADER.A86
  59. public    lcb_list$, acb_list$
  60. public    int17_ptr$, int14_ptr$
  61. public    dummy_cb$
  62.  
  63. public    pcdpb8S$, pcdpb8D$, dpbs$, dpbd$    ; for FLOPPY.A86
  64. public    pcdpb9S$, pcdpb9D$
  65. public    dos_dpbs$
  66.  
  67. public  dsm_md$, dph_md$            ; for INIT.A86   ####
  68. public    nfatrecs_md$, nclust_md$
  69. public    save_equip$
  70. public    num_flop$
  71. public    num_flop_des$, num_hard$, num_print$
  72. public    num_port$, num_ndp$, num_mmkb$
  73.  
  74. public    ros_vectors$, ros_vector0$
  75.  
  76. public    disk_int_off$, disk_int_seg$
  77. public    lo_mem_top$, hi_mem_top$, hi_mem_start$
  78. public    aux_prot_blk$
  79. public    pc2port_table$,port2pc_table$
  80.  
  81. public    ptr_list$, PTR_LIST_SIZE
  82. public    timer_count$                ; variable PIT count
  83. public  retrace$                
  84. public    herc_text$, herc_graph$
  85.  
  86. if SR
  87. public    sr_vs_table$, sr_pc_table$
  88. public    SR_VS_TLEN, SR_PC_TLEN
  89. public    sr_table_vs$
  90. public    vc_list1$,vc_list2$,vc_list3$,vc_list4$
  91. public    color_xlat1$,color_xlat2$,color_xlat3$,color_xlat4$
  92. endif
  93.  
  94. public    video_disp_data$
  95. public    LEN_VID_LNGDISP,LEN_VID_REMDISP 
  96. public    vc_map_seg$
  97. if not SR
  98. public    list_next$,    list_vc$
  99. endif
  100. public    color_bits$,    mono_bits$,    graphic_bits$
  101. public    mode_reg$,    top_screen_mode$
  102. public    im_here$,    vc_priority$,    top_screen$
  103. public    mono_xlat$,    color_xlat$,    vc_list$
  104. public    bit_plane_seg$, video$,        win_sized$
  105. public    last_curs$,    num_vir_cons$,     first_vs_num$
  106. public    sl_pc_flag$
  107. extrn    vector_table$: word
  108. eject
  109.  
  110.     dseg
  111. extrn    switch_bits$:word            ; in KEYBOARD.A86
  112. extrn       pfk_tbl0$:byte,     pfk_tbl1$:byte    ; in CONIN.A86
  113. extrn       pfk_tbl2$:byte,     pfk_tbl3$:byte
  114. extrn    aux_blk_in0$:word, aux_blk_out0$:word    ; in LISTAUX.A86
  115. extrn    aux_blk_in1$:word, aux_blk_out1$:word
  116. extrn serdrv_vector$:dword
  117. extrn    scroll_mode$:byte            ; in WINDOWS3.A86
  118. extrn     drive_type$:byte            ; in FLOPPY.A86
  119. if SR
  120. extrn     su_pfk_tbl$:byte            ; in HEADER.A86
  121. endif
  122.     cseg
  123. extrn    i_aux_0@:near, i_aux_1@:near        ; in LISTAUX.A86
  124. if SR
  125. extrn    con_normal@:near             ; in WINDOWS1.A86
  126. endif
  127. eject
  128.  
  129. ;********************************************************
  130. ;*                            *
  131. ;*        CONSOLE CONTROL BLOCKS            *
  132. ;*                            *
  133. ;********************************************************
  134.  
  135. pdseg0    dseg    word
  136.  
  137. ;    ccb_list used by io_statline routine
  138. ccb_list    dw    ccb0,ccb1,ccb2,ccb3    ; PC VCs
  139.         dw    ccb4            ; COM1
  140.         dw    ccb5            ; COM2
  141.         dw         ccb6,ccb7,ccb8    ; COM3-COM5 if 4-port card
  142.         dw    ccb9,ccb10,ccb11,ccb12    ; COM6-COM9 if 8-port card
  143.  
  144. if V386
  145.         dw    ccb13,ccb14,ccb15,ccb16    ; more for 2 virtual per
  146.         dw    ccb17,ccb18,ccb19,ccb20 ;  physical on pcterm emulation
  147.         dw    ccb21
  148. endif
  149.  
  150. ccb_tab$    rw    0
  151. ccb0        dw    0        ; owner
  152.         dw    0,0,0
  153.         db    0ffh, 0ffh    ; mimic, msource
  154.         db    0,0,0        ; physical, virtual console, reserved
  155.         db    CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
  156.         dw    0        ; foreground
  157.                 dw      0,0,0,0
  158.         dw    0,0,0,0
  159.                 dw      0,0,0,0
  160.         dw    ccb1,0        ; first link
  161.  
  162. ccb1        dw    0        ; owner
  163.         dw    0,0,0
  164.         db    0ffh, 0ffh    ; mimic, msource
  165.         db    0,1,0        ; physical, virtual console, reserved
  166.         db    CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
  167.         dw    CSM_BACKGROUND    ; background
  168.                 dw      0,0,0,0
  169.         dw    0,0,0,0
  170.                 dw      0,0,0,0
  171.         dw    ccb2,0        ; link to next
  172.  
  173. ccb2        dw    0        ; owner
  174.         dw    0,0,0
  175.         db    0ffh, 0ffh    ; mimic, msource
  176.         db    0,2,0        ; physical, virtual console, reserved
  177.         db    CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
  178.         dw    CSM_BACKGROUND    ; background
  179.                 dw      0,0,0,0
  180.         dw    0,0,0,0
  181.                 dw      0,0,0,0
  182.         dw    ccb3,0        ; link to next
  183.  
  184. ccb3        dw    0        ; owner
  185.         dw    0,0,0
  186.         db    0ffh, 0ffh    ; mimic, msource
  187.         db    0,3,0        ; physical, virtual console, reserved
  188.         db    CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
  189.         dw    CSM_BACKGROUND    ; background
  190.                 dw      0,0,0,0
  191.         dw    0,0,0,0
  192.                 dw      0,0,0,0
  193.         dw    0,0        ; end of link list
  194.  
  195. ccb4        dw    0        ; owner
  196.         dw    0,0,0
  197.         db    0ffh, 0ffh    ; mimic, msource
  198.         db    1,4,0        ; physical, virtual console, reserved
  199.         db    0
  200.         dw    CSM_FOREGROUND    ; foreground
  201.                 dw      0,0,0,0
  202.                 dw      0,0,0,0
  203.         dw    0,0,0,0
  204.         dw    0,0        ; end of link list
  205.  
  206. ccb5        dw    0        ; owner
  207.         dw    0,0,0
  208.         db    0ffh, 0ffh    ; mimic, msource
  209.         db    2,5,0        ; physical, virtual console, reserved
  210.         db    0
  211.         dw    CSM_FOREGROUND    ; foreground
  212.                 dw      0,0,0,0
  213.                 dw      0,0,0,0
  214.         dw    0,0,0,0
  215.         dw    0,0        ; end of link list
  216.  
  217. ccb6        dw    0        ; owner
  218.         dw    0,0,0
  219.         db    0ffh, 0ffh    ; mimic, msource
  220.         db    3,6,0        ; physical, virtual console, reserved
  221.         db    0
  222.         dw    CSM_FOREGROUND    ; foreground
  223.                 dw      0,0,0,0
  224.                 dw      0,0,0,0
  225.         dw    0,0,0,0
  226.         dw    0,0        ; end of link list
  227.  
  228. ccb7        dw    0        ; owner
  229.         dw    0,0,0
  230.         db    0ffh, 0ffh    ; mimic, msource
  231.         db    4,7,0        ; physical, virtual console, reserved
  232.         db    0
  233.         dw    CSM_FOREGROUND    ; foreground
  234.                 dw      0,0,0,0
  235.                 dw      0,0,0,0
  236.         dw    0,0,0,0
  237.         dw    0,0        ; end of link list
  238.  
  239. ccb8        dw    0        ; owner
  240.         dw    0,0,0
  241.         db    0ffh, 0ffh    ; mimic, msource
  242.         db    5,8,0        ; physical, virtual console, reserved
  243.         db    0
  244.         dw    CSM_FOREGROUND    ; foreground
  245.                 dw      0,0,0,0
  246.                 dw      0,0,0,0
  247.         dw    0,0,0,0
  248.         dw    0,0        ; end of link list
  249.  
  250. ccb9        dw    0        ; owner
  251.         dw    0,0,0
  252.         db    0ffh, 0ffh    ; mimic, msource
  253.         db    6,9,0        ; physical, virtual console, reserved
  254.         db    0
  255.         dw    CSM_FOREGROUND    ; foreground
  256.                 dw      0,0,0,0
  257.                 dw      0,0,0,0
  258.         dw    0,0,0,0
  259.         dw    0,0        ; end of link list
  260.  
  261. ccb10        dw    0        ; owner
  262.         dw    0,0,0
  263.         db    0ffh, 0ffh    ; mimic, msource
  264.         db    7,10,0        ; physical, virtual console, reserved
  265.         db    0
  266.         dw    CSM_FOREGROUND    ; foreground
  267.                 dw      0,0,0,0
  268.                 dw      0,0,0,0
  269.         dw    0,0,0,0
  270.         dw    0,0        ; end of link list
  271.  
  272. ccb11        dw    0        ; owner
  273.         dw    0,0,0
  274.         db    0ffh, 0ffh    ; mimic, msource
  275.         db    8,11,0        ; physical, virtual console, reserved
  276.         db    0
  277.         dw    CSM_FOREGROUND    ; foreground
  278.                 dw      0,0,0,0
  279.                 dw      0,0,0,0
  280.         dw    0,0,0,0
  281.         dw    0,0        ; end of link list
  282.  
  283. ccb12        dw    0        ; owner
  284.         dw    0,0,0
  285.         db    0ffh, 0ffh    ; mimic, msource
  286.         db    9,12,0        ; physical, virtual console, reserved
  287.         db    0
  288.         dw    CSM_FOREGROUND    ; foreground
  289.                 dw      0,0,0,0
  290.                 dw      0,0,0,0
  291.         dw    0,0,0,0
  292.         dw    0,0        ; end of link list
  293.  
  294. if V386
  295. ; Need another 9 ccb's for virtual console support
  296. ; Physical and virtual console numbers are allocated
  297. ; at INIT time.
  298.  
  299. ccb13        dw    0        ; owner
  300.         dw    0,0,0
  301.         db    0ffh, 0ffh    ; mimic, msource
  302.         db    0,0,0        ; physical, virtual console, reserved
  303.         db    0
  304.         dw    CSM_FOREGROUND    ; foreground
  305.                 dw      0,0,0,0
  306.                 dw      0,0,0,0
  307.         dw    0,0,0,0
  308.         dw    0,0        ; end of link list
  309.  
  310. ccb14        dw    0        ; owner
  311.         dw    0,0,0
  312.         db    0ffh, 0ffh    ; mimic, msource
  313.         db    0,0,0        ; physical, virtual console, reserved
  314.         db    0
  315.         dw    CSM_FOREGROUND    ; foreground
  316.                 dw      0,0,0,0
  317.                 dw      0,0,0,0
  318.         dw    0,0,0,0
  319.         dw    0,0        ; end of link list
  320.  
  321. ccb15        dw    0        ; owner
  322.         dw    0,0,0
  323.         db    0ffh, 0ffh    ; mimic, msource
  324.         db    0,0,0        ; physical, virtual console, reserved
  325.         db    0
  326.         dw    CSM_FOREGROUND    ; foreground
  327.                 dw      0,0,0,0
  328.                 dw      0,0,0,0
  329.         dw    0,0,0,0
  330.         dw    0,0        ; end of link list
  331.  
  332. ccb16        dw    0        ; owner
  333.         dw    0,0,0
  334.         db    0ffh, 0ffh    ; mimic, msource
  335.         db    0,0,0        ; physical, virtual console, reserved
  336.         db    0
  337.         dw    CSM_FOREGROUND    ; foreground
  338.                 dw      0,0,0,0
  339.                 dw      0,0,0,0
  340.         dw    0,0,0,0
  341.         dw    0,0        ; end of link list
  342.  
  343. ccb17        dw    0        ; owner
  344.         dw    0,0,0
  345.         db    0ffh, 0ffh    ; mimic, msource
  346.         db    0,0,0        ; physical, virtual console, reserved
  347.         db    0
  348.         dw    CSM_FOREGROUND    ; foreground
  349.                 dw      0,0,0,0
  350.                 dw      0,0,0,0
  351.         dw    0,0,0,0
  352.         dw    0,0        ; end of link list
  353.  
  354. ccb18        dw    0        ; owner
  355.         dw    0,0,0
  356.         db    0ffh, 0ffh    ; mimic, msource
  357.         db    0,0,0        ; physical, virtual console, reserved
  358.         db    0
  359.         dw    CSM_FOREGROUND    ; foreground
  360.                 dw      0,0,0,0
  361.                 dw      0,0,0,0
  362.         dw    0,0,0,0
  363.         dw    0,0        ; end of link list
  364.  
  365. ccb19        dw    0        ; owner
  366.         dw    0,0,0
  367.         db    0ffh, 0ffh    ; mimic, msource
  368.         db    0,0,0        ; physical, virtual console, reserved
  369.         db    0
  370.         dw    CSM_FOREGROUND    ; foreground
  371.                 dw      0,0,0,0
  372.                 dw      0,0,0,0
  373.         dw    0,0,0,0
  374.         dw    0,0        ; end of link list
  375.  
  376. ccb20        dw    0        ; owner
  377.         dw    0,0,0
  378.         db    0ffh, 0ffh    ; mimic, msource
  379.         db    0,0,0        ; physical, virtual console, reserved
  380.         db    0
  381.         dw    CSM_FOREGROUND    ; foreground
  382.                 dw      0,0,0,0
  383.                 dw      0,0,0,0
  384.         dw    0,0,0,0
  385.         dw    0,0        ; end of link list
  386.  
  387. ccb21        dw    0        ; owner
  388.         dw    0,0,0
  389.         db    0ffh, 0ffh    ; mimic, msource
  390.         db    0,0,0        ; physical, virtual console, reserved
  391.         db    0
  392.         dw    CSM_FOREGROUND    ; foreground
  393.                 dw      0,0,0,0
  394.                 dw      0,0,0,0
  395.         dw    0,0,0,0
  396.         dw    0,0        ; end of link list
  397.  
  398. endif
  399. eject
  400.  
  401. ;********************************************************
  402. ;*                            *
  403. ;*    LIST AND AUXILIARY  CONTROL BLOCK TABLE        *
  404. ;*                            *
  405. ;********************************************************
  406.  
  407. pdseg1    dseg    word
  408.  
  409. lcb_list$    dw    lcb0,lcb1,lcb2            ; parallel
  410.         dw    lcb3,lcb4            ; com1 com2
  411.         dw    lcb5,lcb6,lcb7
  412.         dw    lcb8,lcb9,lcb10,lcb11
  413. if SR
  414.         dw    lcb12,lcb13,lcb14    ; PAR,SER,SER
  415.         dw    lcb15,lcb16,lcb17
  416.         dw    lcb18,lcb19,lcb20
  417.         dw    lcb21,lcb22,lcb23    
  418. endif
  419. acb_list$    dw    acb0,acb1        ; COM1 COM2
  420.         dw    acb2,acb3,acb4
  421.         dw    acb5,acb6,acb7,acb8
  422. if SR
  423.         dw    dummy_cb$,acb10,acb11
  424.         dw    dummy_cb$,acb13,acb14
  425.         dw    dummy_cb$,acb16,acb17
  426.         dw    dummy_cb$,acb19,acb20
  427. endif
  428.  
  429. dummy_cb$    dw    0FFFEh        ; dummy PD
  430.         dw    0,0,0
  431.         db    0FFh,0FFh    ; mimic, msource
  432.  
  433. lcb_tab$    rw    0
  434. lcb0        dw    0,0,0,0
  435.         db    0FFh,0FFh    ; mimic, msource
  436. lcb1        dw    0,0,0,0
  437.         db    0FFh,0FFh
  438. lcb2        dw    0,0,0,0
  439.         db    0FFh,0FFh
  440.  
  441. acb_tab$    rw    0        ; the last 2 lcb's do double duty
  442.  
  443. lcb3        rw    0        ;   as the first two aux cb's.
  444. acb0        dw    0,0,0,0        ; this is because printer 3 and 4
  445.         db    0FFh,0FFh    ;   use the same hardware as aux
  446.  
  447. lcb4        rw    0        ;   port 0 and 1.
  448. acb1        dw    0,0,0,0        ; so this little trick prevents them
  449.         db    0FFh,0FFh    ;   from crashing into each other.
  450.  
  451. lcb5        rw    0        ; multi-port card serial port #2
  452. acb2        dw    0,0,0,0,-1
  453.  
  454. lcb6        rw    0        ; multi-port card serial port #3
  455. acb3        dw    0,0,0,0,-1
  456.  
  457. lcb7        rw    0        ; multi-port card serial port #4
  458. acb4        dw    0,0,0,0,-1
  459.  
  460. lcb8        rw    0        ; multi-port card serial port #5
  461. acb5        dw    0,0,0,0,-1
  462.  
  463. lcb9        rw    0        ; multi-port card serial port #6
  464. acb6        dw    0,0,0,0,-1
  465.  
  466. lcb10        rw    0        ; multi-port card serial port #7
  467. acb7        dw    0,0,0,0,-1
  468.  
  469. lcb11        rw    0        ; multi-port card serial port #8
  470. acb8        dw    0,0,0,0,-1
  471.  
  472. if SR
  473. lcb12        rw    0        ; SunRiver station 0 parallel port
  474.         dw    0,0,0,0,-1    ; LCB only
  475. lcb13        rw    0        ; SunRiver station 0 COM1
  476. acb10        dw    0,0,0,0,-1
  477. lcb14        rw    0        ; SunRiver station 0 COM2
  478. acb11        dw    0,0,0,0,-1
  479.  
  480. lcb15        rw    0        ; SunRiver station 1 parallel port
  481.         dw    0,0,0,0,-1    ; LCB only
  482. lcb16        rw    0        ; SunRiver station 1 COM1
  483. acb13        dw    0,0,0,0,-1
  484. lcb17        rw    0        ; SunRiver station 1 COM2
  485. acb14        dw    0,0,0,0,-1
  486.  
  487. lcb18        rw    0        ; SunRiver station 2 parallel port
  488.         dw    0,0,0,0,-1    ; LCB only
  489. lcb19        rw    0        ; SunRiver station 2 COM1
  490. acb16        dw    0,0,0,0,-1
  491. lcb20        rw    0        ; SunRiver station 2 COM2
  492. acb17        dw    0,0,0,0,-1
  493.  
  494. lcb21        rw    0        ; SunRiver station 3 parallel port
  495.         dw    0,0,0,0,-1    ; LCB only
  496. lcb22        rw    0        ; SunRiver station 3 COM1
  497. acb19        dw    0,0,0,0,-1
  498. lcb23        rw    0        ; SunRiver station 3 COM2
  499. acb20        dw    0,0,0,0,-1
  500.  
  501. endif
  502.  
  503. int17_ptr$    db    3        ; No of supported List Devices
  504.         db    0, 1, 2        ; List Device Mapping (INT 17 - LPT1
  505.         db    0, 1, 2        ; (INT 17 and LPT1-LPT3)
  506.         db    0, 1, 2        ; mapping per virtual console
  507.         db    0, 1, 2        
  508.         db    0, 1, 2        
  509.         db    0, 1, 2        
  510.         db    0, 1, 2        
  511.         db    0, 1, 2        
  512.         db    0, 1, 2        
  513.         db    0, 1, 2        
  514.         db    0, 1, 2        
  515.         db    0, 1, 2        
  516.         db    0, 1, 2        
  517.         db    0, 1, 2        
  518.         db    0, 1, 2        
  519.         db    0, 1, 2        
  520.         db    0, 1, 2        
  521.         db    0, 1, 2        
  522.         db    0, 1, 2        
  523.         db    0, 1, 2        
  524.         db    0, 1, 2        
  525.         db    0, 1, 2        
  526.         
  527. int14_ptr$    db    2        ; No of supported AUX devices
  528.         db    0, 1        ; Serial Device Mapping 
  529.         db    0, 1        ; (INT 14 and COM1/COM2)
  530.         db    0, 1        ; mapping per virtual console
  531.         db    0, 1
  532.         db    0, 1
  533.         db    0, 1
  534.         db    0, 1
  535.         db    0, 1
  536.         db    0, 1
  537.         db    0, 1
  538.         db    0, 1
  539.         db    0, 1
  540.         db    0, 1
  541.         db    0, 1
  542.         db    0, 1
  543.         db    0, 1
  544.         db    0, 1
  545.         db    0, 1
  546.         db    0, 1
  547.         db    0, 1
  548.         db    0, 1
  549.         db    0, 1
  550.  
  551.  
  552. eject
  553. ;****************************************************************
  554. ;*                                *
  555. ;*        DISK PARAMETER STRUCTURES            *
  556. ;*                                *
  557. ;****************************************************************
  558.  
  559. pdseg2    dseg    word
  560.  
  561.  
  562. dph_md$    dw    0000h,0000h    ; translate table
  563.     dw    0000h,0000h    ; scratch area
  564.     dw    dpb_md        ; dsk parm block
  565.     dw    0000h        ; no check
  566.     dw    0ffffh        ; alloc vectors
  567.     dw    0ffffh        ; dir buff cntrl blk
  568.     dw    0        ; init now does data buffers alloc
  569.     dw    0        ; init now does hash alloc
  570.     rw    4        ; reserved for jump table
  571.  
  572.  
  573. ; Single sided floppy parameter block:
  574.  
  575. dpbs$    dw    8        ; sectors per track
  576.     db    3        ; block shift
  577.     db    7        ; block mask
  578.     db    0        ; extnt mask
  579.     dw    155        ; disk size in 1k blocks
  580.                 ; less offset track(s)
  581.     dw    63        ; directory max
  582.     db    11000000b    ; alloc0
  583.     db    0        ; alloc1
  584.     dw    16 + PERM    ; check size + door-open fake-out
  585.     dw    1        ; offset
  586.     db    2        ; phys sec shift
  587.     db    3        ; phys sec mask
  588.  
  589. ; Double sided floppy parameter block:
  590.  
  591. dpbd$    dw    8        ; sectors per track
  592.     db    4        ; block shift
  593.     db    15        ; block mask
  594.     db    1        ; extnt mask
  595.     dw    157        ; disk size in 2k blocks
  596.                 ; less offset track(s)
  597.     dw    63        ; directory max
  598.     db    10000000b    ; alloc0
  599.     db    0        ; alloc1
  600.     dw    16 + PERM    ; check size + door-open fake-out
  601.     dw    1        ; offset
  602.     db    2        ; phys sec shift
  603.     db    3        ; phys sec mask
  604.  
  605. ; Memory disk parameter block:
  606.  
  607. dpb_md        dw    0fffeh        ; 16 bit FAT
  608.         dw    1        ; 1 FAT copy
  609. nfatrecs_md$    dw    0        ; Number of FAT recs (filled in by init)
  610. nclust_md$    dw    0        ; Number of clusters (  "    "  "   "  )
  611.         dw    512        ; Cluster size
  612.         dw    0        ; Address of FAT
  613.         dw    8        ; sectors per track
  614.         db    4        ; block shift
  615.         db    15        ; block mask
  616.         db    0        ; extnt mask
  617. dsm_md$        dw    0        ; max disk size in 2k blocks
  618.                     ; recalculated in init
  619.         dw    63        ; directory max
  620.         db    0        ; alloc0
  621.         db    0        ; alloc1
  622.         dw    PERM        ; check size--"permanent" media
  623.         dw    0        ; offset
  624.         db    2        ; phys sec shift
  625.         db    3        ; phys sec mask
  626.  
  627. dos_dpbs$    dw    0, 0, 0, 0        ; dynamic DPBs for DOS disks
  628.  
  629.  
  630. ; FAT ID = FE, Single Sided, 8 Sector format (PCDOS/MSDOS standard):
  631. pcdpb8S$ dw    -1        ; extended DPB flag
  632.     dw    2        ; NFATS
  633.     dw    1        ; NFATRECS
  634.     dw    315        ; NCLSTRS
  635.     dw    512*1        ; CLSIZE
  636.     dw    1        ; FATADD
  637.  
  638.     dw    8        ; sectors per track
  639.     db    3        ; CP/M block shift
  640.     db    7        ; CP/M block mask
  641.     db    0        ; CP/M extnt mask
  642.     dw    159        ; CP/M disk size in 1k blocks
  643.                 ; less offset track(s)
  644.     dw    63        ; directory max  (ROOT DIRECTORY SIZE)
  645.     db    0        ; CP/M alloc0
  646.     db    0        ; CP/M alloc1
  647.     dw    16 + PERM    ; check size + door-open fake-out
  648.     dw    0        ; offset
  649.     db    2        ; phys sec shift
  650.     db    3        ; phys sec mask
  651.  
  652. ; FAT ID = FF, Double Sided, 8 Sector format (PCDOS/MSDOS standard):
  653. pcdpb8D$ dw    -1        ; extended DPB flag
  654.     dw    2        ; NFATS
  655.     dw    1        ; NFATRECS
  656.     dw    317        ; NCLSTRS
  657.     dw    512*2        ; CLSIZE
  658.     dw    1        ; FATADD
  659.  
  660.     dw    8        ; sectors per track
  661.     db    3        ; CP/M block shift
  662.     db    7        ; CP/M block mask
  663.     db    0        ; CP/M extnt mask
  664.     dw    319        ; CP/M disk size in 1k blocks
  665.                 ; less offset track(s)
  666.     dw    111        ; directory max  (ROOT DIRECTORY SIZE)
  667.     db    0        ; CP/M alloc0
  668.     db    0        ; CP/M alloc1
  669.     dw    28 + PERM    ; check size
  670.     dw    0        ; offset
  671.     db    2        ; phys sec shift
  672.     db    3        ; phys sec mask
  673.  
  674.  
  675. ;    FAT ID = FC, Single Sided, 9 Sector format (IBM PCDOS 2.0 ONLY)
  676. pcdpb9S$ dw    -1        ;extended DPB flag
  677.     dw    2        ;NFATS
  678.     dw    2        ;NFATRECS
  679.     dw    353        ;NCLSTRS
  680.     dw    512        ;CLSIZE
  681.     dw    1        ;FATADD
  682. ;
  683.     dw    9        ;sectors per track
  684.     db    3        ; CP/M block shift 
  685.     db    7        ; CP/M block mask  
  686.     db    0        ; CP/M extnt mask  
  687.     dw    179        ; CP/M disk size in 1k blocks
  688.                 ; less offset track(s) 
  689.     dw    63        ;directory max  (ROOT DIRECTORY SIZE)
  690.     db    0        ; CP/M alloc0      
  691.     db    0        ; CP/M alloc1      
  692.     dw    16 + PERM    ;*check size + door-open fake-out
  693.     dw    0        ;offset           
  694.     db    2        ;phys sec shift       
  695.     db    3        ;phys sec mask       
  696.  
  697. ;    FAT ID = FD, DOUBLE Sided, 9 Sector format (IBM PCDOS 2.0 ONLY)
  698. pcdpb9D$ dw    -1        ;extended DPB flag
  699.     dw    2        ;NFATS
  700.     dw    2        ;NFATRECS
  701.     dw    356        ;NCLSTRS
  702.     dw    512*2        ;CLSIZE
  703.     dw    1        ;FATADD
  704. ;
  705.     dw    9        ;sectors per track
  706.     db    3        ; CP/M block shift 
  707.     db    7        ; CP/M block mask  
  708.     db    0        ; CP/M extnt mask  
  709.     dw    359        ; CP/M disk size in 1k blocks
  710.                 ; less offset track(s) 
  711.     dw    111        ;directory max  (ROOT DIRECTORY SIZE)
  712.     db    0        ; CP/M alloc0      
  713.     db    0        ; CP/M alloc1      
  714.     dw    28 + PERM    ;* check size + door-open fake-out
  715.     dw    0        ;offset           
  716.     db    2        ;phys sec shift       
  717.     db    3        ;phys sec mask       
  718.  
  719. eject
  720.  
  721. ;************************************************
  722. ;*                        *
  723. ;*        PUBLIC DATA BLOCKS        *
  724. ;*                        *
  725. ;************************************************
  726.  
  727. pdseg3    dseg    word
  728.  
  729. ptr_list$    dw    equip_data
  730.         dw    setup_data
  731.         dw    switch_bits$    ; defines a vc switch
  732.         dw    aux_prot_blk$    ; pointers to aux protocol
  733.         dw    scroll_mode$    ; how a color mon scrolls
  734.         dw    i_aux_0@    ; aux int vector port 0
  735.         dw    i_aux_1@    ; aux int vector port 1
  736.         dw    vector_table$     ; ROS interrupt entries table
  737.         dw    serdrv_vector$    ; for use by installable serial devices
  738.         dw    drive_type$    ; array of floppy disk types
  739.         dw    pc2port_table$    ; physical console to port number table
  740.         
  741. PTR_LIST_SIZE    equ    (offset $ - offset ptr_list$)/2
  742.  
  743. ; Added for Hercules support
  744. retrace$    dw    0eeeeh    ; min text retrace loop 
  745. herc_text$    db    61h,50h,52h,0fh,19h,06h        ; hercules text params
  746.         db    19h,19h,02h,0dh,0bh,0ch
  747. herc_graph$    db    35h,2dh,2eh,07h,5bh,02h
  748.         db    57h,57h,02h,03h,00h,00h
  749.         
  750.         
  751. ; Equipment configuration data block:
  752.  
  753.  
  754. equip_data    rb    0
  755. num_flop$    dw    0    ; number of floppy disks    1-4
  756. num_hard$    dw    0    ; number of hard disks        0-2
  757. num_print$    dw    0    ; number of parallel printers    0-3
  758. num_port$    dw    0    ; number of serial ports    0-2
  759. num_ndp$    dw    0    ; number of 8087's        0-1
  760. num_mmkb$    dw    0    ; main memory in Kilobytes    256-640
  761. num_flop_des$    dw    0    ; number of floppy designators    2-4
  762.  
  763. ; PC equipment word at power up
  764. save_equip$    rw    1            ; save area for equipment flag
  765.  
  766. ; Setup data block:
  767.  
  768. setup_data    rb    0
  769. disk_int_off$    rw    1    ; save the disk interrupt vector
  770. disk_int_seg$    rw    1    ;   for dskmaint (and old setup)
  771.         dw    pfk_tbl0$
  772.         dw    pfk_tbl1$
  773.         dw    pfk_tbl2$
  774.         dw    pfk_tbl3$
  775. lo_mem_top$    dw    0    ; main mem seg ceiling    4000-A000
  776. hi_mem_start$    dw    0    ; high mem seg beginning  C000-E000
  777. hi_mem_top$    dw    0    ; high mem seg ceiling    D000-F000
  778.  
  779. ; Pointers to Auxiliary input/output protocol bytes:
  780.  
  781. aux_prot_blk$    rw    0
  782.         dw    aux_blk_in0$ + AUX_PROT
  783.         dw    aux_blk_in1$ + AUX_PROT
  784.         dw    aux_blk_out0$ + AUX_PROT
  785.         dw    aux_blk_out1$ + AUX_PROT
  786.  
  787.  
  788. ; Logical to physical console mapping table
  789. pc2port_table$    db    0FFh        ; main console - no serial port
  790.         rb    NUM_AUX_PORTS    ; serial port indices will go here
  791. if SR
  792.         rb    4*3        ; extra for SUN River terminals
  793.                     ; 1 main console + 2 COM ports
  794.                     ; for 4 stations.
  795. endif
  796.  
  797. ;  Physical to logical console mapping table
  798. port2pc_table$    db    0ffh        ; physical port 0 logical number
  799.         db    0ffh        ;       port 1
  800.         db    0ffh        ;       port 2
  801.         db    0ffh
  802.         db    0ffh
  803.         db    0ffh
  804.         db    0ffh
  805.         db    0ffh
  806.         db    0ffh        ;       port 8
  807. if SR
  808.         db    0ffh,0ffh,0ffh    ; Sun river station 1 = physical port 9
  809.         db    0ffh,0ffh,0ffh    ; Sun river station 2
  810.         db    0ffh,0ffh,0ffh    ; Sun river station 3
  811.         db    0ffh,0ffh,0ffh    ; Sun river station 4
  812.  
  813. endif
  814.  
  815. if SR
  816. ; Sun River Virtual console number allocated
  817. ; used by point_vs@
  818. sr_vs_table$    db    0ffh,0ffh,0ffh,0ffh    ; 0ffh = available
  819.         db    0ffh,0ffh,0ffh,0ffh    ; max = 4 virtual per physical
  820.         db    0ffh,0ffh,0ffh,0ffh
  821.         db    0ffh,0ffh,0ffh,0ffh
  822. SR_VS_TLEN    equ    offset $ - offset sr_vs_table$
  823.  
  824. ; Sun River physical console number allocated
  825. ; used in point_pc@ - in SRTERM.A86
  826. sr_pc_table$    db    00h        ; first is MASTER console
  827.         db    0ffh,0ffh,0ffh,0ffh    ; 0ffh = available
  828.                     ; else contains logical physical no.
  829. SR_PC_TLEN    equ    offset $ - offset sr_pc_table$
  830.  
  831. endif
  832.  
  833. if SR
  834. ; Sun River Virtual console structures
  835.  
  836. CRT_FULL    equ    100h * (CRT_ROWS_C - 1) + (CRT_COLS - 1)
  837.  
  838. sr_table_vs$    dw    sr_vs1,sr_vs2,sr_vs3,sr_vs4
  839.         dw    sr_vs5,sr_vs6,sr_vs7,sr_vs8
  840.         dw    sr_vs9,sr_vs10,sr_vs11,sr_vs12
  841.         dw    sr_vs13,sr_vs14,sr_vs15,sr_vs16
  842.  
  843.  
  844. sr_vs1        dw    0,0,CRT_FULL
  845.         dw    0,CRT_FULL,CRT_FULL
  846.         dw    1850H,0
  847.         dw    CRT_ROWS_C,CRT_COLS,0
  848.         dw    0,0,vc_list1$
  849.         db    07h,INIT_MODE,1,CRT_COLS,0,1    ; VS_number and VS_bit
  850.         dw    0,con_normal@,0
  851.         db    CRT_ROWS_C,0
  852.         dw    0,0
  853.         dw    su_pfk_tbl$,0,0FF00h
  854.         dw    0,0,0,0,0
  855.         db    1,0
  856.         dw    0
  857.         db    30h                ; color sel 80 alpha
  858.         dw    0                ; scratch
  859.         db    0                ; graphics wait flag
  860.         dw    0                ; cur_type_hw
  861.         db    0                ; hercules mode
  862.         db    01                ; default blink toggle
  863.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  864.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  865.         dw    00                ; PC equipment word
  866.         dw    0000h                ; ansi options count
  867.         rb    VS_ANSI_SIZE            ; ansi input buffer
  868.         db    0                ; virtual port 3?4h
  869.         rb    0                ; virtual port 3?5h
  870.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  871.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  872.         db    0                ; virtual port 3?Ah
  873.  
  874. sr_vs2        dw    0,0,CRT_FULL
  875.         dw    0,CRT_FULL,CRT_FULL
  876.         dw    1850H,0
  877.         dw    CRT_ROWS_C,CRT_COLS,0
  878.         dw    0,0,vc_list1$
  879.         db    07h,INIT_MODE,1,CRT_COLS,0,2
  880.         dw    0,con_normal@,0
  881.         db    CRT_ROWS_C,0
  882.         dw    0,0
  883.         dw    su_pfk_tbl$,0,0FF00h
  884.         dw    0,0,0,0,0
  885.         db    1,0
  886.         dw    0
  887.         db    30h                ; color sel 80 alpha
  888.         dw    0                ; scratch
  889.         db    0                ; graphics wait flag
  890.         dw    0                ; cur_type_hw
  891.         db    0                ; hercules mode
  892.         db    01                ; default blink toggle
  893.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  894.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  895.         dw    00                ; PC equipment word
  896.         dw    0000h                ; ansi options count
  897.         rb    VS_ANSI_SIZE            ; ansi input buffer
  898.         db    0                ; virtual port 3?4h
  899.         rb    0                ; virtual port 3?5h
  900.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  901.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  902.         db    0                ; virtual port 3?Ah
  903.  
  904. sr_vs3        dw    0,0,CRT_FULL
  905.         dw    0,CRT_FULL,CRT_FULL
  906.         dw    1850H,0
  907.         dw    CRT_ROWS_C,CRT_COLS,0
  908.         dw    0,0,vc_list1$
  909.         db    07h,INIT_MODE,1,CRT_COLS,0,4
  910.         dw    0,con_normal@,0
  911.         db    CRT_ROWS_C,0
  912.         dw    0,0
  913.         dw    su_pfk_tbl$,0,0FF00h
  914.         dw    0,0,0,0,0
  915.         db    1,0
  916.         dw    0
  917.         db    30h                ; color sel 80 alpha
  918.         dw    0                ; scratch
  919.         db    0                ; graphics wait flag
  920.         dw    0                ; cur_type_hw
  921.         db    0                ; hercules mode
  922.         db    01                ; default blink toggle
  923.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  924.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  925.         dw    00                ; PC equipment word
  926.         dw    0000h                ; ansi options count
  927.         rb    VS_ANSI_SIZE            ; ansi input buffer
  928.         db    0                ; virtual port 3?4h
  929.         rb    0                ; virtual port 3?5h
  930.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  931.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  932.         db    0                ; virtual port 3?Ah
  933.  
  934. sr_vs4        dw    0,0,CRT_FULL
  935.         dw    0,CRT_FULL,CRT_FULL
  936.         dw    1850H,0
  937.         dw    CRT_ROWS_C,CRT_COLS,0
  938.         dw    0,0,vc_list1$
  939.         db    07h,INIT_MODE,1,CRT_COLS,0,8
  940.         dw    0,con_normal@,0
  941.         db    CRT_ROWS_C,0
  942.         dw    0,0
  943.         dw    su_pfk_tbl$,0,0FF00h
  944.         dw    0,0,0,0,0
  945.         db    1,0
  946.         dw    0
  947.         db    30h                ; color sel 80 alpha
  948.         dw    0                ; scratch
  949.         db    0                ; graphics wait flag
  950.         dw    0                ; cur_type_hw
  951.         db    0                ; hercules mode
  952.         db    01                ; default blink toggle
  953.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  954.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  955.         dw    00                ; PC equipment word
  956.         dw    0000h                ; ansi options count
  957.         rb    VS_ANSI_SIZE            ; ansi input buffer
  958.         db    0                ; virtual port 3?4h
  959.         rb    0                ; virtual port 3?5h
  960.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  961.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  962.         db    0                ; virtual port 3?Ah
  963.  
  964.  
  965. sr_vs5        dw    0,0,CRT_FULL
  966.         dw    0,CRT_FULL,CRT_FULL
  967.         dw    1850H,0
  968.         dw    CRT_ROWS_C,CRT_COLS,0
  969.         dw    0,0,vc_list2$
  970.         db    07h,INIT_MODE,1,CRT_COLS,0,1
  971.         dw    0,con_normal@,0
  972.         db    CRT_ROWS_C,0
  973.         dw    0,0
  974.         dw    su_pfk_tbl$,0,0FF00h
  975.         dw    0,0,0,0,0
  976.         db    1,0
  977.         dw    0
  978.         db    30h                ; color sel 80 alpha
  979.         dw    0                ; scratch
  980.         db    0                ; graphics wait flag
  981.         dw    0                ; cur_type_hw
  982.         db    0                ; hercules mode
  983.         db    01                ; default blink toggle
  984.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  985.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  986.         dw    00                ; PC equipment word
  987.         dw    0000h                ; ansi options count
  988.         rb    VS_ANSI_SIZE            ; ansi input buffer
  989.         db    0                ; virtual port 3?4h
  990.         rb    0                ; virtual port 3?5h
  991.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  992.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  993.         db    0                ; virtual port 3?Ah
  994.  
  995. sr_vs6        dw    0,0,CRT_FULL
  996.         dw    0,CRT_FULL,CRT_FULL
  997.         dw    1850H,0
  998.         dw    CRT_ROWS_C,CRT_COLS,0
  999.         dw    0,0,vc_list2$
  1000.         db    07h,INIT_MODE,1,CRT_COLS,0,2
  1001.         dw    0,con_normal@,0
  1002.         db    CRT_ROWS_C,0
  1003.         dw    0,0
  1004.         dw    su_pfk_tbl$,0,0FF00h
  1005.         dw    0,0,0,0,0
  1006.         db    1,0
  1007.         dw    0
  1008.         db    30h                ; color sel 80 alpha
  1009.         dw    0                ; scratch
  1010.         db    0                ; graphics wait flag
  1011.         dw    0                ; cur_type_hw
  1012.         db    0                ; hercules mode
  1013.         db    01                ; default blink toggle
  1014.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1015.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1016.         dw    00                ; PC equipment word
  1017.         dw    0000h                ; ansi options count
  1018.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1019.         db    0                ; virtual port 3?4h
  1020.         rb    0                ; virtual port 3?5h
  1021.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1022.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1023.         db    0                ; virtual port 3?Ah
  1024.  
  1025. sr_vs7        dw    0,0,CRT_FULL
  1026.         dw    0,CRT_FULL,CRT_FULL
  1027.         dw    1850H,0
  1028.         dw    CRT_ROWS_C,CRT_COLS,0
  1029.         dw    0,0,vc_list2$
  1030.         db    07h,INIT_MODE,1,CRT_COLS,0,4
  1031.         dw    0,con_normal@,0
  1032.         db    CRT_ROWS_C,0
  1033.         dw    0,0
  1034.         dw    su_pfk_tbl$,0,0FF00h
  1035.         dw    0,0,0,0,0
  1036.         db    1,0
  1037.         dw    0
  1038.         db    30h                ; color sel 80 alpha
  1039.         dw    0                ; scratch
  1040.         db    0                ; graphics wait flag
  1041.         dw    0                ; cur_type_hw
  1042.         db    0                ; hercules mode
  1043.         db    01                ; default blink toggle
  1044.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1045.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1046.         dw    00                ; PC equipment word
  1047.         dw    0000h                ; ansi options count
  1048.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1049.         db    0                ; virtual port 3?4h
  1050.         rb    0                ; virtual port 3?5h
  1051.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1052.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1053.         db    0                ; virtual port 3?Ah
  1054.  
  1055. sr_vs8        dw    0,0,CRT_FULL
  1056.         dw    0,CRT_FULL,CRT_FULL
  1057.         dw    1850H,0
  1058.         dw    CRT_ROWS_C,CRT_COLS,0
  1059.         dw    0,0,vc_list2$
  1060.         db    07h,INIT_MODE,1,CRT_COLS,0,8
  1061.         dw    0,con_normal@,0
  1062.         db    CRT_ROWS_C,0
  1063.         dw    0,0
  1064.         dw    su_pfk_tbl$,0,0FF00h
  1065.         dw    0,0,0,0,0
  1066.         db    1,0
  1067.         dw    0
  1068.         db    30h                ; color sel 80 alpha
  1069.         dw    0                ; scratch
  1070.         db    0                ; graphics wait flag
  1071.         dw    0                ; cur_type_hw
  1072.         db    0                ; hercules mode
  1073.         db    01                ; default blink toggle
  1074.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1075.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1076.         dw    00                ; PC equipment word
  1077.         dw    0000h                ; ansi options count
  1078.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1079.         db    0                ; virtual port 3?4h
  1080.         rb    0                ; virtual port 3?5h
  1081.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1082.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1083.         db    0                ; virtual port 3?Ah
  1084.  
  1085.  
  1086. sr_vs9        dw    0,0,CRT_FULL
  1087.         dw    0,CRT_FULL,CRT_FULL
  1088.         dw    1850H,0
  1089.         dw    CRT_ROWS_C,CRT_COLS,0
  1090.         dw    0,0,vc_list3$
  1091.         db    07h,INIT_MODE,1,CRT_COLS,0,1    ; VS_number and VS_bit
  1092.         dw    0,con_normal@,0
  1093.         db    CRT_ROWS_C,0
  1094.         dw    0,0
  1095.         dw    su_pfk_tbl$,0,0FF00h
  1096.         dw    0,0,0,0,0
  1097.         db    1,0
  1098.         dw    0
  1099.         db    30h                ; color sel 80 alpha
  1100.         dw    0                ; scratch
  1101.         db    0                ; graphics wait flag
  1102.         dw    0                ; cur_type_hw
  1103.         db    0                ; hercules mode
  1104.         db    01                ; default blink toggle
  1105.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1106.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1107.         dw    00                ; PC equipment word
  1108.         dw    0000h                ; ansi options count
  1109.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1110.         db    0                ; virtual port 3?4h
  1111.         rb    0                ; virtual port 3?5h
  1112.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1113.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1114.         db    0                ; virtual port 3?Ah
  1115.  
  1116. sr_vs10        dw    0,0,CRT_FULL
  1117.         dw    0,CRT_FULL,CRT_FULL
  1118.         dw    1850H,0
  1119.         dw    CRT_ROWS_C,CRT_COLS,0
  1120.         dw    0,0,vc_list3$
  1121.         db    07h,INIT_MODE,1,CRT_COLS,0,2
  1122.         dw    0,con_normal@,0
  1123.         db    CRT_ROWS_C,0
  1124.         dw    0,0
  1125.         dw    su_pfk_tbl$,0,0FF00h
  1126.         dw    0,0,0,0,0
  1127.         db    1,0
  1128.         dw    0
  1129.         db    30h                ; color sel 80 alpha
  1130.         dw    0                ; scratch
  1131.         db    0                ; graphics wait flag
  1132.         dw    0                ; cur_type_hw
  1133.         db    0                ; hercules mode
  1134.         db    01                ; default blink toggle
  1135.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1136.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1137.         dw    00                ; PC equipment word
  1138.         dw    0000h                ; ansi options count
  1139.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1140.         db    0                ; virtual port 3?4h
  1141.         rb    0                ; virtual port 3?5h
  1142.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1143.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1144.         db    0                ; virtual port 3?Ah
  1145.  
  1146. sr_vs11        dw    0,0,CRT_FULL
  1147.         dw    0,CRT_FULL,CRT_FULL
  1148.         dw    1850H,0
  1149.         dw    CRT_ROWS_C,CRT_COLS,0
  1150.         dw    0,0,vc_list3$
  1151.         db    07h,INIT_MODE,1,CRT_COLS,0,4
  1152.         dw    0,con_normal@,0
  1153.         db    CRT_ROWS_C,0
  1154.         dw    0,0
  1155.         dw    su_pfk_tbl$,0,0FF00h
  1156.         dw    0,0,0,0,0
  1157.         db    1,0
  1158.         dw    0
  1159.         db    30h                ; color sel 80 alpha
  1160.         dw    0                ; scratch
  1161.         db    0                ; graphics wait flag
  1162.         dw    0                ; cur_type_hw
  1163.         db    0                ; hercules mode
  1164.         db    01                ; default blink toggle
  1165.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1166.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1167.         dw    00                ; PC equipment word
  1168.         dw    0000h                ; ansi options count
  1169.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1170.         db    0                ; virtual port 3?4h
  1171.         rb    0                ; virtual port 3?5h
  1172.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1173.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1174.         db    0                ; virtual port 3?Ah
  1175.  
  1176. sr_vs12        dw    0,0,CRT_FULL
  1177.         dw    0,CRT_FULL,CRT_FULL
  1178.         dw    1850H,0
  1179.         dw    CRT_ROWS_C,CRT_COLS,0
  1180.         dw    0,0,vc_list3$
  1181.         db    07h,INIT_MODE,1,CRT_COLS,0,8
  1182.         dw    0,con_normal@,0
  1183.         db    CRT_ROWS_C,0
  1184.         dw    0,0
  1185.         dw    su_pfk_tbl$,0,0FF00h
  1186.         dw    0,0,0,0,0
  1187.         db    1,0
  1188.         dw    0
  1189.         db    30h                ; color sel 80 alpha
  1190.         dw    0                ; scratch
  1191.         db    0                ; graphics wait flag
  1192.         dw    0                ; cur_type_hw
  1193.         db    0                ; hercules mode
  1194.         db    01                ; default blink toggle
  1195.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1196.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1197.         dw    00                ; PC equipment word
  1198.         dw    0000h                ; ansi options count
  1199.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1200.         db    0                ; virtual port 3?4h
  1201.         rb    0                ; virtual port 3?5h
  1202.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1203.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1204.         db    0                ; virtual port 3?Ah
  1205.  
  1206.  
  1207. sr_vs13        dw    0,0,CRT_FULL
  1208.         dw    0,CRT_FULL,CRT_FULL
  1209.         dw    1850H,0
  1210.         dw    CRT_ROWS_C,CRT_COLS,0
  1211.         dw    0,0,vc_list4$
  1212.         db    07h,INIT_MODE,1,CRT_COLS,0,1
  1213.         dw    0,con_normal@,0
  1214.         db    CRT_ROWS_C,0
  1215.         dw    0,0
  1216.         dw    su_pfk_tbl$,0,0FF00h
  1217.         dw    0,0,0,0,0
  1218.         db    1,0
  1219.         dw    0
  1220.         db    30h                ; color sel 80 alpha
  1221.         dw    0                ; scratch
  1222.         db    0                ; graphics wait flag
  1223.         dw    0                ; cur_type_hw
  1224.         db    0                ; hercules mode
  1225.         db    01                ; default blink toggle
  1226.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1227.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1228.         dw    00                ; PC equipment word
  1229.         dw    0000h                ; ansi options count
  1230.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1231.         db    0                ; virtual port 3?4h
  1232.         rb    0                ; virtual port 3?5h
  1233.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1234.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1235.         db    0                ; virtual port 3?Ah
  1236.  
  1237. sr_vs14        dw    0,0,CRT_FULL
  1238.         dw    0,CRT_FULL,CRT_FULL
  1239.         dw    1850H,0
  1240.         dw    CRT_ROWS_C,CRT_COLS,0
  1241.         dw    0,0,vc_list4$
  1242.         db    07h,INIT_MODE,1,CRT_COLS,0,2
  1243.         dw    0,con_normal@,0
  1244.         db    CRT_ROWS_C,0
  1245.         dw    0,0
  1246.         dw    su_pfk_tbl$,0,0FF00h
  1247.         dw    0,0,0,0,0
  1248.         db    1,0
  1249.         dw    0
  1250.         db    30h                ; color sel 80 alpha
  1251.         dw    0                ; scratch
  1252.         db    0                ; graphics wait flag
  1253.         dw    0                ; cur_type_hw
  1254.         db    0                ; hercules mode
  1255.         db    01                ; default blink toggle
  1256.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1257.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1258.         dw    00                ; PC equipment word
  1259.         dw    0000h                ; ansi options count
  1260.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1261.         db    0                ; virtual port 3?4h
  1262.         rb    0                ; virtual port 3?5h
  1263.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1264.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1265.         db    0                ; virtual port 3?Ah
  1266.  
  1267. sr_vs15        dw    0,0,CRT_FULL
  1268.         dw    0,CRT_FULL,CRT_FULL
  1269.         dw    1850H,0
  1270.         dw    CRT_ROWS_C,CRT_COLS,0
  1271.         dw    0,0,vc_list4$
  1272.         db    07h,INIT_MODE,1,CRT_COLS,0,4
  1273.         dw    0,con_normal@,0
  1274.         db    CRT_ROWS_C,0
  1275.         dw    0,0
  1276.         dw    su_pfk_tbl$,0,0FF00h
  1277.         dw    0,0,0,0,0
  1278.         db    1,0
  1279.         dw    0
  1280.         db    30h                ; color sel 80 alpha
  1281.         dw    0                ; scratch
  1282.         db    0                ; graphics wait flag
  1283.         dw    0                ; cur_type_hw
  1284.         db    0                ; hercules mode
  1285.         db    01                ; default blink toggle
  1286.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1287.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1288.         dw    00                ; PC equipment word
  1289.         dw    0000h                ; ansi options count
  1290.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1291.         db    0                ; virtual port 3?4h
  1292.         rb    0                ; virtual port 3?5h
  1293.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1294.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1295.         db    0                ; virtual port 3?Ah
  1296.  
  1297. sr_vs16        dw    0,0,CRT_FULL
  1298.         dw    0,CRT_FULL,CRT_FULL
  1299.         dw    1850H,0
  1300.         dw    CRT_ROWS_C,CRT_COLS,0
  1301.         dw    0,0,vc_list4$
  1302.         db    07h,INIT_MODE,1,CRT_COLS,0,8
  1303.         dw    0,con_normal@,0
  1304.         db    CRT_ROWS_C,0
  1305.         dw    0,0
  1306.         dw    su_pfk_tbl$,0,0FF00h
  1307.         dw    0,0,0,0,0
  1308.         db    1,0
  1309.         dw    0
  1310.         db    30h                ; color sel 80 alpha
  1311.         dw    0                ; scratch
  1312.         db    0                ; graphics wait flag
  1313.         dw    0                ; cur_type_hw
  1314.         db    0                ; hercules mode
  1315.         db    01                ; default blink toggle
  1316.         db     0,1,2,3,4,5,14h,7,38h,39h    ; default pallette 
  1317.         db    3ah,3bh,3ch,3dh,3eh,3fh,0    ; settings + overscan
  1318.         dw    00                ; PC equipment word
  1319.         dw    0000h                ; ansi options count
  1320.         rb    VS_ANSI_SIZE            ; ansi input buffer
  1321.         db    0                ; virtual port 3?4h
  1322.         rb    0                ; virtual port 3?5h
  1323.         db    71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
  1324.         db    0,0,0,0,0,0,0,0,0,0,0,0,0
  1325.         db    0                ; virtual port 3?Ah
  1326.  
  1327.  
  1328.  
  1329.  
  1330. endif
  1331. ; Variable 8253 PIT count for a 60 Hz tick:
  1332. timer_count$    dw    TIMER_60_HZ
  1333.  
  1334.  
  1335. ; Added for Amstrad support
  1336.  
  1337. cloneflag$    db    IS_PC
  1338. blank$        db    ' '    ; space + initial attribute
  1339. iattrib$    db    07h    ; default attribute
  1340.  
  1341. ; Table of stored interrupt vectors:
  1342. ros_vectors$    db    NUM_SAVED_VECTORS
  1343. ros_vector0$    rw    0
  1344.         rw    NUM_SAVED_VECTORS * 2
  1345.  
  1346. ; ****************************************************************************
  1347. ; Various Video parameters - 
  1348. ; *** These parameters have to be in this order ***
  1349. ;   as they are dispatched by the Sun River driver
  1350. ;   Note : they are paragraph aligned for 32 bit movsw dispatching
  1351.  
  1352. pdseg4    dseg    para
  1353.  
  1354. video_disp_data$ rw    0
  1355.  
  1356. vc_map_seg$    rw    1            ; filled by init
  1357.  
  1358.  
  1359. mono_bits$    rb    1            ; which vc's are mono
  1360. color_bits$    rb    1            ; which vc's are color
  1361. graphic_bits$    db    0            ; which vc's in graphics (or 40 col)
  1362. top_screen_mode$ db    03            ; current screen mode of color monitor
  1363. mode_reg$    db    29h            ; current mode register val
  1364.  
  1365. ; Window data block returned by ww_pointer:
  1366.  
  1367. im_here$    db    0            ; initially not resident
  1368.         db    NUM_VIR_CONS
  1369. vc_priority$    rb    NUM_VIR_CONS-1        ; these two must
  1370. top_screen$    rb    1            ; follow each other
  1371.  
  1372. win_sized$    db    0            ; a window has been sized flag
  1373.         rb    1            ; <<unused>>
  1374.         rw    1            ; <<unused>>
  1375.  
  1376. num_vir_cons$    db    NUM_VIR_CONS        ; default master console
  1377. first_vs_num$    db    0            ; first vs per physical
  1378.  
  1379. sl_pc_flag$    db    TRUE            ; disables monitors in pc mode
  1380.  
  1381. LEN_VID_LNGDISP  equ     (offset $ - offset video_disp_data$)/4
  1382. LEN_VID_REMDISP  equ     (offset $ - offset video_disp_data$) - (LEN_VID_LNGDISP * 4) 
  1383.  
  1384. ; ****************************************************************************
  1385.  
  1386. ; Enhanced graphics adaptor data:
  1387. bit_plane_seg$    rw    1            ; where to store the bytes
  1388.  
  1389. ; Presence byte:
  1390. video$        db    0            ; bit 0 set if mono mode
  1391.                         ; bit 1 set if color mode
  1392.                         ; bit 2 set if ECD attached
  1393.                         ; bit 5 set if PS/2 MCGA
  1394.                         ; bit 6 set if PS/2 VGA
  1395.                         ; bit 7 set if standard EGA
  1396. last_curs$    dw    0FFFFh            ; last cursor position issued
  1397.  
  1398.  
  1399. ; based on PC_ structures
  1400. ; list_next and list_vc are contained in PC_ 's
  1401. if SR
  1402. vc_list$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1403. vc_list1$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1404. vc_list2$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1405. vc_list3$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1406. vc_list4$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1407.  
  1408. else
  1409. list_next$    rw    1            ; for new vc list
  1410. list_vc$    rb    1            ; same here
  1411. vc_list$    rw    (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
  1412. endif
  1413.  
  1414. ; Priority translate table:
  1415.  
  1416. mono_xlat$    rb    1 shl NUM_VIR_CONS        ; for mono vc's
  1417. color_xlat$    rb    1 shl NUM_VIR_CONS        ; for color vc's
  1418. if SR
  1419. color_xlat1$    rb    1 shl NUM_VIR_CONS        ; for color vc's
  1420. color_xlat2$    rb    1 shl NUM_VIR_CONS        ; for color vc's
  1421. color_xlat3$    rb    1 shl NUM_VIR_CONS        ; for color vc's
  1422. color_xlat4$    rb    1 shl NUM_VIR_CONS        ; for color vc's
  1423. endif
  1424.  
  1425.     end
  1426.  
  1427. ; END OF PUBDATA.A86
  1428.  
  1429.