.IIF NDF L$$IST, .NLIST .IIF NDF L$$IST, .DSABL CRF .TITLE TIOPRE COMMON PREFIX FILE .NLIST TTM .LIST TOC,MEB,BEX .ENABL REG,GBL,LC .SBTTL COMMON PREFIX FILE ; LAST EDIT ON 13-MAR-80 BY MARK BRAMHALL .IDENT /V36/ ; GENERAL MACROS .MACRO UNORG .ENDM UNORG .MACRO ORG SECT,OFFSET .MACRO UNORG .LIST BEX .PSECT SECT .ENDM UNORG TMPORG SECT, .ENDM ORG .MACRO DEFORG SECT ORG SECT .DSABL CRF .IIF NE .-SECT, .ERROR ;DEFORG NOT AT BEGINNING OF SECT .GLOBL SECT .ENABL CRF .ENDM DEFORG .MACRO TMPORG SECT,OFFSET .LIST BEX .PSECT SECT .DSABL CRF .IF NDF SECT .ENABL CRF SECT: .DSABL CRF .ENDC ;NDF SECT .ENABL CRF .IF NB . = OFFSET+SECT .ENDC ;NB .ENDM TMPORG .MACRO .DSECT START,CREF .IIF B , .DSABL CRF .IIF DF L$$IST, .DSABL CRF .PSECT ..ABS.,RW,D,LCL,ABS,OVR .IF NDF ..ABS. ..ABS.: .ENDC ;NDF ..ABS. . = 0!..ABS. .IIF DF L$$IST, .ENABL CRF .IIF B , .ENABL CRF .IF NB . = START!..ABS. .ENDC ;NB .ENDM .DSECT .MACRO .BSECT START,CREF .IF IDN , .DSECT 400, .IFF ;IDN , .DSECT 1, .ENDC ;IDN , .ENDM .BSECT .MACRO .EQUATE SYMBOL,VALUE,CREF .DSECT , .LIST SYMBOL: .NLIST .IIF B , .DSABL CRF .IIF DF L$$IST, .DSABL CRF UNORG .IIF DF L$$IST, .ENABL CRF .IIF B , .ENABL CRF .ENDM .EQUATE .MACRO .BLKW0 AMT=1,VALUE=0 .NLIST .REPT AMT .WORD VALUE .ENDR ;AMT .LIST .ENDM .BLKW0 .MACRO .BLKB0 AMT=1,VALUE=0 .NLIST .REPT AMT .BYTE VALUE .ENDR ;AMT .LIST .ENDM .BLKB0 .MACRO CALL SUBR,REG=PC,LIST JSR REG,SUBR .IF NB .WORD LIST .ENDC ;NB .ENDM CALL .MACRO CALLR SUBR JMP SUBR .ENDM CALLR .MACRO CALLX SUBR,REG=PC,LIST CALL @#SUBR,REG, .ENDM CALLX .MACRO CALLRX SUBR CALLR @#SUBR .ENDM CALLRX .MACRO RETURN REG=PC RTS REG .ENDM RETURN .MACRO JMPX LABEL JMP @#LABEL .ENDM JMPX .MACRO .ASSUME ARG1,COND,ARG2 .IF COND - .IFF ;COND - .ERROR ARG1 ;"COND ARG2" FAILS .ENDC ;COND - .ENDM .ASSUME .MACRO .BR ARG .IF NE .- .ERROR ;ROUTINE "ARG" MISPLACED .ENDC ;NE .- .ENDM .BR .MACRO .CALLR ARG .IF NE .- .ERROR ;SUBROUTINE "ARG" MISPLACED .ENDC ;NE .- .ENDM .CALLR ; SPECIFIC MACROS .MACRO SAVREG CALLX SAVREG,R4 .ENDM SAVREG .MACRO ERR CODE,TEXT TMPORG TIOTXT .EVEN .DSABL CRF $$$$$$ = . .ENABL CRF UNORG CALLX ERR,R4,$$$$$$ TMPORG TIOTXT .RAD50 /CODE/ .NLIST BEX .ASCIZ TEXT .LIST BEX UNORG .ENDM ERR .MACRO PRINTS TEXT TMPORG TIOTXT .DSABL CRF $$$$$$ = . .ENABL CRF UNORG CALLX PRINTS,R2,$$$$$$ TMPORG TIOTXT .DSABL CRF .ASSUME . EQ $$$$$$ .NLIST .ASCII TEXT .LIST $$$$$$ = .-$$$$$$ . = .-$$$$$$ .NLIST BEX .ASCII <$$$$$$>TEXT .LIST BEX .ENABL CRF UNORG .ENDM PRINTS ; RT-11 SYSTEM DEFINITIONS (&& => MAGICALLY KNOWN...) .DSECT 40,NOCREF ;JOB CONTROL AREA (40-57) USERPC: .BLKW ;START ADDRESS OF USER PROGRAM USERSP: .BLKW ;USER'S INITIAL STACK JSW: .BLKW ;JOB STATUS WORD USRADR: .BLKW ;USR LOAD ADDRESS USERTOP:.BLKW ;TOP ADDRESS OF USER PROGRAM ERRBYT: .BLKB ;RETURNED ERROR CODE .BLKB ;EXIT ERROR SEVERITY CODE RMON: .BLKW ;POINTER TO RMON FILLCH: .BLKB ;FILL CHARACTER FILLCT: .BLKB ;FILL COUNT .BSECT ,NOCREF ;JSW BIT DEFINITIONS (* => USER CONTROLLABLE) .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;MONITOR INTERNAL .BLKB . ;RESERVED .BLKB . ;RESERVED TCBIT$: .BLKB . ;*REALLY RETURN C-BIT IF NO TERMINAL INPUT .BLKB . ;*ERROR HALT CHAIN$: .BLKB . ;PROGRAM ENTERED VIA CHAIN .BLKB . ;PROGRAM IS OVERLAID VIRT$: .BLKB . ;VIRTUAL IMAGE (SET IN EXECUTABLE FILE) CMDEX$: .BLKB . ;*EXECUTE COMMAND AT 512 UPON EXIT TTSPC$: .BLKB . ;*TERMINAL SPECIAL MODE RENTR$: .BLKB . ;*PROGRAM IS REENTERABLE TTLC$: .BLKB . ;*DO NOT TRANSLATE LC TO UC .BLKB . ;USR SWAPING .DSECT 276,NOCREF ;OFFSETS INTO RMON MONVER: .BLKB ;MONITOR VERSION NUMBER .BLKB ;MONITOR RELEASE LEVEL CONFIG: .BLKW ;CONFIGURATION WORD SCROLL: .BLKW ;&&RESIDENT VT11/VS60 SCROLLER .EQUATE FBMON$, 1,NOCREF ;MONITOR IS FB OR XM IN "CONFIG" .EQUATE VT11HW, 4,NOCREF ;VT11/VS60 HARDWARE AVAILABLE IN "CONFIG" .EQUATE CLK50, 40,NOCREF ;CLOCK IS 50HZ IN "CONFIG" .EQUATE USR$, 1000,NOCREF ;USR MAY NOT BE SET TO SWAP IN "CONFIG" .EQUATE SCMAX, 4,NOCREF ;&&OFFSET IN SCROLLER TO COUNT (FROM "SCROLL") .EQUATE SCLINK, 10,NOCREF ;&&OFFSET IN SCROLLER TO LINK-UP (FROM "SCROLL") .DSECT 354,NOCREF ;MORE OFFSETS INTO RMON GTVECT: .BLKW ;VT11/VS60 VECTOR HOLDER .DSECT 370,NOCREF ;MORE OFFSETS INTO RMON CONFG2: .BLKW ;SECOND CONFIGURATION WORD SYSGEN: .BLKW ;SYSTEM GENERATION WORD USRSIZ: .BLKW ;SIZE OF THE USR IN BYTES .EQUATE SWRHW, 4,NOCREF ;READABLE SWITCH REGISTER HARDWARE IN "CONFG2" .EQUATE VS60HW 1000,NOCREF ;VS60 HARDWARE AVAILABLE IN "CONFG2" .EQUATE MULTI, 20000,NOCREF ;MULTI-TERMINAL CALLS AVAILABLE IN "SYSGEN" .EQUATE HDERR$, 1,NOCREF ;HARDWARE ERROR IN CHANNEL STATUS WORD .EQUATE EOF$, 20000,NOCREF ;END-OF-FILE IN CHANNEL STATUS WORD .EQUATE ACTIV$, 100000,NOCREF ;&&CHANNEL IS ACTIVE IN CHANNEL STATUS WORD .DSECT ,NOCREF ;MULTI-TERMINAL STATUS BLOCK M.TSTS: .BLKW ;CONFIGURATION WORD M.TST2: .BLKW ;RESERVED FOR FUTURE USE M.TFIL: .BLKB ;FILL CHARACTER M.FCNT: .BLKB ;FILL COUNT M.TWID: .BLKB ;CARRIAGE WIDTH M.TSTW: .BLKB ;TERMINAL STATUS .BSECT ,NOCREF ;IN M.TSTS HWTAB$: .BLKB . ;HARDWARE TAB CRLF$: .BLKB . ;WRAP MODE .BLKB . ;HARDWARE FF FBTTY$: .BLKB . ;CTRL/F & CTRL/B ARE NORMAL CHARACTERS TANSI$: .BLKB . ;TERMINAL UNDERSTANDS ANSI ESCAPE SEQUENCES .BLKB . ;RESERVED TCBIT$: .BLKB . ;INHIBIT TERMINAL WAIT (LIKE TCBIT$ IN JSW) PAGE$: .BLKB . ;ENABLE XON/XOFF PROCESSING .BLKB 7400 ;LINE SPEED (A LA DZ11) TTSPC$: .BLKB . ;TERMINAL SPECIAL MODE (LIKE TTSPC$ IN JSW) .BLKB . ;TERMINAL IS REMOTE [READ-ONLY] TTLC$: .BLKB . ;DO NOT TRANSLATE LC TO UC (LIKE TTLC$ IN JSW) VT05$: .BLKB . ;VIDEO TERMINAL ;&&THE EQUIVALENT OF "M.TSTS" IS AVAILABLE AS C(C(30)-2) ; ON NON-MULTI-TERMINAL SYSTEMS ;&&THE EQUIVALENT OF "M.TWID" IS AVAILABLE AS C(C(30)-10) ; ON NON-MULTI-TERMINAL FB/XM SYSTEMS .BSECT ,NOCREF ;IN M.TSTW .BLKB . ;RESERVED .BLKB . ;RESERVED SHARE$: .BLKB . ;TERMINAL IS SHARED CONSOLE .BLKB . ;TERMINAL IS HUNG UP DZ11$: .BLKB . ;TERMINAL INTERFACE IS DZ11 .BLKB . ;RESERVED .BLKB . ;DOUBLE CTRL/C STRUCK CONSL$: .BLKB . ;TERMINAL IS ACTING AS CONSOLE .BSECT HIGH,NOCREF ;ASYNCHRONOUS TERMINAL STATUS .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED AS.OUT: .BLKB . ;OUTPUT BUFFER EMPTY AS.INP: .BLKB . ;INPUT IS AVAILABLE AS.CTC: .BLKB . ;DOUBLE CTRL/C STRUCK ; TECOIO SPECIFIC DEFINITIONS .DSECT ,NOCREF ;I/O PARAMETER BLOCK DEFINITIONS FG: .BLKB ;FLAGS NC: .BLKB ;PRE-FETCHED NEXT CHARACTER FN: .BLKW 4 ;SAVED FILE NAME (DEV:FILNAM.TYP) SZ: .BLKW ;UNSIGNED [MAXIMUM] SIZE OF FILE (0=>CLOSED) CC: .BLKW ;CURRENT COUNT CP: .BLKW ;CURRENT POINTER CH: .BLKB ;CHANNEL NUMBER ! FOR I/O CD: .BLKB ;READ CODE(10) OR WRITE CODE(11) ! BK: .BLKW ;BLOCK NUMBER ! RP: .BLKW ;RESET POINTER (BUFFER START) ! WC: .BLKW ;WORD COUNT(256.) ! CJ: .BLKW ;WAIT FOR COMPLETION(0) ! PARMSZ: ;PARAMETER SIZE IN BYTES .BSECT ,NOCREF ;IN FG ATEOF: .BLKB . ;FILE IS CURRENTLY AT END-OF-FILE .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED .BLKB . ;RESERVED DOEB: .BLKB . ;DO "EB" RENAMING ON OUTPUT FILE CLOSE ; TECOIO STATIC AREA DEFINITIONS .EQUATE PDLSIZ, 130.,NOCREF ;PDL SIZE .EQUATE SCHSIZ, 40.,NOCREF ;SEARCH BUFFER SIZE .EQUATE FILSIZ, 40.,NOCREF ;FILENAME BUFFER SIZE .EQUATE TAGSIZ, 40.,NOCREF ;TAG BUFFER SIZE .DSECT -+1+1+2>,NOCREF PDLSRT: .BLKB PDLSIZ ;PDL AREA SCHSRT: .BLKB SCHSIZ ;SEARCH BUFFER AREA FILSRT: .BLKB FILSIZ ;FILENAME BUFFER AREA TAGSRT: .BLKB TAGSIZ ;TAG BUFFER AREA CMDPRM: .BLKB PARMSZ ;INDIRECT COMMAND PARAMETERS INPNOR: .BLKB PARMSZ ;NORMAL INPUT PARAMETERS INPALT: .BLKB PARMSZ ;ALTERNATE INPUT PARAMETERS OUPNOR: .BLKB PARMSZ ;NORMAL OUTPUT PARAMETERS OUPALT: .BLKB PARMSZ ;ALTERNATE OUTPUT PARAMETERS LSTCHR: .BLKB ;LAST CHARACTER TYPED CTXFLG: .BLKB ;COUNT OF DOUBLE CONTROL/C'S SPSAVE: .BLKW ;SAVED SP VALUE FOR ERROR RECOVERY ;START OF "TECO"S R5 AREA .ASSUME . EQ 0 ; ASCII DEFINITIONS .EQUATE BEL, 7,NOCREF ;BELL .EQUATE BS, 10,NOCREF ;BACKSPACE .EQUATE TAB, 11,NOCREF ;HORIZONTAL TAB .EQUATE LF, 12,NOCREF ;LINE FEED .EQUATE VT, 13,NOCREF ;VERTICAL TAB .EQUATE FF, 14,NOCREF ;FORM FEED .EQUATE CR, 15,NOCREF ;CARRIAGE RETURN .EQUATE ESC, 33,NOCREF ;ESCAPE .EQUATE SPACE, 40,NOCREF ;SPACE .EQUATE DEL, 177,NOCREF ;DELETE ; USE RT-11 V2 FORMAT MONTIOR CALLS .MCALL ..V2.. ..V2.. ; .PSECT ORDERING AND DEFINITIONS .PSECT TECOIO,RO,I,LCL,REL,CON .PSECT TIOTXT,RO,D,LCL,REL,CON .IIF NDF L$$IST, .ENABL CRF .IIF NDF L$$IST, .LIST