home *** CD-ROM | disk | FTP | other *** search
-
- title 'CDOS 386 Flush process'
-
- ;*****************************************************
- ;*
- ;* FLUSH RSP
- ;*
- ;* CDOS 386 flush process, used to call the XIOS
- ;* IO_SCREEN_FLUSH routines to output screen buffers
- ;* to serial consoles.
- ;*
- ;*****************************************************
-
-
-
- rlr equ 68H ; Ready List Root
-
- xiosentry equ 28H ; offset of double word pointer in
- ; the system data segment of XIOS entry
-
- ; XIOS functions
-
- io_flush_io equ 51 ; XIOS flush routine
-
- ; PD fields
-
- p_uda equ 10h ; offset of UDA segment in PD
-
- ps_run equ 0 ; PD run status
- pf_keep equ 2 ; PD nokill flag
-
-
- ; RSP format
-
- rsp_top equ 0 ; rsp offset
- rsp_pd equ 010h ; PD offset
- rsp_uda equ 040h ; UDA offset
-
- rsp_bottom equ 140h ; end rsp header
-
- ;*****************************************************
- ;*
- ;* FLUSH CODE SEGMENT
- ;*
- ;*****************************************************
-
- cseg
- org 0
-
-
- flush: ; Flush process starts here
- mov dl,p_cns ; get our virtual console number
- mov ax,io_flush_io ; go to flush code
- ; XIOS entry routine
- xios:
- mov ds,sysdat
- mov si,.rlr
- mov es,p_uda[si]
- jmpf dword ptr .xiosentry ; all done by XIOS module
-
-
- ;*****************************************************
- ;*
- ;* Data Segment
- ;*
- ;*****************************************************
-
- dseg
- org 0
-
- sysdat dw 0
- dw 0 ; pointer to number of incarnations (in SYSDAT)
- pcon db 0 ; physical console number (Copy Index - 0 based)
- db 0
- dw 0,0
-
- RSF_DYNAMIC equ 0001h ; create at boot time
- RSF_NONBANK equ 0002h ; allocate non-banked
- RSF_SPECIAL equ 0004h ; requires separate code
- RSF_ENVIRON equ 0008h ; requires large environment
-
- dw 0 ; flags (set Dynamic bit)
-
- dw 0,0
-
- org rsp_pd
-
- dw 0,0 ; link,thread
- db ps_run ; status
- db 180 ; priority (beats everybody)
- dw pf_keep ; flags
- db 'Flush1 ' ; name
- dw rsp_uda/10h ; uda seg
- db 0,0,0,0 ; dsk,usr,ldsk,luser
- dw 0 ; mem partitions
- dw 0,0 ; dvract,wait
- db 0,0 ; org,net
- dw 0 ; parent
- p_cns db 4,0,0,0 ; cns,abort,cin,cout
- db 0,0,0,0 ; lst,sf3,sf4,sf5
- dw 0,0,0,0 ; reserved,pret,scratch
-
- org rsp_uda
-
- uda dw 0,0,0,0 ;0-7 note: no default DMA
- dw 0,0,0,0 ;8-fh
- dw 0,0,0,0 ;10-17
- dw 0,0,0,0 ;18-1f
- dw 0,0,0,0 ;20-27
- dw 0,0,0,0 ;28-2f
- dw 0,0,offset stack_top,0 ;30-37
- dw 0,0,0,0 ;38-3f
- dw 0,0,0,0 ;40-47
- dw 0,0,0,0 ;48-4f
- dw 0,0,0,0 ;50-57
- dw 0,0,0,0 ;58-5f
- db 1 ;60 INSYS <> 0
- ;don't switch from
- ;from UDA stack
- ;on entry to SUP
- db 0
-
- dw 0cccch,0cccch,0cccch ;62-67
- dw 0cccch,0cccch,0cccch,0cccch ;68-6F
- dw 0cccch,0cccch,0cccch,0cccch ;70
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;80
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;90
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;A0
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;B0
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;C0
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;D0
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;E0
- dw 0cccch,0cccch,0cccch,0cccch
- dw 0cccch,0cccch,0cccch,0cccch ;F0
- dw 0cccch
-
- stack_top dw offset flush ; code starting point
- dw 0 ; code seg - set by GENSYS
- dw 0 ; init. flags - set by GENSYS
-
- ; UDA is 100H bytes long
- end
-
-
-