home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_BAS / PRO98SRC.ZIP / FILE.CMD < prev    next >
OS/2 REXX Batch file  |  1994-01-29  |  4KB  |  179 lines

  1. 'file commands
  2. 'MAP RM TO 100, 10 AS ALF, 10 AS BET, 10 AS FOO
  3. GOTO EXITSELECT
  4. PtrMAP:'        CASE "MAP"
  5.         VM$=LITERAL$(ArgPtr%):X$=POPARG$ ' map var name
  6.         L%=VAL(POPARG$) ' length
  7.         VSET2 VM$,STRING$(L%,0)
  8.         O%=1 ' offset from start
  9.         ' assign values to variables which are four byte descriptors,
  10.         ' an offset from the map var start plus the length of the
  11.         ' field.
  12.         DO UNTIL ArgPtr%=0
  13.             L%=VAL(POPARG$) 'substr len
  14.                 V$=LITERAL$(ArgPtr%):X$=POPARG$ ' substr var name
  15.                 VSET2 V$+"$"+VM$,MKI$(O%)+MKI$(L%)
  16.                 O%=O%+L%
  17.         LOOP
  18.  
  19. ' OPEN mode,buffer,filename
  20. GOTO EXITSELECT
  21. PtrOPEN:'       CASE "OPEN"
  22.         M$=UCASE$(POPARG$) 'mode
  23.         V$=LITERAL$(ArgPtr%) ' buffer
  24.         FF=FREEFILE
  25.         VSET2 V$, STR$(FF)
  26.         Dummy$=POPARG$
  27.         FI$=POPARG$
  28.         IF M$="R" THEN
  29.              L=VAL(POPARG$)
  30.              OPEN FI$ FOR RANDOM SHARED AS FF LEN=L
  31.         ELSE
  32.              OPEN M$,FF,FI$
  33.         END IF
  34.  
  35. GOTO EXITSELECT
  36. PtrCLOSE:'      CASE "CLOSE"
  37.         VAR$=LITERAL$(ArgPtr%)
  38.     CLOSE VAL(POPARG$)
  39.         VCLEAR VAR$
  40.  
  41. GOTO EXITSELECT
  42. PtrEOF:'        CASE "EOF"
  43.     PUSHARG STR$(EOF(VAL(POPARG$)))
  44.  
  45. GOTO EXITSELECT
  46. PtrLOF:'        CASE "LOF"
  47.     PUSHARG STR$(LOF(VAL(POPARG$)))
  48.  
  49. GOTO EXITSELECT
  50. PtrREAD:'       CASE "READ"
  51.     IF Allness% THEN
  52.          Buf=VAL(POPARG$)
  53.          LINE INPUT #Buf, A$
  54.          VSET2 LITERAL$(ArgPtr%),A$
  55.          Allness%=0
  56.         ELSE
  57.          Buf=VAL(POPARG$)
  58.          DO
  59.           INPUT #Buf, A$
  60.           VSET2 LITERAL$(ArgPtr%),A$
  61.           DUMMY$=POPARG$
  62.          LOOP UNTIL ArgPtr%<1
  63.         END IF
  64. GOTO EXITSELECT
  65. PtrALL:'        CASE "ALL"
  66.     Allness%=%TRUE
  67. GOTO EXITSELECT
  68. PtrWRITE:'      CASE "WRITE"
  69.         P=VAL(POPARG$)
  70.         DO
  71.         P$=POPARG$
  72.         IF INSTR(P$,"<") AND INSTR(P$,">") THEN TRANSLATE P$
  73.         IF INSTR(P$,"@") AND INSTR(P$,"(") AND INSTR(P$,")") THEN FUNCTIONS P$
  74.         IF INSTR(P$,"^") THEN SYMBOLS P$
  75.         PRINT #P, P$;
  76.         LOOP UNTIL ArgPtr%<1
  77. GOTO EXITSELECT
  78. PtrDEL:'        CASE "DEL"
  79.     F$=POPARG$
  80.         IF DIR$(F$)<>"" THEN
  81.                 DO
  82.             KILL F$
  83.                 F$=DIR$
  84.                 LOOP WHILE LEN(F$)
  85.         END IF
  86. GOTO EXITSELECT
  87. PtrREN:'        "RENAME"        CASE "REN","RENAME"
  88.     F$=POPARG$
  89.         IF DIR$(F$)<>"" THEN NAME F$ AS POPARG$
  90.  
  91. GOTO EXITSELECT
  92. PtrPUTFILE:'    CASE "PUTFILE"
  93.         Buf=FREEFILE
  94.     OPEN POPARG$ FOR APPEND AS #buf
  95.         WHILE ArgPtr%>0
  96.             PRINT #buf, POPARG$;
  97.         WEND
  98.         CLOSE Buf
  99. GOTO EXITSELECT
  100. PtrMORE:'       CASE "MORE"
  101.     more=val(poparg$)
  102.  
  103. GOTO EXITSELECT
  104. PtrTYPE:'       CASE "TYPE"
  105. LET TypeBuffer = FREEFILE: LET lns = 0
  106. Prg$=POPARG$
  107. IF INSTR(Prg$,".") = 0 THEN Prg$ = Prg$ +".TYP"
  108.  
  109. CALL EXIST(Prg$ + CHR$(0), x%)
  110. IF x% THEN
  111. OPEN Prg$ FOR INPUT SHARED AS #TypeBuffer
  112. typing% = 0
  113. DO WHILE NOT EOF(TypeBuffer)
  114. LINE INPUT #TypeBuffer, A$
  115. IF LEFT$(LTRIM$(A$), 1) <>"$" THEN PROZOPRINT A$+CrLf$: lns = lns + 1:  ELSE CALL PROZOL(MID$(LTRIM$(A$), 2))
  116. ''CALL GetaKey
  117. 'IF Value$ = CHR$(3) THEN EXIT DO
  118.  
  119. IF more THEN
  120.     IF lns >= more THEN
  121.     lns = 0
  122.         PROZOPRINT"- more -"
  123.     CWAIT
  124.         PROZOPRINT STRING$(8, 8)
  125.     END IF
  126. END IF
  127.  
  128.  
  129. IF typing% THEN EXIT DO
  130. LOOP
  131. CLOSE #TypeBuffer
  132. ELSE
  133. CALL PROZOPRINT(CrLf$ + CHR$(7) + Prg$ +" not found." + CrLf$)
  134. END IF
  135.  
  136. GOTO EXITSELECT
  137. PtrDISPLAY:'    CASE "DISPLAY"
  138. LET TypeBuffer = FREEFILE: LET lns = 0
  139. Prg$=POPARG$
  140. IF INSTR(Prg$,".") = 0 THEN Prg$ = Prg$ +".TXT"
  141.  
  142. x%=LEN(DIR$(Prg$))
  143. IF x% THEN
  144. OPEN Prg$ FOR INPUT SHARED AS #TypeBuffer
  145. typing% = 0
  146. DO WHILE NOT EOF(TypeBuffer)
  147. LINE INPUT #TypeBuffer, A$
  148. PROZOPRINT A$+CrLf$
  149. incr lns
  150. A$=PROZOINKEY$
  151. IF A$=CHR$(27) THEN EXIT DO
  152.  
  153. IF more THEN
  154.     IF lns >= more THEN
  155.     lns = 0
  156.         PROZOPRINT "[S]top, [N]on-stop, or [ENTER] for more..."
  157.         A$=UCASE$(PROZOINPUT$)
  158.         IF A$="S" THEN EXIT DO
  159.         IF A$="N" THEN more=0
  160.         IF GoFlag% THEN GoFlag%=0: EXIT DO
  161.         PROZOPRINT STRING$(42, 8)+SPACE$(42)+STRING$(42,8)
  162.     END IF
  163. END IF
  164.  
  165. LOOP
  166. CLOSE #TypeBuffer
  167. ELSE
  168. CALL PROZOPRINT(CrLf$ + CHR$(7) + Prg$ +" not found." + CrLf$)
  169. END IF
  170.  
  171. GOTO EXITSELECT
  172. PtrENDTYPE:'    CASE "ENDTYPE"
  173. LET typing% = 1
  174.  
  175. GOTO EXITSELECT
  176. PtrPCBTYPE:'    CASE "PCBTYPE"
  177.     PCBTYPE POPARG$,POPARG$,RESPONSE$
  178.         PUSHARG RESPONSE$
  179.