Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2020-04

Porting from Turbo Pascal to FPC

5 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Francisco Glover

Overt the years I have developed programs in Turbo Pascal for student lab use, in which the student can easily send to an attached printer contents of the text or VGA graphics screens. These no longer work on Windows 10. In shifting to FPC , certain key procedures which worked in Turbo Pascal running on Windows XP no longer work in FPC running on Windows 10. Samples are shown below:
======================================================= Program Sample;
{$ mode TP}
Uses Crt, Dos, Printer;
Var Regs: Registers;

 Procedure Print_screen;   { Interupt $05 }
   Begin
     Intr($05, Regs);
   End;               {Nothing printed, exit code= 0}
 Procedure Print_string;
  Begin
    Writeln('Text Screen');
    Writeln(LST, 'String to be printed');
  End;                {nothing printed, system hangs}
 Procedure Print_characters;   {Intrupt $17, function 0,  char to printer}
     Var j: byte;
         Msg: String[2];
   Begin
     Msg :=  'A' + #11;    { #11 = formfeed  }
     For j := 1 to 2 do
        Begin
          Regs.AH := 0;   {Function 0, output char}
          Regs.AL :=Ord(Msg[j]);
          Regs.DX := 0;   {default printer}
          Intr($17, Regs);
        End;
   End;      {Nothing printed, exit code= 0}
 Procedure Print1Char; {Interupt $21, Fcn 5}
   Begin
     Regs.AH := 5; {print character}
     Regs.DL := 'A';
     MSDos(Regs);
     Regs.AH := 5; {print character}
     Regs.DL := #11;  {formfeed}
     MSDos(Regs);
   End;    {Nothing printed, exit code= 0}
============================================================
How can I have my FPC programs running on Windows 10 send text and graphics
screens direct to an attached printer? Thank you
Elmar Haneke
to Francisco Glover
Francisco Glover wrote 6 lines
Overt the years I have developed programs  in Turbo Pascal for student lab use, in which the student can easily send to an attached printer contents of the text or VGA graphics screens. These no longer work on Windows 10.  In shifting to FPC , certain key procedures which worked in Turbo Pascal running on Windows XP no longer work in FPC running on Windows 10. Samples are shown below:

The Problem depends more on moving from DOS to Windows than movong from very old TP to FPC.

It might be an option to use DOSBox to run that old software.

Elmar

Tomas Hajny
to Elmar Haneke
Elmar Haneke wrote 12 lines
Am 29.04.20 um 10:42 schrieb Francisco Glover via fpc-pascal: > Overt the years I have developed programs  in Turbo Pascal for student > lab use, in which the student can easily send to an attached printer > contents of the text or VGA graphics screens. These no longer work on > Windows 10.  In shifting to FPC , certain key procedures which worked > in Turbo Pascal running on Windows XP no longer work in FPC running on > Windows 10. Samples are shown below: The Problem depends more on moving from DOS to Windows than movong from very old TP to FPC. It might be an option to use DOSBox to run that old software.

Indeed, the point of the original poster is not related to FPC versus TP but rather porting low-level DOS access to other operating systems - FPC would probably allow using these low-level constructs without problems for the DOS target (either without changes with the 16-bit msdos target, or with rather minor changes with the 32-bit GO32v2 target).

Talking about DOSBox, things like printing may still not work very well there, although there seem to be modified versions of DOSBox which may have better support for this functionality according to a very quick Google search. In any case, it's probably better to bite the bullet and rewrite the low-level parts of that old application. The other option might be running DOS in a full-featured virtualized environment (e.g. VirtualBox).

Tomas

Markus Greim
to Tomas Hajny

Hello,

I run Borland Pacal 7.01 in Dosemu / XdosEmu (don't use the 64bit binary) on Linux (Kernel 4.15, 64bit, Linux Mint 19.1, 16 CPUs...) here. Works fine, even the serial interface. At least for my experience, the printer doesn't work. So I "print" in a (shared) graphic file, and print then with Linux.

Maybe LPT works now, I tested it last time about 10 years ago.

Grüße

Markus

Earlier message 64 lines
--- original message --- On April 30, 2020, 11:27 AM GMT+2 wrote: On 2020-04-30 10:29, Elmar Haneke wrote: >> Am 29.04.20 um 10:42 schrieb Francisco Glover via fpc-pascal: >>> Overt the years I have developed programs in Turbo Pascal for student >>> lab use, in which the student can easily send to an attached printer >>> contents of the text or VGA graphics screens. These no longer work on >>> Windows 10. In shifting to FPC , certain key procedures which worked >>> in Turbo Pascal running on Windows XP no longer work in FPC running on >>> Windows 10. Samples are shown below: >> >> The Problem depends more on moving from DOS to Windows than movong from >> very old TP to FPC. >> >> It might be an option to use DOSBox to run that old software. > Indeed, the point of the original poster is not related to FPC versus TP > but rather porting low-level DOS access to other operating systems - FPC > would probably allow using these low-level constructs without problems > for the DOS target (either without changes with the 16-bit msdos target, > or with rather minor changes with the 32-bit GO32v2 target). > Talking about DOSBox, things like printing may still not work very well > there, although there seem to be modified versions of DOSBox which may > have better support for this functionality according to a very quick > Google search. In any case, it's probably better to bite the bullet and > rewrite the low-level parts of that old application. The other option > might be running DOS in a full-featured virtualized environment (e.g. > VirtualBox). > Tomas > _______________________________________________ > fpc-pascal maillist - > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal --- end of original message ---
Alexander Grotewohl
to Francisco Glover: Overt the years I have developed programs in Turbo Pascal for student lab use, in which…

Not really sure how you would adapt this to your setup, but I threw this together from a project I did previously. I've only tested it with the Windows 10 builtin XPS and PDF printers so I'm not sure how it will behave on a real printer.

(Hopefully the attachment makes it through..)

Alexander Grotewohl https://dcclost.com ________________________________
Earlier message 50 lines
From: fpc-pascal on behalf of Francisco Glover via fpc-pascal Sent: Wednesday, April 29, 2020 4:42 AM To: Cc: Francisco Glover Subject: [fpc-pascal] Porting from Turbo Pascal to FPC Overt the years I have developed programs in Turbo Pascal for student lab use, in which the student can easily send to an attached printer contents of the text or VGA graphics screens. These no longer work on Windows 10. In shifting to FPC , certain key procedures which worked in Turbo Pascal running on Windows XP no longer work in FPC running on Windows 10. Samples are shown below: ======================================================= Program Sample; {$ mode TP} Uses Crt, Dos, Printer; Var Regs: Registers; Procedure Print_screen; { Interupt $05 } Begin Intr($05, Regs); End; {Nothing printed, exit code= 0} Procedure Print_string; Begin Writeln('Text Screen'); Writeln(LST, 'String to be printed'); End; {nothing printed, system hangs} Procedure Print_characters; {Intrupt $17, function 0, char to printer} Var j: byte; Msg: String[2]; Begin Msg := 'A' + #11; { #11 = formfeed } For j := 1 to 2 do Begin Regs.AH := 0; {Function 0, output char} Regs.AL :=Ord(Msg[j]); Regs.DX := 0; {default printer} Intr($17, Regs); End; End; {Nothing printed, exit code= 0} Procedure Print1Char; {Interupt $21, Fcn 5} Begin Regs.AH := 5; {print character} Regs.DL := 'A'; MSDos(Regs); Regs.AH := 5; {print character} Regs.DL := #11; {formfeed} MSDos(Regs); End; {Nothing printed, exit code= 0} ============================================================ How can I have my FPC programs running on Windows 10 send text and graphics screens direct to an attached printer? Thank you