home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / formula / !formula08 / func_form < prev    next >
Encoding:
Text File  |  1992-12-09  |  2.2 KB  |  100 lines

  1.  
  2. ;INCLUDE <formula$dir>.function_h
  3.  
  4. ;DECLARE CHAR R2[]
  5.  
  6. ;FUNCTION VOID printf(CHARPTR string,...)
  7.  
  8.    ;LET R1=&string-4
  9.    ;LET R2=string
  10.    ;FOR R0=0;R0<strlen(string);R0=R0+1
  11.       ;IF R2[R0]=='%'
  12.          ;IF R2[R0+1]=='c'
  13.             ;LET putc(*R1)
  14.             ;LET R1=R1-4
  15.          ;ELSEIF R2[R0+1]=='d'
  16.             ;LET writeint(*R1)
  17.             ;LET R1=R1-4
  18.          ;ELSEIF R2[R0+1]=='h'
  19.             ;LET writeinthex(*R1)
  20.             ;LET R1=R1-4
  21.          ;ELSEIF R2[R0+1]=='s'
  22.             ;LET writestr(*R1)
  23.             ;LET R1=R1-4
  24.          ;ELSEIF R2[R0+1]=='%'
  25.             ;LET putc('%')
  26.          ;ENDIF
  27.          ;LET R0=R0+1
  28.       ;ELSEIF R2[R0]=='\'
  29.             ;IF R2[R0+1]=='n'
  30.                ;LET cr()
  31.             ;ELSEIF R2[R0+1]=='\'
  32.                ;LET putc('\')
  33.             ;ENDIF
  34.          ;LET R0=R0+1
  35.       ;ELSE
  36.          ;LET putc(R2[R0])
  37.       ;ENDIF
  38.    ;ENDFOR
  39.  
  40. ;ENDFUNCTION   
  41.  
  42. ;FUNCTION VOID readfstr(CHARPTR buffer,INT maxlen)
  43.  
  44.    ;FOR R0=0;R0<maxlen;R0=R0+1
  45.       ;LET R1=getc()
  46.       ;IF R1==13
  47.          goto \raus
  48.       ;ENDIF
  49.       ;LET putc(R1)
  50.       ;LET buffer[R0]=R1
  51.    ;ENDFOR
  52.    ;LET buffer[R0+1]=0
  53. \raus
  54. ;ENDFUNCTION
  55.  
  56. ;FUNCTION VOID inputf(CHARPTR string,...)
  57.  
  58. ;CHAR hexstring[20]
  59.  
  60.    ;LET R1=&string-4
  61.    ;LET R2=string
  62.    ;FOR R0=0;R0<strlen(string);R0=R0+1
  63.       ;IF R2[R0]=='%'
  64.          ;IF R2[R0+1]=='c'
  65.             ;LET R3=getc()
  66.             ;LET putc(R3)
  67.             ;LET *(CHARPTR)*R1=R3
  68.             ;LET R1=R1-4
  69.          ;ELSEIF R2[R0+1]=='d'
  70.             ;LET readfstr(hexstring,19)
  71.             ;LET **R1=string2int(hexstring);
  72.             ;LET R1=R1-4
  73.          ;ELSEIF R2[R0+1]=='h'
  74.             ;LET hexstring[0]='&'
  75.             ;LET readfstr(hexstring+1,11)
  76.             ;LET **R1=string2int(hexstring);
  77.             ;LET R1=R1-4
  78.          ;ELSEIF R2[R0+1]=='s'
  79.             ;LET readfstr(*R1,0x7FFFFFFF)
  80.             ;LET R1=R1-4
  81.          ;ELSEIF R2[R0+1]=='%'
  82.             ;LET putc('%')
  83.          ;ENDIF
  84.          ;LET R0=R0+1
  85.       ;ELSEIF R2[R0]=='\'
  86.          ;IF R2[R0+1]=='n'
  87.             ;LET cr()
  88.             ;LET R0=R0+1
  89.          ;ELSEIF R2[R0+1]=='\'
  90.             ;LET putc('\')
  91.             ;LET R0=R0+1
  92.          ;ENDIF
  93.       ;ELSE
  94.          ;LET putc(R2[R0])
  95.       ;ENDIF
  96.    ;ENDFOR
  97.  
  98. ;ENDFUNCTION   
  99.  
  100.