mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 00:19:19 +02:00
+ introduced BAS_EncodeLine to make it easier to construct BASIC programs
git-svn-id: branches/z80@44592 -
This commit is contained in:
parent
8619a8cb32
commit
686022c971
@ -60,7 +60,6 @@ var
|
||||
ErrorMsg: String;
|
||||
NonOptions: TStringArray;
|
||||
BasicProgram: AnsiString;
|
||||
BasicLine1, BasicLine2: AnsiString;
|
||||
begin
|
||||
// quick check parameters
|
||||
ErrorMsg:=CheckOptions(ShortOptions, LongOptions);
|
||||
@ -99,10 +98,8 @@ begin
|
||||
FOutputFile := TFileStream.Create(FOutputFileName, fmCreate);
|
||||
FTapeWriter := TTZXWriter.Create(FOutputFile);
|
||||
|
||||
BasicLine1 := ' '+BC_LOAD+'"" '+BC_CODE+#13;
|
||||
BasicLine2 := ' '+BC_PRINT+BC_USR+BAS_EncodeNumber(FInputImage.Origin)+#13;
|
||||
BasicProgram := #0#10+Chr(Byte(Length(BasicLine1)))+Chr(Byte(Length(BasicLine1) shr 8))+BasicLine1+
|
||||
#0#20+Chr(Byte(Length(BasicLine2)))+Chr(Byte(Length(BasicLine2) shr 8))+BasicLine2;
|
||||
BasicProgram := BAS_EncodeLine(10, ' '+BC_LOAD+'"" '+BC_CODE) +
|
||||
BAS_EncodeLine(20, ' '+BC_PRINT+BC_USR+BAS_EncodeNumber(FInputImage.Origin));
|
||||
|
||||
FTapeWriter.AppendProgramFile('basic', 10, Length(BasicProgram), BasicProgram[1], Length(BasicProgram));
|
||||
FTapeWriter.AppendCodeFile('test', FInputImage.Origin, FInputImage.Data[0], Length(FInputImage.Data));
|
||||
|
@ -126,6 +126,7 @@ const
|
||||
|
||||
function BAS_EncodeNumber(N: Integer): ansistring;
|
||||
function BAS_EncodeNumber(N: Real): ansistring;
|
||||
function BAS_EncodeLine(LineNr: Integer; const Line: string): ansistring;
|
||||
|
||||
implementation
|
||||
|
||||
@ -151,5 +152,12 @@ begin
|
||||
raise ENotImplemented.Create('Real number support not yet implemented');
|
||||
end;
|
||||
|
||||
function BAS_EncodeLine(LineNr: Integer; const Line: string): ansistring;
|
||||
begin
|
||||
Result := Chr(Byte(LineNr shr 8)) + Chr(Byte(LineNr)) +
|
||||
Chr(Byte((Length(Line) + 1))) + Chr(Byte((Length(Line) + 1) shr 8)) +
|
||||
Line + #13;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user