home *** CD-ROM | disk | FTP | other *** search
-
- ;INCLUDE <formula$dir>.function_h
-
- ;DECLARE CHAR R2[]
-
- ;FUNCTION VOID printf(CHARPTR string,...)
-
- ;LET R1=&string-4
- ;LET R2=string
- ;FOR R0=0;R0<strlen(string);R0=R0+1
- ;IF R2[R0]=='%'
- ;IF R2[R0+1]=='c'
- ;LET putc(*R1)
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='d'
- ;LET writeint(*R1)
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='h'
- ;LET writeinthex(*R1)
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='s'
- ;LET writestr(*R1)
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='%'
- ;LET putc('%')
- ;ENDIF
- ;LET R0=R0+1
- ;ELSEIF R2[R0]=='\'
- ;IF R2[R0+1]=='n'
- ;LET cr()
- ;ELSEIF R2[R0+1]=='\'
- ;LET putc('\')
- ;ENDIF
- ;LET R0=R0+1
- ;ELSE
- ;LET putc(R2[R0])
- ;ENDIF
- ;ENDFOR
-
- ;ENDFUNCTION
-
- ;FUNCTION VOID readfstr(CHARPTR buffer,INT maxlen)
-
- ;FOR R0=0;R0<maxlen;R0=R0+1
- ;LET R1=getc()
- ;IF R1==13
- goto \raus
- ;ENDIF
- ;LET putc(R1)
- ;LET buffer[R0]=R1
- ;ENDFOR
- ;LET buffer[R0+1]=0
- \raus
- ;ENDFUNCTION
-
- ;FUNCTION VOID inputf(CHARPTR string,...)
-
- ;CHAR hexstring[20]
-
- ;LET R1=&string-4
- ;LET R2=string
- ;FOR R0=0;R0<strlen(string);R0=R0+1
- ;IF R2[R0]=='%'
- ;IF R2[R0+1]=='c'
- ;LET R3=getc()
- ;LET putc(R3)
- ;LET *(CHARPTR)*R1=R3
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='d'
- ;LET readfstr(hexstring,19)
- ;LET **R1=string2int(hexstring);
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='h'
- ;LET hexstring[0]='&'
- ;LET readfstr(hexstring+1,11)
- ;LET **R1=string2int(hexstring);
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='s'
- ;LET readfstr(*R1,0x7FFFFFFF)
- ;LET R1=R1-4
- ;ELSEIF R2[R0+1]=='%'
- ;LET putc('%')
- ;ENDIF
- ;LET R0=R0+1
- ;ELSEIF R2[R0]=='\'
- ;IF R2[R0+1]=='n'
- ;LET cr()
- ;LET R0=R0+1
- ;ELSEIF R2[R0+1]=='\'
- ;LET putc('\')
- ;LET R0=R0+1
- ;ENDIF
- ;ELSE
- ;LET putc(R2[R0])
- ;ENDIF
- ;ENDFOR
-
- ;ENDFUNCTION
-
-