Browse Source

+ implemented console output in the ZX Spectrum RTL. Writeln('Hello, world!'); now works!!! :)

git-svn-id: branches/z80@45129 -
nickysn 5 years ago
parent
commit
d970112f26
2 changed files with 10 additions and 4 deletions
  1. 8 0
      rtl/zxspectrum/sysfile.inc
  2. 2 4
      rtl/zxspectrum/system.pp

+ 8 - 0
rtl/zxspectrum/sysfile.inc

@@ -35,6 +35,13 @@ end;
 
 
 function do_write(h:thandle;addr:pointer;len : longint) : longint;
 function do_write(h:thandle;addr:pointer;len : longint) : longint;
 begin
 begin
+  do_write:=len;
+  while len>0 do
+  begin
+    PrintChar(PChar(addr)^);
+    Inc(addr);
+    Dec(len);
+  end;
 end;
 end;
 
 
 
 
@@ -83,4 +90,5 @@ end;
 
 
 function do_isdevice(handle:THandle):boolean;
 function do_isdevice(handle:THandle):boolean;
 begin
 begin
+  do_isdevice:=true;
 end;
 end;

+ 2 - 4
rtl/zxspectrum/system.pp

@@ -53,7 +53,7 @@ function KeyPressed: Boolean;
 implementation
 implementation
 
 
 const
 const
-  LineEnding = #13#10;
+  LineEnding = #13;
   { LFNSupport is a variable here, defined below!!! }
   { LFNSupport is a variable here, defined below!!! }
   DirectorySeparator = '\';
   DirectorySeparator = '\';
   DriveSeparator = ':';
   DriveSeparator = ':';
@@ -76,7 +76,7 @@ const
   CtrlZMarksEOF: boolean = true; (* #26 is considered as end of file *)
   CtrlZMarksEOF: boolean = true; (* #26 is considered as end of file *)
 
 
   sLineBreak = LineEnding;
   sLineBreak = LineEnding;
-  DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
+  DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCR;
 
 
 var
 var
   __heapsize: Word;external name '__heapsize';
   __heapsize: Word;external name '__heapsize';
@@ -267,7 +267,6 @@ end;
 
 
 procedure SysInitStdIO;
 procedure SysInitStdIO;
 begin
 begin
-(* TODO: doesn't work yet...
   OpenStdIO(Input,fmInput,StdInputHandle);
   OpenStdIO(Input,fmInput,StdInputHandle);
   OpenStdIO(Output,fmOutput,StdOutputHandle);
   OpenStdIO(Output,fmOutput,StdOutputHandle);
   OpenStdIO(ErrOutput,fmOutput,StdErrorHandle);
   OpenStdIO(ErrOutput,fmOutput,StdErrorHandle);
@@ -275,7 +274,6 @@ begin
   OpenStdIO(StdOut,fmOutput,StdOutputHandle);
   OpenStdIO(StdOut,fmOutput,StdOutputHandle);
   OpenStdIO(StdErr,fmOutput,StdErrorHandle);
   OpenStdIO(StdErr,fmOutput,StdErrorHandle);
 {$endif FPC_STDOUT_TRUE_ALIAS}
 {$endif FPC_STDOUT_TRUE_ALIAS}
-*)
 end;
 end;
 
 
 begin
 begin