home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-01-26 | 37.3 KB | 1,429 lines |
- ; PUBDATA.A86
- title 'Public Data'
- pagesize 60+11
- ;****************************************
- ;* *
- ;* PUBLIC XIOS DATA *
- ;* CPCDOS 6.0 XIOS *
- ;* DRI OS ENGR, JMB, GMS, JW *
- ;* *
- ;****************************************
- ; Major mods:
- ; 6.x
- ; 10 OCT 88 -- extended MGE VS structures - GMS
- ; 12 SEP 88 -- move last_curs out of dispatch area - GMS
- ; 3 AUG 88 -- added pointer to pc2port2_table in io_pointer - GMS
- ; 13 Jul 88 -- XPC protocol support added - IJ
- ; 12 JUL 88 -- removed memory disk size param - GMS
- ; 15 JUN 88 -- int14 and int17 tables extended for per VC GMS
- ; 5 APR 88 -- SUN river support added - GMS
- ; 5 APR 88 -- pc2port_table moved from LISTAUX - GMS
- ; 16 FEB 88 -- return IO_POINTER to DRIVE_TYPE$ - JW
- ; 11 JAN 88 -- save_equip$ moved from PCTERM.A86 - GMS
- ; 17 DEC 87 -- added public serdrv_vector$ - JW
- ; 2 DEC 87 -- removed num_color and num_mono - GMS
- ; 6.0
- ; 11 NOV 87 -- add entry for ROS vector table in ptr_list GMS
- ; 21 OCT 87 -- added int14 and int17 tables - GMS
- ; 30 SEP 87 -- extra ccb's for 386 version - GMS
- ; 5 AUG 87 -- next_flag$ moved to header.a86 - GMS
- ; 5.2
- ; 26 May 87 -- added next_flag$ - GMS
- ; 25 Mar 87 -- Added the Console Attributes to CCB's - JC
- ; 9 FEB 87 -- added structs for up to 9 ports - JW
- ; 13 NOV 86 -- Hercules retrace set to 0EEEEh - GMS
- ; 27 OCT 86 -- Hercules parameter tables - PAR
- ; 16 OCT 86 -- Amstrad initial attribute support - GMS
- ; 18 AUG 86 -- Multiple DOS partition support - GMS
- ; 20 SEP 85 -- add data BCBs
- ; 10 JUN 85 -- update 4.1 ASM86 XIOS to RASM86
-
- ; include COPYRITE.TXT
-
- nolist
- include CDOS.EQU
- include XIOS.EQU
- include PCHW.EQU
- list
- ; These have been included:
- ; include PCHW.EQU
- ; include CDOS.EQU
- ; include XIOS.EQU
-
- DGROUP group pdseg0,pdseg1,pdseg2,pdseg3,pdseg4
-
- public cloneflag$
- public iattrib$, blank$
- public ccb_list$ ; for STATLINE.A86
- public ccb_tab$, lcb_tab$, acb_tab$ ; for HEADER.A86
- public lcb_list$, acb_list$
- public int17_ptr$, int14_ptr$
- public dummy_cb$
-
- public pcdpb8S$, pcdpb8D$, dpbs$, dpbd$ ; for FLOPPY.A86
- public pcdpb9S$, pcdpb9D$
- public dos_dpbs$
-
- public dsm_md$, dph_md$ ; for INIT.A86 ####
- public nfatrecs_md$, nclust_md$
- public save_equip$
- public num_flop$
- public num_flop_des$, num_hard$, num_print$
- public num_port$, num_ndp$, num_mmkb$
-
- public ros_vectors$, ros_vector0$
-
- public disk_int_off$, disk_int_seg$
- public lo_mem_top$, hi_mem_top$, hi_mem_start$
- public aux_prot_blk$
- public pc2port_table$,port2pc_table$
-
- public ptr_list$, PTR_LIST_SIZE
- public timer_count$ ; variable PIT count
- public retrace$
- public herc_text$, herc_graph$
-
- if SR
- public sr_vs_table$, sr_pc_table$
- public SR_VS_TLEN, SR_PC_TLEN
- public sr_table_vs$
- public vc_list1$,vc_list2$,vc_list3$,vc_list4$
- public color_xlat1$,color_xlat2$,color_xlat3$,color_xlat4$
- endif
-
- public video_disp_data$
- public LEN_VID_LNGDISP,LEN_VID_REMDISP
- public vc_map_seg$
- if not SR
- public list_next$, list_vc$
- endif
- public color_bits$, mono_bits$, graphic_bits$
- public mode_reg$, top_screen_mode$
- public im_here$, vc_priority$, top_screen$
- public mono_xlat$, color_xlat$, vc_list$
- public bit_plane_seg$, video$, win_sized$
- public last_curs$, num_vir_cons$, first_vs_num$
- public sl_pc_flag$
- extrn vector_table$: word
- eject
-
- dseg
- extrn switch_bits$:word ; in KEYBOARD.A86
- extrn pfk_tbl0$:byte, pfk_tbl1$:byte ; in CONIN.A86
- extrn pfk_tbl2$:byte, pfk_tbl3$:byte
- extrn aux_blk_in0$:word, aux_blk_out0$:word ; in LISTAUX.A86
- extrn aux_blk_in1$:word, aux_blk_out1$:word
- extrn serdrv_vector$:dword
- extrn scroll_mode$:byte ; in WINDOWS3.A86
- extrn drive_type$:byte ; in FLOPPY.A86
- if SR
- extrn su_pfk_tbl$:byte ; in HEADER.A86
- endif
- cseg
- extrn i_aux_0@:near, i_aux_1@:near ; in LISTAUX.A86
- if SR
- extrn con_normal@:near ; in WINDOWS1.A86
- endif
- eject
-
- ;********************************************************
- ;* *
- ;* CONSOLE CONTROL BLOCKS *
- ;* *
- ;********************************************************
-
- pdseg0 dseg word
-
- ; ccb_list used by io_statline routine
- ccb_list dw ccb0,ccb1,ccb2,ccb3 ; PC VCs
- dw ccb4 ; COM1
- dw ccb5 ; COM2
- dw ccb6,ccb7,ccb8 ; COM3-COM5 if 4-port card
- dw ccb9,ccb10,ccb11,ccb12 ; COM6-COM9 if 8-port card
-
- if V386
- dw ccb13,ccb14,ccb15,ccb16 ; more for 2 virtual per
- dw ccb17,ccb18,ccb19,ccb20 ; physical on pcterm emulation
- dw ccb21
- endif
-
- ccb_tab$ rw 0
- ccb0 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
- dw 0 ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw ccb1,0 ; first link
-
- ccb1 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,1,0 ; physical, virtual console, reserved
- db CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
- dw CSM_BACKGROUND ; background
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw ccb2,0 ; link to next
-
- ccb2 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,2,0 ; physical, virtual console, reserved
- db CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
- dw CSM_BACKGROUND ; background
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw ccb3,0 ; link to next
-
- ccb3 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,3,0 ; physical, virtual console, reserved
- db CA_25LINES + CA_ANSI+ CA_ROS + CA_HARDWARE
- dw CSM_BACKGROUND ; background
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb4 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 1,4,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb5 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 2,5,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb6 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 3,6,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb7 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 4,7,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb8 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 5,8,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb9 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 6,9,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb10 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 7,10,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb11 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 8,11,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb12 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 9,12,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- if V386
- ; Need another 9 ccb's for virtual console support
- ; Physical and virtual console numbers are allocated
- ; at INIT time.
-
- ccb13 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb14 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb15 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb16 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb17 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb18 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb19 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb20 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- ccb21 dw 0 ; owner
- dw 0,0,0
- db 0ffh, 0ffh ; mimic, msource
- db 0,0,0 ; physical, virtual console, reserved
- db 0
- dw CSM_FOREGROUND ; foreground
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0,0,0
- dw 0,0 ; end of link list
-
- endif
- eject
-
- ;********************************************************
- ;* *
- ;* LIST AND AUXILIARY CONTROL BLOCK TABLE *
- ;* *
- ;********************************************************
-
- pdseg1 dseg word
-
- lcb_list$ dw lcb0,lcb1,lcb2 ; parallel
- dw lcb3,lcb4 ; com1 com2
- dw lcb5,lcb6,lcb7
- dw lcb8,lcb9,lcb10,lcb11
- if SR
- dw lcb12,lcb13,lcb14 ; PAR,SER,SER
- dw lcb15,lcb16,lcb17
- dw lcb18,lcb19,lcb20
- dw lcb21,lcb22,lcb23
- endif
- acb_list$ dw acb0,acb1 ; COM1 COM2
- dw acb2,acb3,acb4
- dw acb5,acb6,acb7,acb8
- if SR
- dw dummy_cb$,acb10,acb11
- dw dummy_cb$,acb13,acb14
- dw dummy_cb$,acb16,acb17
- dw dummy_cb$,acb19,acb20
- endif
-
- dummy_cb$ dw 0FFFEh ; dummy PD
- dw 0,0,0
- db 0FFh,0FFh ; mimic, msource
-
- lcb_tab$ rw 0
- lcb0 dw 0,0,0,0
- db 0FFh,0FFh ; mimic, msource
- lcb1 dw 0,0,0,0
- db 0FFh,0FFh
- lcb2 dw 0,0,0,0
- db 0FFh,0FFh
-
- acb_tab$ rw 0 ; the last 2 lcb's do double duty
-
- lcb3 rw 0 ; as the first two aux cb's.
- acb0 dw 0,0,0,0 ; this is because printer 3 and 4
- db 0FFh,0FFh ; use the same hardware as aux
-
- lcb4 rw 0 ; port 0 and 1.
- acb1 dw 0,0,0,0 ; so this little trick prevents them
- db 0FFh,0FFh ; from crashing into each other.
-
- lcb5 rw 0 ; multi-port card serial port #2
- acb2 dw 0,0,0,0,-1
-
- lcb6 rw 0 ; multi-port card serial port #3
- acb3 dw 0,0,0,0,-1
-
- lcb7 rw 0 ; multi-port card serial port #4
- acb4 dw 0,0,0,0,-1
-
- lcb8 rw 0 ; multi-port card serial port #5
- acb5 dw 0,0,0,0,-1
-
- lcb9 rw 0 ; multi-port card serial port #6
- acb6 dw 0,0,0,0,-1
-
- lcb10 rw 0 ; multi-port card serial port #7
- acb7 dw 0,0,0,0,-1
-
- lcb11 rw 0 ; multi-port card serial port #8
- acb8 dw 0,0,0,0,-1
-
- if SR
- lcb12 rw 0 ; SunRiver station 0 parallel port
- dw 0,0,0,0,-1 ; LCB only
- lcb13 rw 0 ; SunRiver station 0 COM1
- acb10 dw 0,0,0,0,-1
- lcb14 rw 0 ; SunRiver station 0 COM2
- acb11 dw 0,0,0,0,-1
-
- lcb15 rw 0 ; SunRiver station 1 parallel port
- dw 0,0,0,0,-1 ; LCB only
- lcb16 rw 0 ; SunRiver station 1 COM1
- acb13 dw 0,0,0,0,-1
- lcb17 rw 0 ; SunRiver station 1 COM2
- acb14 dw 0,0,0,0,-1
-
- lcb18 rw 0 ; SunRiver station 2 parallel port
- dw 0,0,0,0,-1 ; LCB only
- lcb19 rw 0 ; SunRiver station 2 COM1
- acb16 dw 0,0,0,0,-1
- lcb20 rw 0 ; SunRiver station 2 COM2
- acb17 dw 0,0,0,0,-1
-
- lcb21 rw 0 ; SunRiver station 3 parallel port
- dw 0,0,0,0,-1 ; LCB only
- lcb22 rw 0 ; SunRiver station 3 COM1
- acb19 dw 0,0,0,0,-1
- lcb23 rw 0 ; SunRiver station 3 COM2
- acb20 dw 0,0,0,0,-1
-
- endif
-
- int17_ptr$ db 3 ; No of supported List Devices
- db 0, 1, 2 ; List Device Mapping (INT 17 - LPT1
- db 0, 1, 2 ; (INT 17 and LPT1-LPT3)
- db 0, 1, 2 ; mapping per virtual console
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
- db 0, 1, 2
-
- int14_ptr$ db 2 ; No of supported AUX devices
- db 0, 1 ; Serial Device Mapping
- db 0, 1 ; (INT 14 and COM1/COM2)
- db 0, 1 ; mapping per virtual console
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
- db 0, 1
-
-
- eject
- ;****************************************************************
- ;* *
- ;* DISK PARAMETER STRUCTURES *
- ;* *
- ;****************************************************************
-
- pdseg2 dseg word
-
-
- dph_md$ dw 0000h,0000h ; translate table
- dw 0000h,0000h ; scratch area
- dw dpb_md ; dsk parm block
- dw 0000h ; no check
- dw 0ffffh ; alloc vectors
- dw 0ffffh ; dir buff cntrl blk
- dw 0 ; init now does data buffers alloc
- dw 0 ; init now does hash alloc
- rw 4 ; reserved for jump table
-
-
- ; Single sided floppy parameter block:
-
- dpbs$ dw 8 ; sectors per track
- db 3 ; block shift
- db 7 ; block mask
- db 0 ; extnt mask
- dw 155 ; disk size in 1k blocks
- ; less offset track(s)
- dw 63 ; directory max
- db 11000000b ; alloc0
- db 0 ; alloc1
- dw 16 + PERM ; check size + door-open fake-out
- dw 1 ; offset
- db 2 ; phys sec shift
- db 3 ; phys sec mask
-
- ; Double sided floppy parameter block:
-
- dpbd$ dw 8 ; sectors per track
- db 4 ; block shift
- db 15 ; block mask
- db 1 ; extnt mask
- dw 157 ; disk size in 2k blocks
- ; less offset track(s)
- dw 63 ; directory max
- db 10000000b ; alloc0
- db 0 ; alloc1
- dw 16 + PERM ; check size + door-open fake-out
- dw 1 ; offset
- db 2 ; phys sec shift
- db 3 ; phys sec mask
-
- ; Memory disk parameter block:
-
- dpb_md dw 0fffeh ; 16 bit FAT
- dw 1 ; 1 FAT copy
- nfatrecs_md$ dw 0 ; Number of FAT recs (filled in by init)
- nclust_md$ dw 0 ; Number of clusters ( " " " " )
- dw 512 ; Cluster size
- dw 0 ; Address of FAT
- dw 8 ; sectors per track
- db 4 ; block shift
- db 15 ; block mask
- db 0 ; extnt mask
- dsm_md$ dw 0 ; max disk size in 2k blocks
- ; recalculated in init
- dw 63 ; directory max
- db 0 ; alloc0
- db 0 ; alloc1
- dw PERM ; check size--"permanent" media
- dw 0 ; offset
- db 2 ; phys sec shift
- db 3 ; phys sec mask
-
- dos_dpbs$ dw 0, 0, 0, 0 ; dynamic DPBs for DOS disks
-
-
- ; FAT ID = FE, Single Sided, 8 Sector format (PCDOS/MSDOS standard):
- pcdpb8S$ dw -1 ; extended DPB flag
- dw 2 ; NFATS
- dw 1 ; NFATRECS
- dw 315 ; NCLSTRS
- dw 512*1 ; CLSIZE
- dw 1 ; FATADD
-
- dw 8 ; sectors per track
- db 3 ; CP/M block shift
- db 7 ; CP/M block mask
- db 0 ; CP/M extnt mask
- dw 159 ; CP/M disk size in 1k blocks
- ; less offset track(s)
- dw 63 ; directory max (ROOT DIRECTORY SIZE)
- db 0 ; CP/M alloc0
- db 0 ; CP/M alloc1
- dw 16 + PERM ; check size + door-open fake-out
- dw 0 ; offset
- db 2 ; phys sec shift
- db 3 ; phys sec mask
-
- ; FAT ID = FF, Double Sided, 8 Sector format (PCDOS/MSDOS standard):
- pcdpb8D$ dw -1 ; extended DPB flag
- dw 2 ; NFATS
- dw 1 ; NFATRECS
- dw 317 ; NCLSTRS
- dw 512*2 ; CLSIZE
- dw 1 ; FATADD
-
- dw 8 ; sectors per track
- db 3 ; CP/M block shift
- db 7 ; CP/M block mask
- db 0 ; CP/M extnt mask
- dw 319 ; CP/M disk size in 1k blocks
- ; less offset track(s)
- dw 111 ; directory max (ROOT DIRECTORY SIZE)
- db 0 ; CP/M alloc0
- db 0 ; CP/M alloc1
- dw 28 + PERM ; check size
- dw 0 ; offset
- db 2 ; phys sec shift
- db 3 ; phys sec mask
-
-
- ; FAT ID = FC, Single Sided, 9 Sector format (IBM PCDOS 2.0 ONLY)
- pcdpb9S$ dw -1 ;extended DPB flag
- dw 2 ;NFATS
- dw 2 ;NFATRECS
- dw 353 ;NCLSTRS
- dw 512 ;CLSIZE
- dw 1 ;FATADD
- ;
- dw 9 ;sectors per track
- db 3 ; CP/M block shift
- db 7 ; CP/M block mask
- db 0 ; CP/M extnt mask
- dw 179 ; CP/M disk size in 1k blocks
- ; less offset track(s)
- dw 63 ;directory max (ROOT DIRECTORY SIZE)
- db 0 ; CP/M alloc0
- db 0 ; CP/M alloc1
- dw 16 + PERM ;*check size + door-open fake-out
- dw 0 ;offset
- db 2 ;phys sec shift
- db 3 ;phys sec mask
-
- ; FAT ID = FD, DOUBLE Sided, 9 Sector format (IBM PCDOS 2.0 ONLY)
- pcdpb9D$ dw -1 ;extended DPB flag
- dw 2 ;NFATS
- dw 2 ;NFATRECS
- dw 356 ;NCLSTRS
- dw 512*2 ;CLSIZE
- dw 1 ;FATADD
- ;
- dw 9 ;sectors per track
- db 3 ; CP/M block shift
- db 7 ; CP/M block mask
- db 0 ; CP/M extnt mask
- dw 359 ; CP/M disk size in 1k blocks
- ; less offset track(s)
- dw 111 ;directory max (ROOT DIRECTORY SIZE)
- db 0 ; CP/M alloc0
- db 0 ; CP/M alloc1
- dw 28 + PERM ;* check size + door-open fake-out
- dw 0 ;offset
- db 2 ;phys sec shift
- db 3 ;phys sec mask
-
- eject
-
- ;************************************************
- ;* *
- ;* PUBLIC DATA BLOCKS *
- ;* *
- ;************************************************
-
- pdseg3 dseg word
-
- ptr_list$ dw equip_data
- dw setup_data
- dw switch_bits$ ; defines a vc switch
- dw aux_prot_blk$ ; pointers to aux protocol
- dw scroll_mode$ ; how a color mon scrolls
- dw i_aux_0@ ; aux int vector port 0
- dw i_aux_1@ ; aux int vector port 1
- dw vector_table$ ; ROS interrupt entries table
- dw serdrv_vector$ ; for use by installable serial devices
- dw drive_type$ ; array of floppy disk types
- dw pc2port_table$ ; physical console to port number table
-
- PTR_LIST_SIZE equ (offset $ - offset ptr_list$)/2
-
- ; Added for Hercules support
- retrace$ dw 0eeeeh ; min text retrace loop
- herc_text$ db 61h,50h,52h,0fh,19h,06h ; hercules text params
- db 19h,19h,02h,0dh,0bh,0ch
- herc_graph$ db 35h,2dh,2eh,07h,5bh,02h
- db 57h,57h,02h,03h,00h,00h
-
-
- ; Equipment configuration data block:
-
-
- equip_data rb 0
- num_flop$ dw 0 ; number of floppy disks 1-4
- num_hard$ dw 0 ; number of hard disks 0-2
- num_print$ dw 0 ; number of parallel printers 0-3
- num_port$ dw 0 ; number of serial ports 0-2
- num_ndp$ dw 0 ; number of 8087's 0-1
- num_mmkb$ dw 0 ; main memory in Kilobytes 256-640
- num_flop_des$ dw 0 ; number of floppy designators 2-4
-
- ; PC equipment word at power up
- save_equip$ rw 1 ; save area for equipment flag
-
- ; Setup data block:
-
- setup_data rb 0
- disk_int_off$ rw 1 ; save the disk interrupt vector
- disk_int_seg$ rw 1 ; for dskmaint (and old setup)
- dw pfk_tbl0$
- dw pfk_tbl1$
- dw pfk_tbl2$
- dw pfk_tbl3$
- lo_mem_top$ dw 0 ; main mem seg ceiling 4000-A000
- hi_mem_start$ dw 0 ; high mem seg beginning C000-E000
- hi_mem_top$ dw 0 ; high mem seg ceiling D000-F000
-
- ; Pointers to Auxiliary input/output protocol bytes:
-
- aux_prot_blk$ rw 0
- dw aux_blk_in0$ + AUX_PROT
- dw aux_blk_in1$ + AUX_PROT
- dw aux_blk_out0$ + AUX_PROT
- dw aux_blk_out1$ + AUX_PROT
-
-
- ; Logical to physical console mapping table
- pc2port_table$ db 0FFh ; main console - no serial port
- rb NUM_AUX_PORTS ; serial port indices will go here
- if SR
- rb 4*3 ; extra for SUN River terminals
- ; 1 main console + 2 COM ports
- ; for 4 stations.
- endif
-
- ; Physical to logical console mapping table
- port2pc_table$ db 0ffh ; physical port 0 logical number
- db 0ffh ; port 1
- db 0ffh ; port 2
- db 0ffh
- db 0ffh
- db 0ffh
- db 0ffh
- db 0ffh
- db 0ffh ; port 8
- if SR
- db 0ffh,0ffh,0ffh ; Sun river station 1 = physical port 9
- db 0ffh,0ffh,0ffh ; Sun river station 2
- db 0ffh,0ffh,0ffh ; Sun river station 3
- db 0ffh,0ffh,0ffh ; Sun river station 4
-
- endif
-
- if SR
- ; Sun River Virtual console number allocated
- ; used by point_vs@
- sr_vs_table$ db 0ffh,0ffh,0ffh,0ffh ; 0ffh = available
- db 0ffh,0ffh,0ffh,0ffh ; max = 4 virtual per physical
- db 0ffh,0ffh,0ffh,0ffh
- db 0ffh,0ffh,0ffh,0ffh
- SR_VS_TLEN equ offset $ - offset sr_vs_table$
-
- ; Sun River physical console number allocated
- ; used in point_pc@ - in SRTERM.A86
- sr_pc_table$ db 00h ; first is MASTER console
- db 0ffh,0ffh,0ffh,0ffh ; 0ffh = available
- ; else contains logical physical no.
- SR_PC_TLEN equ offset $ - offset sr_pc_table$
-
- endif
-
- if SR
- ; Sun River Virtual console structures
-
- CRT_FULL equ 100h * (CRT_ROWS_C - 1) + (CRT_COLS - 1)
-
- sr_table_vs$ dw sr_vs1,sr_vs2,sr_vs3,sr_vs4
- dw sr_vs5,sr_vs6,sr_vs7,sr_vs8
- dw sr_vs9,sr_vs10,sr_vs11,sr_vs12
- dw sr_vs13,sr_vs14,sr_vs15,sr_vs16
-
-
- sr_vs1 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list1$
- db 07h,INIT_MODE,1,CRT_COLS,0,1 ; VS_number and VS_bit
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs2 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list1$
- db 07h,INIT_MODE,1,CRT_COLS,0,2
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs3 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list1$
- db 07h,INIT_MODE,1,CRT_COLS,0,4
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs4 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list1$
- db 07h,INIT_MODE,1,CRT_COLS,0,8
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
-
- sr_vs5 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list2$
- db 07h,INIT_MODE,1,CRT_COLS,0,1
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs6 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list2$
- db 07h,INIT_MODE,1,CRT_COLS,0,2
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs7 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list2$
- db 07h,INIT_MODE,1,CRT_COLS,0,4
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs8 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list2$
- db 07h,INIT_MODE,1,CRT_COLS,0,8
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
-
- sr_vs9 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list3$
- db 07h,INIT_MODE,1,CRT_COLS,0,1 ; VS_number and VS_bit
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs10 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list3$
- db 07h,INIT_MODE,1,CRT_COLS,0,2
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs11 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list3$
- db 07h,INIT_MODE,1,CRT_COLS,0,4
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs12 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list3$
- db 07h,INIT_MODE,1,CRT_COLS,0,8
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
-
- sr_vs13 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list4$
- db 07h,INIT_MODE,1,CRT_COLS,0,1
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs14 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list4$
- db 07h,INIT_MODE,1,CRT_COLS,0,2
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs15 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list4$
- db 07h,INIT_MODE,1,CRT_COLS,0,4
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
- sr_vs16 dw 0,0,CRT_FULL
- dw 0,CRT_FULL,CRT_FULL
- dw 1850H,0
- dw CRT_ROWS_C,CRT_COLS,0
- dw 0,0,vc_list4$
- db 07h,INIT_MODE,1,CRT_COLS,0,8
- dw 0,con_normal@,0
- db CRT_ROWS_C,0
- dw 0,0
- dw su_pfk_tbl$,0,0FF00h
- dw 0,0,0,0,0
- db 1,0
- dw 0
- db 30h ; color sel 80 alpha
- dw 0 ; scratch
- db 0 ; graphics wait flag
- dw 0 ; cur_type_hw
- db 0 ; hercules mode
- db 01 ; default blink toggle
- db 0,1,2,3,4,5,14h,7,38h,39h ; default pallette
- db 3ah,3bh,3ch,3dh,3eh,3fh,0 ; settings + overscan
- dw 00 ; PC equipment word
- dw 0000h ; ansi options count
- rb VS_ANSI_SIZE ; ansi input buffer
- db 0 ; virtual port 3?4h
- rb 0 ; virtual port 3?5h
- db 71h,50h,5ah,0ah,1fh,6,19h,1ch,2,7,6,7
- db 0,0,0,0,0,0,0,0,0,0,0,0,0
- db 0 ; virtual port 3?Ah
-
-
-
-
- endif
- ; Variable 8253 PIT count for a 60 Hz tick:
- timer_count$ dw TIMER_60_HZ
-
-
- ; Added for Amstrad support
-
- cloneflag$ db IS_PC
- blank$ db ' ' ; space + initial attribute
- iattrib$ db 07h ; default attribute
-
- ; Table of stored interrupt vectors:
- ros_vectors$ db NUM_SAVED_VECTORS
- ros_vector0$ rw 0
- rw NUM_SAVED_VECTORS * 2
-
- ; ****************************************************************************
- ; Various Video parameters -
- ; *** These parameters have to be in this order ***
- ; as they are dispatched by the Sun River driver
- ; Note : they are paragraph aligned for 32 bit movsw dispatching
-
- pdseg4 dseg para
-
- video_disp_data$ rw 0
-
- vc_map_seg$ rw 1 ; filled by init
-
-
- mono_bits$ rb 1 ; which vc's are mono
- color_bits$ rb 1 ; which vc's are color
- graphic_bits$ db 0 ; which vc's in graphics (or 40 col)
- top_screen_mode$ db 03 ; current screen mode of color monitor
- mode_reg$ db 29h ; current mode register val
-
- ; Window data block returned by ww_pointer:
-
- im_here$ db 0 ; initially not resident
- db NUM_VIR_CONS
- vc_priority$ rb NUM_VIR_CONS-1 ; these two must
- top_screen$ rb 1 ; follow each other
-
- win_sized$ db 0 ; a window has been sized flag
- rb 1 ; <<unused>>
- rw 1 ; <<unused>>
-
- num_vir_cons$ db NUM_VIR_CONS ; default master console
- first_vs_num$ db 0 ; first vs per physical
-
- sl_pc_flag$ db TRUE ; disables monitors in pc mode
-
- LEN_VID_LNGDISP equ (offset $ - offset video_disp_data$)/4
- LEN_VID_REMDISP equ (offset $ - offset video_disp_data$) - (LEN_VID_LNGDISP * 4)
-
- ; ****************************************************************************
-
- ; Enhanced graphics adaptor data:
- bit_plane_seg$ rw 1 ; where to store the bytes
-
- ; Presence byte:
- video$ db 0 ; bit 0 set if mono mode
- ; bit 1 set if color mode
- ; bit 2 set if ECD attached
- ; bit 5 set if PS/2 MCGA
- ; bit 6 set if PS/2 VGA
- ; bit 7 set if standard EGA
- last_curs$ dw 0FFFFh ; last cursor position issued
-
-
- ; based on PC_ structures
- ; list_next and list_vc are contained in PC_ 's
- if SR
- vc_list$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
- vc_list1$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
- vc_list2$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
- vc_list3$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
- vc_list4$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
-
- else
- list_next$ rw 1 ; for new vc list
- list_vc$ rb 1 ; same here
- vc_list$ rw (2*NUM_VIR_CONS-1) * CRT_ROWS_P * 2 + 4
- endif
-
- ; Priority translate table:
-
- mono_xlat$ rb 1 shl NUM_VIR_CONS ; for mono vc's
- color_xlat$ rb 1 shl NUM_VIR_CONS ; for color vc's
- if SR
- color_xlat1$ rb 1 shl NUM_VIR_CONS ; for color vc's
- color_xlat2$ rb 1 shl NUM_VIR_CONS ; for color vc's
- color_xlat3$ rb 1 shl NUM_VIR_CONS ; for color vc's
- color_xlat4$ rb 1 shl NUM_VIR_CONS ; for color vc's
- endif
-
- end
-
- ; END OF PUBDATA.A86
-
-