The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,779 other followers

Archive for the ‘Turbo Pascal’ Category

Borland’s legendary development tools…

Posted by jpluimers on 2019/12/12

From [WayBack] Borland’s legendary development tools Do you remember Turbo Languages from Borland? There are Pascal, C, Assembler, Basic, Prolog and many other produc… – Jaroslav Beran – Google+:

Borland’s legendary development tools

Do you remember Turbo Languages from Borland? There are Pascal, C, Assembler, Basic, Prolog and many other products. Here there is link to directory containing original documentation of many these products:

http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/

Did you work with some of them? Which one was your favorite?

[WayBack] Bitsavers Index of /pdf/borland:

[ICO] Name Last modified Size Description

[DIR] Ads/ 2011-09-01 20:47
[ ] BRIEF_for_DOS_and_OS2_Version_3.1_Users_Guide_1992.pdf 2009-06-30 22:57 8.9M
[ ] Borland_Brochure_1987.pdf 2009-11-05 02:18 2.1M
[ ] Borland_Turbo_BASIC_Owners_Handbook_1987.pdf 2009-07-30 05:33 15M
[ ] Eureka_The_Solver_Owners_Handbook_1987.pdf 2011-03-20 23:56 8.5M
[ ] Superkey_Owners_Handbook_1986.pdf 2011-02-04 02:01 7.1M
[ ] Turbo_Languages_Brochure_1988.pdf 2011-01-25 04:26 4.0M
[ ] Turbo_Vision_Version_2.0_Programming_Guide_1992.pdf 2010-06-18 19:07 25M
[ ] Windows_API_Guide_Reference_Volume_1_1991.pdf 2009-07-01 03:16 28M
[ ] Windows_API_Guide_Reference_Volume_2_1991.pdf 2009-07-01 03:16 8.7M
[ ] Windows_API_Guide_Reference_Volume_3_1992.pdf 2009-07-01 03:17 24M
[DIR] borland_C++/ 2013-01-17 00:07
[DIR] objectvision/ 2011-06-06 23:47
[DIR] paradox/ 2011-06-06 23:43
[DIR] quatro/ 2014-12-11 03:04
[DIR] quatro_pro/ 2011-06-06 23:47
[DIR] reflex/ 2011-06-06 23:37
[DIR] sidekick/ 2011-06-06 23:38
[DIR] sprint/ 2011-06-06 23:42
[DIR] turbo_assembler/ 2013-01-17 00:07
[DIR] turbo_c/ 2011-06-06 23:37
[DIR] turbo_pascal/ 2011-09-01 19:23
[DIR] turbo_prolog/ 2011-06-06 23:43

Via: [WayBack] Borland’s legendary development tools Do you remember Turbo Languages from Borland? There are Pascal, C, Assembler, Basic, Prolog and many other produc… – Adrian Marius Popa – Google+

–jeroen

Read the rest of this entry »

Posted in Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »

Delphi ^A syntax: Documented, implied, or undocumented? – Stack Overflow

Posted by jpluimers on 2019/12/12

The syntax is documented. In the Turbo Pasal 3 documentation, i.e. the Z80 era.

