.MACRO TERMINALSETUP .PSECT IOSTUFF,LONG IN__: .ASCID "SYS$INPUT:" OUT__: .ASCID "SYS$OUTPUT:" CHI__: .BLKL 1 CHO__: .BLKL 1 STAT__: .BLKQ 1 BCNT__=STAT__+2 PRO__: .ASCII "? " INO__: .BLKW 1 .BYTE 14,2 .ADDRESS INUM__ INUM__: .BLKB 12 INIT__: .BYTE 0 REG10__: .BLKL 1 REG11__: .BLKL 1 EM1__: .BYTE 13,10,7 .ASCII "Error in input" .BYTE 7,13,10 .PSECT .ENDM TERMINALSETUP .MACRO TERMINALIO IOI__: CMPB #0,INIT__ BEQL DOIT__ RSB DOIT__: MOVB #1,INIT__ $ASSIGN_S DEVNAM=IN__, CHAN=CHI__ $ASSIGN_S DEVNAM=OUT__, CHAN=CHO__ RSB READSTR: JSB IOI__ CMPL R11,#0 BLSS NPT__ $QIOW_S CHAN=CHO__, FUNC=#IO$_WRITEVBLK, P1=PRO__, P2=#2 BRB KON__ NPT__: MNEGL R11,R11 KON__: MOVL R11,REG11__ MOVAL REG11__,R11 $QIOW_S CHAN=CHI__, FUNC=#IO$_READVBLK, IOSB=STAT__, P1=(R10),- P2=(R11) MOVZWL BCNT__,R11 RSB WRITESTR: PUSHR #^M JSB IOI__ MOVL R11,REG11__ MOVAL REG11__,R11 $QIOW_S CHAN=CHO__, FUNC=#IO$_WRITEVBLK, P1=(R10), P2=(R11) POPR #^M RSB READNUM: JSB IOI__ $QIOW_S CHAN=CHO__, FUNC=#IO$_WRITEVBLK, P1=PRO__, P2=#2 $QIOW_S CHAN=CHI__, FUNC=#IO$_READVBLK, IOSB=STAT__, P1=INUM__,- P2=#12 MOVW BCNT__,INO__ PUSHAL REG10__ PUSHAL INO__ CALLS #2,G^OTS$CVT_TI_L CMPL R0,#1 BNEQ RNE__ MOVL REG10__,R10 ESC__: RSB RNE__: $QIOW_S CHAN=CHO__, FUNC=#IO$_WRITEVBLK, P1=EM1__, P2=#20 CLRL R10 BRB ESC__ WRITENUM: PUSHR #^M JSB IOI__ MOVL R10,REG10__ MOVW R11,INO__ PUSHAL INO__ PUSHAL REG10__ CALLS #2,G^OTS$CVT_L_TI MOVL R11,REG11__ MOVAL REG11__,R11 $QIOW_S CHAN=CHO__, FUNC=#IO$_WRITEVBLK, P1=INUM__, P2=(R11) POPR #^M RSB .ENDM TERMINALIO