Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 86/CONCURRENT/CCPM-86 3.1 SOURCE/D5/SWITCH.A86
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

79 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

title 'Screen Switch module'
;****************************************************************
;* *
;* This module is the entry point for a screen switch *
;* FILE NAME: switch.a86 *
;* LAST UPDATE: 2/13/84 *
;* *
;****************************************************************
include system.lib
include flags.equ
include serdata.equ
eject
dseg
extrn ocdesctbl:word
extrn f30_tbl: word
cseg
public io_switch
extrn io_statline:near ;; in statlin.a86
extrn vs_switch:near ;; in vscreen.a86
extrn supif:near ;; in headentr.a86
;=========
io_switch: ; Function 7: Switch Screen
;=========
;
; input: dl = Vcon to switch to
; dh = Pcon to do the switch on
;
push dx ;; save the Pcon and Vcon
call vs_switch ;; does fully buffered screen
;; switch.
pop dx ;; DH -> pcon, DL -> vcon
call set_up_bx ;; BX -> output Q ctl structure
check_graph:
mov CUR_VCON[bx],dl
push dx ! push bx ;; and check for a graphics
xor bh,bh ;; process that was flagwaited
mov bl,dl
shl bx,1
mov bx, f30_tbl[bx]
test bx, 010H ;; 010h = graphics is on
jz go_stat
xor dh,dh
add dl, V_FLAG ;; Flag # = virt cons + bias
mov cl, f_flagset ;; Do the system flag set.
call supif
go_stat:
pop bx ! pop dx ;; DL -> phys cons #
mov CUR_VCON[bx],dl
mov dl, dh ;; get pcon
jmp io_statline ;; update status line
;-----------
set_up_bx:
;-----------
xor bx, bx
mov bl, dh ;; use Pcon to index into the Xmit Q's
shl bx, 1
mov bx, ocdesctbl[bx] ;; bx -> Xmit Q control
ret
end