home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d7xx / d743 / turbodex.lha / TurboDEX / PDexamples / PrintDoc.dex next >
Text File  |  1992-10-11  |  3KB  |  83 lines

  1. PROC main(ARG)
  2.     DEF parhandle:LONG
  3.     LOCAL filehandle:LONG, buffer:LONG, bytesread:LONG, counter:INT, cc:CHAR
  4.     LOCAL c:LONG
  5.     ' parhandle is needed in 'umlaut' so I define it as global
  6.     IF argl=1
  7.         'then no argument has been passed => give description
  8.         WRITE '\e[41m\e[30mPrintDoc V1.0\e[0m written in 1992 by Maik Schulz\n'
  9.         WRITE 'Usage: PrintDoc <ASCII-file>\n\n'
  10.     ELSE
  11.         'null-terminate <argument> to use it as filename
  12.         MCHAR argadr+argl-1,0
  13.         'open <argument> as readfile
  14.         filehandle := Open(argadr,1005)
  15.         IF filehandle?0
  16.             'open PAR: as output with 'a' 'as a dummy-filename
  17.             parhandle := Open('PAR:a',1006)
  18.             IF parhandle?0
  19.                 buffer := AllocMem(1024,$10001)
  20.                 IF buffer?0
  21.                     VOID Write(parhandle,{setusa},3)
  22.                     REPEAT
  23.                         bytesread := Read(filehandle,buffer,1024)
  24.                         FOR counter,1,bytesread
  25.                             c := buffer+counter-1
  26.                             cc := MCHAR(c)
  27.                             IF cc="ä"
  28.                                 MCHAR c,"{"
  29.                                 VOID umlaut(c)
  30.                             ELSEIF cc="ö"
  31.                                 MCHAR c,"|"
  32.                                 VOID umlaut(c)
  33.                             ELSEIF cc="ü"
  34.                                 MCHAR c,"}"
  35.                                 VOID umlaut(c)
  36.                             ELSEIF cc="ß"
  37.                                 MCHAR c,"~"
  38.                                 VOID umlaut(c)
  39.                             ELSEIF cc="Ä"
  40.                                 MCHAR c,"["
  41.                                 VOID umlaut(c)
  42.                             ELSEIF cc="Ö"
  43.                                 MCHAR c,"\"
  44.                                 VOID umlaut(c)
  45.                             ELSEIF cc="Ü"
  46.                                 MCHAR c,"]"
  47.                                 VOID umlaut(c)
  48.                             ELSE
  49.                                 ' no umlaut
  50.                                 VOID Write(parhandle,c,1)
  51.                             ENDIF
  52.                         ENDFOR
  53.                     UNTIL bytesread<1024
  54.                     VOID FreeMem(buffer,1024)
  55.                 ELSE
  56.                     WRITE 'Couldn\at allocate mem for buffer\n'
  57.                 ENDIF
  58.                 VOID Close(parhandle)
  59.             ELSE
  60.                 WRITE 'Couldn\at open "PAR:"\n'
  61.             ENDIF
  62.             VOID Close(filehandle)
  63.         ELSE
  64.             WRITE 'Couldn\at open "\s"\n',argadr
  65.         ENDIF
  66.     ENDIF
  67.     'printer-commands for setting usa or german keymap
  68.     STRUCT setusa
  69.         CHAR 27,82,0
  70.     ENDSTRUCT
  71.     STRUCT setgerman
  72.         CHAR 27,82,2
  73.     ENDSTRUCT
  74. ENDPROC
  75.  
  76. PROC umlaut(umlaut)
  77.     LOCAL umlaut:LONG
  78.     VOID Write(parhandle,{setgerman},3)
  79.     VOID Write(parhandle,umlaut,1)
  80.     VOID Write(parhandle,{setusa},3)
  81. ENDPROC
  82.  
  83.