diff --git a/src/syseng/dump.448 b/src/syseng/dump.448 index dfb85ceb..663308c2 100644 --- a/src/syseng/dump.448 +++ b/src/syseng/dump.448 @@ -195,7 +195,8 @@ MFDIN: -1 ;-1 FIRST TIME THRU M.F.D. (NEED TO OPEN M.F.D.) ITAPE: -1 ;-1 IF JUST REWOUND (NEED TO READ/WRITE TAPE-HEADER) TAPTYP: 0 ;1 LOCAL, -1 REMOTE, -2 REMOTE AND MOUNTED, 0 NOT DECIDED YET TAPHST: BLOCK 2 ;ASCIZ HOST FOR REMOTE TAPE -TAPDRV: BLOCK 2 ;ASCIZ DRIVE NAME +DRVLEN==49 +TAPDRV: BLOCK /5 ;ASCIZ DRIVE NAME TAPDIR: BLOCK 2 ;ASCIZ READ, WRITE, OR BOTH RMTUSR: BLOCK 2 ;ASCIZ REMOTE USER NAME RMTPSW: BLOCK 2 ;ASCIZ REMOTE PASSWORD @@ -5362,7 +5363,58 @@ CHECK2: PUSHJ P,TYI PUSHJ P,CRR POP P,LPTSW POPJ P, + +;Get ASCIZ string from user. Max string length in A, byte pointer in B. +GETSTR: PUSH P,A + PUSH P,B + PUSH P,C +GETST0: .IOT TYIC,C + JUMPL C,GETST1 + CAIE C,^C ;Reset string. + CAIN C,^G + JRST [PUSHJ P,RUB1 ? MOVE A,-2(P) ? MOVE B,-1(P) ? JRST GETST0] + CAIN C,177 + JRST GETST9 ;Rubout. + CAIE C,15 + CAIN C,33 + JRST GETST1 ;Enter or Altmode to finish. + IDPB C,B + SOJG A,GETST0 +GETST1: MOVEI C,0 + IDPB C,B + MOVEI C,15 + .IOT TYOC,C + MOVEI C,12 + .IOT TYOC,C + POP P,C + POP P,B + POP P,A + POPJ P, +GETST9: CAML A,-2(P) + JRST GETST0 + AOS A + MOVEI C,0 + DPB C,B + ADD B,[70000,,] + JUMPL B,[ADD B,[347777,,777777] ? JRST .+1] + .CALL [ SETZ ? 'CNSGET ? MOVEI TYOC + REPEAT 4,[ MOVEM C ? ] SETZM C ] ;GET TTYOPT + MOVEI C,0 + TLNE C,%TOOVR + TLNE C,%TOERS + JRST [ MOVEI C,^P + .IOT TYOC,C + MOVEI C,"X + .IOT TYOC,C + JRST GETST0 ] + PUSH P,C + MOVEI C,"\ + .IOT TYOC,C + POP P,C + .IOT TYOC,C + JRST GETST0 + ;Show who used tape drive last. Put this on .TAPE0. That's ok, ;since FIND ignores files that aren't "TAPE XXX." SETITN: .suset [.runame,,a] @@ -5423,13 +5475,10 @@ SETIT2: PUSHJ P,RTAPE"RDRST ;Reset read and write buffers, stop readahead PRINT TAPE SERVER HOST= PUSHJ P,GETSYL JRST ERR - PUSH P,SYM PRINT DRIVE= - PUSHJ P,GETSYL - JRST ERR + MOVEI A,DRVLEN MOVE B,[440700,,TAPDRV] - PUSHJ P,SIXTO7 - POP P,SYM + PUSHJ P,GETSTR MOVE B,[440700,,TAPHST] PUSHJ P,SIXTO7 PRINT [READ-ONLY? ] ;HT server insists