RMPVIO ; OIT/JDA - SCAMP runtime support; Nov 17, 2024@23:35:37
;;1.0;PROSTHETICS VISION 4 SIGHT II;**2**;Jan 31, 2025;Build 38
;
Q
WRITECTL(ARG) ; Write control characters, like 'W !' or 'W $2'
;;;W @ARG
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D WRITECTL^RMPVDRV(LOC,.ARG)
Q
WRITEIND(ARG) ; Write indirect arg, like 'W @VAR'
;;;W @ARG
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D WRITEIND^RMPVDRV(LOC,.ARG)
Q
WRITE(ARG) ; Write regular, like 'W "prompt"' or 'W VAR'
;;;W ARG
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D WRITE^RMPVDRV(LOC,.ARG)
Q
READCTL(ARG) ; Read control characters, like 'R !'
;;;R @ARG
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D READCTL^RMPVDRV(LOC,.ARG)
Q
READIND(ARG) ; Write indirect arg, like 'R @VAR'
; untested
;N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
;S VAL=ARG F Q:$E(VAL)'="@" S VAL=@$E(VAL,2,*) ; Find the actual target
;D READIND^RMPVDRV(LOC,.VAL)
D READIND^RMPVDRV(LOC,.ARG)
Q
READPMT(ARG) ; Read statements, like 'R "prompt:"'
;;; R @ARG
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D READPMT^RMPVDRV(LOC,.ARG)
Q
READ(ARG) ; Read regular argument, like 'R INPUTVAR'
N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
D READ^RMPVDRV(LOC,.ARG)
Q
REALNAME(WHERE) ; find original eref
N SPEC S SPEC("RMPV0")=""
Q $$REPLACE^XLFSTR(WHERE,.SPEC)
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPVIO 1449 printed May 25, 2026@12:51:04 Page 2
RMPVIO ; OIT/JDA - SCAMP runtime support; Nov 17, 2024@23:35:37
+1 ;;1.0;PROSTHETICS VISION 4 SIGHT II;**2**;Jan 31, 2025;Build 38
+2 ;
+3 QUIT
WRITECTL(ARG) ; Write control characters, like 'W !' or 'W $2'
+1 ;;;W @ARG
+2 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+3 DO WRITECTL^RMPVDRV(LOC,.ARG)
+4 QUIT
WRITEIND(ARG) ; Write indirect arg, like 'W @VAR'
+1 ;;;W @ARG
+2 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+3 DO WRITEIND^RMPVDRV(LOC,.ARG)
+4 QUIT
WRITE(ARG) ; Write regular, like 'W "prompt"' or 'W VAR'
+1 ;;;W ARG
+2 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+3 DO WRITE^RMPVDRV(LOC,.ARG)
+4 QUIT
READCTL(ARG) ; Read control characters, like 'R !'
+1 ;;;R @ARG
+2 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+3 DO READCTL^RMPVDRV(LOC,.ARG)
+4 QUIT
READIND(ARG) ; Write indirect arg, like 'R @VAR'
+1 ; untested
+2 ;N LOC S LOC=$$REALNAME($P($STACK($STACK-1,"PLACE")," "))
+3 ;S VAL=ARG F Q:$E(VAL)'="@" S VAL=@$E(VAL,2,*) ; Find the actual target
+4 ;D READIND^RMPVDRV(LOC,.VAL)
+5 DO READIND^RMPVDRV(LOC,.ARG)
+6 QUIT
READPMT(ARG) ; Read statements, like 'R "prompt:"'
+1 ;;; R @ARG
+2 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+3 DO READPMT^RMPVDRV(LOC,.ARG)
+4 QUIT
READ(ARG) ; Read regular argument, like 'R INPUTVAR'
+1 NEW LOC
SET LOC=$$REALNAME($PIECE($STACK($STACK-1,"PLACE")," "))
+2 DO READ^RMPVDRV(LOC,.ARG)
+3 QUIT
REALNAME(WHERE) ; find original eref
+1 NEW SPEC
SET SPEC("RMPV0")=""
+2 QUIT $$REPLACE^XLFSTR(WHERE,.SPEC)