/* ** Petscii to ascii ** ** ** translate array ** ** petscii -> ascii ** ** ** */ MODULE 'exec/memory' , 'dos/dos' DEF fh,filesize,myargs:PTR TO LONG,rdargs,buffer:PTR TO CHAR DEF translate[255]:ARRAY OF CHAR PROC main() DEF loop=0,fn,outfilename myargs:=[0,0] IF rdargs:=ReadArgs('NAME/A',myargs,NIL) WriteF('NAME:= \s\n',myargs[0]) outfilename:=String(StrLen(myargs[0])+5) /* add '.SSP' to filename */ StrCopy(outfilename,myargs[0]) StrAdd(outfilename,'.fix') filesize:=FileLength(myargs[0]) buffer:=New(filesize) fh:=Open(myargs[0],MODE_OLDFILE) Read(fh,buffer,filesize) Close(fh) build_translate() FOR loop:=0 TO filesize-1 buffer[loop]:=translate[buffer[loop]] ENDFOR fh:=Open(outfilename,MODE_NEWFILE) Write(fh,buffer,filesize) Close(fh) FreeArgs(rdargs) Close(0) ELSE WriteF('Need a file to convert\n') ENDIF ENDPROC PROC build_translate() DEF i=0,loop=0 FOR loop:=0 TO 31 -> store bogstaver translate[loop]:=64+loop ENDFOR FOR loop:=32 TO 63 translate[loop]:=loop -> tal og space ENDFOR FOR loop:=65 TO 90 translate[loop]:=65 + i i++ ENDFOR ENDPROC. .