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 >
Wrap
Text File
|
1992-10-11
|
3KB
|
83 lines
PROC main(ARG)
DEF parhandle:LONG
LOCAL filehandle:LONG, buffer:LONG, bytesread:LONG, counter:INT, cc:CHAR
LOCAL c:LONG
' parhandle is needed in 'umlaut' so I define it as global
IF argl=1
'then no argument has been passed => give description
WRITE '\e[41m\e[30mPrintDoc V1.0\e[0m written in 1992 by Maik Schulz\n'
WRITE 'Usage: PrintDoc <ASCII-file>\n\n'
ELSE
'null-terminate <argument> to use it as filename
MCHAR argadr+argl-1,0
'open <argument> as readfile
filehandle := Open(argadr,1005)
IF filehandle?0
'open PAR: as output with 'a' 'as a dummy-filename
parhandle := Open('PAR:a',1006)
IF parhandle?0
buffer := AllocMem(1024,$10001)
IF buffer?0
VOID Write(parhandle,{setusa},3)
REPEAT
bytesread := Read(filehandle,buffer,1024)
FOR counter,1,bytesread
c := buffer+counter-1
cc := MCHAR(c)
IF cc="ä"
MCHAR c,"{"
VOID umlaut(c)
ELSEIF cc="ö"
MCHAR c,"|"
VOID umlaut(c)
ELSEIF cc="ü"
MCHAR c,"}"
VOID umlaut(c)
ELSEIF cc="ß"
MCHAR c,"~"
VOID umlaut(c)
ELSEIF cc="Ä"
MCHAR c,"["
VOID umlaut(c)
ELSEIF cc="Ö"
MCHAR c,"\"
VOID umlaut(c)
ELSEIF cc="Ü"
MCHAR c,"]"
VOID umlaut(c)
ELSE
' no umlaut
VOID Write(parhandle,c,1)
ENDIF
ENDFOR
UNTIL bytesread<1024
VOID FreeMem(buffer,1024)
ELSE
WRITE 'Couldn\at allocate mem for buffer\n'
ENDIF
VOID Close(parhandle)
ELSE
WRITE 'Couldn\at open "PAR:"\n'
ENDIF
VOID Close(filehandle)
ELSE
WRITE 'Couldn\at open "\s"\n',argadr
ENDIF
ENDIF
'printer-commands for setting usa or german keymap
STRUCT setusa
CHAR 27,82,0
ENDSTRUCT
STRUCT setgerman
CHAR 27,82,2
ENDSTRUCT
ENDPROC
PROC umlaut(umlaut)
LOCAL umlaut:LONG
VOID Write(parhandle,{setgerman},3)
VOID Write(parhandle,umlaut,1)
VOID Write(parhandle,{setusa},3)
ENDPROC