Source my answer to [WayBackDelphi ^A syntax: Documented, implied, or undocumented? – Stack Overflow (I have added some WayBack Internet Archive links below) as it is from the Turbo Pascal era where the caret was introduced to support control characters:

This is from long ago as an escape character to enable you to have consts for control characters in a more readable way.
const
  CtrlC = ^C;
begin
  Write(Ord(CtrlC));
end.

This defines a Char constant with value #3, then writes 3 in Borland Pascal 7, and I remember seeing it years before that too.

I just checked the Turbo Pascal 5.0 and Borland Pascal 7.0 languages guides, but could not find it, so it seems undocumented.

Edit: I do remember this was a Borland thing, and just [WayBack] checked: it is not part of the ISO Pascal standard (formerly this was ANSI Pascal Standard, thanks Sertac for noticing this).

It [WayBack] is documented in the Free Pascal documentation [WayBack].

SGI uses the backslash as escape character, as per their docs [WayBack].

More Edit: I found it [WayBackdocumented in Delphi in a Nutshell and the [WayBackDelphi Basics site.

Found it: Just found it on page 37 of the Turbo Pascal 3 Reference Manual [WayBack].

(Marco van de Voort found the Free Pascal documentation)

It in fact originates in the 1984 Turbo Pascal 1 edition, as per the [WayBack] Turbo_Pascal_Reference_Manual_Feb84.pdf:

Read the rest of this entry »

Posted in Borland Pascal, Delphi, Development, FreePascal, History, Pascal, Software Development, Turbo Pascal, Z80 | 1 Comment »

Turbo Pascal 7 compatible compiler for 8051 microcontrollers…

Posted by jpluimers on 2019/08/21

I had seen this before, but was glad about the reminder to put it in my blog: [WayBack] OMG, there is Turbo Pascal 7 compatible compiler for 8051 microcontrollers! http://turbo51.com – Primož Gabrijelčič – Google+:

[WayBack] turbo51.com: Full-featured free Pascal compiler for 8051 microcontrollers, Borland Turbo Pascal 7 syntax, multi-pass optimizer, generates bin, hex, OMF-51 and asm source.

Program Turbo51;
 
Uses FastCompiler, AdvancedOptimizations, SmartLinker, AseemblerFileGenerator;
 
//  Turbo51 is released as freeware. You can download it and use it for FREE.
//  However, if you like Turbo51 you can donate some small amount via PayPal.
//  Donations are a great way to show your appreciation for my software.
 
begin
  InstallAndConfigure;
  Repeat
    CreateProject;
    CompileProject;
    TestProject;
    While ThereIsAProblem do
    begin
      CheckCode;
      CheckDocumentation;
      TryAgain;
      Case ProblemSolved of
        True: Break;
        else  AskForHelp;
      end;
    end;
    If InstalledVersion < '0.1.3.17' then Update;
    If Satisfied then Donate ($20);
  until NoMoreProjects;
end.
a

–jeroen

Posted in Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »

It’s a blong, blong, blong road…: ‘What if?’ scenario analysis in the CPU window

Posted by jpluimers on 2019/07/31

Patching code at debug-time: [WayBackIt’s a blong, blong, blong road…: ‘What if?’ scenario analysis in the CPU window.

Remember:

  • There are dragons
  • Patching too many bytes will kill a kitten and likely your application.
  • Bytes in memory might not be what they seem, especially when having breakpoints (and the debugger frantically trying to set/remove $CC bytes for the INT 3 instruction)

I’ve done this for 20+ years and usually use the $90 byte (NOP instruction) though your experience may be different.

–jeroen

 

Posted in Debugging, Delphi, Development, Pascal, Software Development, Turbo Pascal | Leave a Comment »

Delphi function result assignments before the function returns…

Posted by jpluimers on 2019/05/01

Eric Grange:

Actually it is not that assignments of function return values can happen “when the function raises an exception” but rather than they can happen before the function returns.

Note that this is not limited to large return types, it can also happen on reference counted types (string, dynamic array, variant and interface), though this is contextual as well…

Got bit by the interface thing a few months ago, an interface release was triggering an exception when the result was assigned, the call stack looked way out of synch with the code, so various compilation and and map file mismatch issues got investigated, before I dropped in asm view in the debugger, which made it all obvious.

I’ve quoted it in full as I’ve been bitten by this a few times as well, but never got to making a proper blog post on it.

Thanks Eric for phrasing this and David for bringing it up.

It actually has been the case since somewhere toward the end of the Turbo Pascal era.

Source: [WayBackThis program: {$APPTYPE CONSOLE} uses System.SysUtils; type TRec1 = r…

–jeroen

Posted in Delphi, Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »

 
%d bloggers like this: