Digital Research
This commit is contained in:
2020-11-06 18:50:37 +01:00
parent 621ed8ccaf
commit 31738079c4
8481 changed files with 1888323 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
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