program Turbo_Screen_Map; {************************************************************************} {* Change Log *} {* *} {* Date Name Address Phone *} {* *} {* 09/01/85 Greg Pasquariello CP/M-Net East (201)249-0691 *} {************************************************************************} const WriteCommand = ' writeln('''; EndofWrite = ''');'; Bell = ^G; var Mapfile, NewMapCode: Text; CommandLine: String[100]; ScreenLine: String[80]; Directive: string[3]; ParmLength: integer absolute $80; ParmString: string[13] absolute $81; {************************************************************************} {* Parse *} {* *} {* This procedure parses the sub-commands from the screen *} {* file. It then builds the appropriate code. *} {************************************************************************} procedure Parse; begin Directive:= copy(screenLine,1,3); if directive = '.hi' then commandLine:=' HighVideo;' else if directive = '.lo' then commandLine:=' LowVideo;' else if directive = '.cl' then commandLine:=' ClrScr;' else commandLine:=concat(WriteCommand,ScreenLine,endOfWrite); end; {*************************************************************************} {* Build Screen Code *} {* *} {* This procedure will write screen code from the screen map *} {*************************************************************************} procedure BuildScreenCode; begin Readln(MapFile,ScreenLine); { Read screen map } Parse; writeln(NewMapCode,CommandLine); { Write code to file } end; {*************************************************************************} {* Driver Routine *} {* *} {* This is the main driver routine for the Screen Mapper *} {*************************************************************************} begin writeln(''); writeln(''); writeln(''); writeln(''); writeln(' TURBO MAP'); LowVideo; writeln(' Screen Mapping for Turbo Pascal'); writeln(' Version 1.1'); writeln(''); writeln(' 1985 Greg Pasquariello'); writeln(' CP/M Net East'); writeln(' (201) 728-1749'); writeln; HighVideo; ParmString:=copy(ParmString,1,ParmLength); Assign(Mapfile,ParmString); { Opens screen map } {$I-} reset(mapFile) {$I+}; if IOResult > 0 then If ParmLength = 0 then writeln(bell,'Please include input file name.') else Writeln(bell,Parmstring,' not found') else begin Assign(NewMapCode,'NewMap.fle'); { Opens generated code file } rewrite(NewMapCode); writeln(NewMapCode,'procedure Map;'); writeln(NewMapCode,'begin'); While not EoF(MapFile) do { Code Generation loop } begin BuildScreenCode; end; writeln(NewMapCode,'end;'); Close(NewMapCode); writeln('Screen code for ',ParmString,' has been generated in ''NEWMAP.FLE'''); end; ParmLength:=0; ParmString:=' '; end.