Trailing-Edge
-
PDP-10 Archives
-
decuslib20-04
-
decus/20-0135/05/vdccin.mac
There are 2 other files named vdccin.mac in the archive. Click here to see a list.
00100 COMMENT * VDCCIN, SIMULA specification;
00200 OPTIONS(/E:QUICK,VDCCIN);
00300 PROCEDURE VDCCIN;
00400 COMMENT
00500 Save settings of FORM, PAGE, BLANKS and TABS. Set up for ^C interrupt
00600 to reset to initial settings, but revert to current settings if
00700 continued.
00800 Also contains, at VDCC.O, code for VDCCOUT, which restores TRMOP
00900 settings and disables ^C interrupt. VDCC.O is referred from
01000 VDCCOU.MAC, q.v.
01100 ;
01200
01300 !*;! MACRO-10 code !*;!
01400
01500 TITLE VDCCIN
01600 ENTRY VDCCIN, VDCC.O
01700 SUBTTL SIMULA utility, Lars Enderin Feb 1979
01800
01900 ;!*** Copyright 1979 by the Swedish Defence Research Institute. ***
02000 ;!*** Copying is allowed. ***
02100
02200
02300 sall
02400 search simmac,simmcr,simrpa
02500 macinit
02600 EXTERN .VDCCI ;! Data area
02700
02800 ;! Local definitions ;!
02900
03000 DEFINE TRMOP(CODE) ;! Read value (CODE = 1xxx)<
03100 < LI CODE
03200 ST FCD(X2)
03300 LI FCD(X2)
03400 HRLI 3
03500 TRMOP.
03600 GOTO [OUTSTR [ASCIZ/
03700 ?VDCCIN TRMOP error
03800 /]
03900 RET]
04000 >
04100
04200 DEFINE TRMOPW(CODE) ;! Change value from X0. (CODE = 1xxx)
04300 < ST VAL(X2)
04400 LI 1000+CODE
04500 ST FCD(X2)
04600 LI FCD(X2)
04700 HRLI 3
04800 TRMOP.
04900
05000 GOTO [OUTSTR [ASCIZ/
05100 ?VDCCIN TRMOP error
05200 /]
05300 RET]
05400 >
05500
05600 ;! Structure of data area
05700
05800 SV==0 ;! Saved flags
05900 CIN==SV+1 ;! ^C interrupt block
06000 PCI==CIN+.EROPC ;! PC of interrupt stored at this offset
06100 DF reason,CIN+.ERCCL,18,17 ;! Interrupt error flag
06200 FCD==CIN+4 ;! Function code for TRMOP.
06300 UDX==FCD+1 ;! Universal device index for terminal
06400 VAL==FCD+2 ;! Value for TRMOP.
06500
06600 ;! Fields for TRMOP values
06700
06800 DF FORM,0,2,2
06900 DF PAGE,0,2,4
07000 DF TABS,0,2,6
07100 DF BLANKS,0,2,8
07200
07300 XRET==X6