argc IS $0 argv IS $1 s IS $2 temp IS $3 QFile IS 3 Kanal der Quelldatei ZFile IS 4 Kanal der Zieldatei Buf_Size IS 256 LOC Data_Segment Buffer LOC @+Buf_Size GREG @ Arg0 OCTA 0,BinaryRead Arg. z. "Offnen der Quelldatei Arg1 OCTA 0,BinaryWrite Arg. z. "Offnen der Zieldatei Arg2 OCTA Buffer,Buf_Size LOC #100 Main CMP temp,argc,3 wir brauchen 2 Argumente PBZ temp,Open GETA $255,1F Fehlermeldung ausgeben TRAP 0,Fputs,StdErr LDOU $255,argv,0 TRAP 0,Fputs,StdErr GETA $255,2F Quit TRAP 0,Fputs,StdErr TRAP 0,Halt,0 1H BYTE "Usage: ",0 LOC (@+3)&-4 an Tetra-Grenze ausrichten 2H BYTE " Quelldatei Zieldatei",#A,0 Open LDOU s,argv,8 STOU s,Arg0 LDA $255,Arg0 TRAP 0,Fopen,QFile Quelldatei "offnen BN $255,Fehler OpenZ LDOU s,argv,16 STOU s,Arg1 LDA $255,Arg1 TRAP 0,Fopen,ZFile Zieldatei "offnen PBNN $255,Copy Fehler GETA $255,1F Fehlermeldung ausgeben TRAP 0,Fputs,StdErr SET $255,s TRAP 0,Fputs,StdErr GETA $255,2F JMP Quit 1H BYTE "Kann die Datei ",0 LOC (@+3)&-4 an Tetra-Grenze ausrichten 2H BYTE " nicht oeffnen!",#A,0 Copy LDA $255,Arg2 TRAP 0,Fread,QFile lesen BN $255,fertig weniger als {\tt buf\_size} gelesen LDA $255,Arg2 TRAP 0,Fwrite,ZFile schreiben PBNN $255,Copy Trouble GETA $255,1F JMP Quit Fehlermeldung ausgeben 1H BYTE "Fehler beim Schreiben!",#A,0 fertig INCL $255,Buf_Size Puffer ist nicht ganz gef"ullt BN $255,ReadErr STO $255,Arg2+8 LDA $255,Arg2 TRAP 0,Fwrite,ZFile BN $255,Trouble TRAP 0,Halt,0 ReadErr GETA $255,1F JMP Quit 1H BYTE "fehler beim Lesen!",#A,0