Trailing-Edge
-
PDP-10 Archives
-
decuslib20-04
-
decus/20-0135/06/vtisng.mac
There are 2 other files named vtisng.mac in the archive. Click here to see a list.
00100 COMMENT * vtisng, SIMULA specification;
00200 OPTIONS(/E:QUICK,vtisng);
00300 PROCEDURE vtisng(param);
00400 NAME param; INTEGER param;
00500 COMMENT synchronizes the cursor in the cursor to the screen position
00600 identified by xhoriz,xvertic;
00700
00800
00900 !*;! MACRO-10 code !*;!
01000
01100 TITLE vtisng
01200 ENTRY vtisng ;! When called from SIMULA
01300 ENTRY maisng ;! When called from MACRO
01400 SUBTTL VIDED subroutine, Jacob Palme 1978
01500
01600 ;!*** Copyright 1978 by the Swedish Defence Research Institute. ***
01700
01800 sall
01900 search simmac,simmcr,simrpa
02000 search vtmvda
02100 macinit
02200 extern masynk
02300 if2,<ifdef VT$BPT,<intern VT$BPT>
02400 ifndef VT$BPT,<extern VT$BPT>>
02500
02600 COMMENT* REGISTER USAGE IN THIS PROCEDURE
02700 X0 Temporary use
02800 X1 Destroyed by outchr, vtmcur, vtsynk, used for trmop
02900 X2 ==XTAC when calling function procedures, used for trmop
03000 X3 ==XWAC1 = first parameter used to load XBASE,
03100 = reference to sysout used by IONB via OUTCHR and vtmcur
03200 X4 Used by vtmcur
03300 X5 ==xhoriz, parameter to vtmcur and vtsynk
03400 X6 ==xvertic, parameter to vtmcur and vtsynk
03500 X7 ==XBH = used by OUTCHR and VTMCUR, buffer header pointer
03600 X10 free
03700 X11 ==xgotch internal version of q_gotchar
03800 X12 Destroyed by vtmcur, vtsynk
03900 X13 xtyp == terminal type
04000 X14 ==XBASE = base of mvistax SIMULA data block
04100 X15 ==XCB current block pointer, used by RTS
04200 X16 ==XLOW points to static area in RTS, used by RTS
04300 X17 ==XPDP push down list pointer
04400 *;!
04500
04600 bup==OFFSET(ZBHBUP)
04700 cnt==OFFSET(ZBHCNT)
04800
04900 ;! OUTCHR assumes XWAC1 = file ref for Sysout, XBH pointer to
05000 ;! buffer header. XWAC1==AC3, XBH==AC7.
05100 ;! OUTCHR moves the character in AC0 to the SYSOUT output
05200 ;! file buffer. IF a parameter is given, the contents of
05300 ;! the word with the given offset from xbase is loaded into
05400 ;! AC0 first. xbase refers to the mvistax class block instance.
05500
05600 DEFINE outchr(c)<
05700 IFNB <c>,<L c(xbase)>
05800 SOSGE cnt(XBH)
05900 XEC IONB
06000 IDPB bup(XBH)
06100 >
06200
06300 ;! local definitions
06400 xhoriz==XWAC1+2 ;! AC5
06500 xvertic==xhoriz+1 ;! AC6
06600
06700 xgotch==x11 ;! character which just has been input
06800 xbase==X14 ;! base of mvistax class instance block
06900 xtyp== X13 ;! terminal type number
07000
07100 vtisng: PROC ;! entry point when called from SIMULA
07200 ;! Set up environment variables
07300 LF xbase,ZFLZBI(,XWAC1) ;! Base of MVISTAX block (vtmvda offsets)
07400 LOWADR ;! XLOW points to static area
07500 L XWAC1,YSYSOUT(XLOW) ;! XWAC1==AC3:- Sysout for OUTCHR!
07600 LF XBH,ZFIOBH(XWAC1) ;! XBH==AC7:- buffer header
07700 SUBI XBH,1 ;! Compute buffer header reference
07800 L xtyp,trmtyp(xbase) ;! terminaltype to ac xtyp
07900
08000 maisng: ;! entry point when called from MACRO