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,862 other subscribers

Archive for the ‘Pascal’ Category

IBM Pascal Compiler Aug81 pdf (via: Bitsavers’ Index of /pdf/ibm/pc/dos)

Posted by jpluimers on 2013/05/26

Wow, I didn’t know that IBM had their own DOS based Pascal compiler for the PC in 1981, but they did, and BitSavers just uploaded their manual
IBM_Pascal_Compiler_Aug81.pdf

Edit:
document moved from http://bitsavers.trailing-edge.com/pdf/ibm/pc/dos/IBM_Pascal_Compiler_Aug81.pdf
to: http://bitsavers.trailing-edge.com/pdf/ibm/pc/languages/IBM_Pascal_Compiler_Aug81.pdf

It is part of their “Personal Computer Computer Language Series”

From the era of DOS Pascal compilers before Turbo Pascal.

–jeroen

via Index of /pdf/ibm/pc/dos.

Posted in BitSavers.org, Delphi, Development, History, IBM Pascal, Pascal, Software Development | 7 Comments »

Time for a golden oldie: Pragmatic Software Development Tips

Posted by jpluimers on 2013/05/09

From the century start era of The Pragmatic Bookshelf | The Pragmatic Programmer, a – still valid – list of Pragmatic Software Development Tips.

From Care About Your Craft, via DRY, Some Things Are Better Done than DescribedKeep Knowledge in Plain Text, Work With a User to Think Like a User, Find the Box, and many others till Sign Your Work.

–jeroen

via: The Pragmatic Bookshelf | List of Tips.

Posted in .NET, C++, Cloud Development, COBOL, CommandLine, Delphi, Development, Fortran, iSeries, Java, Pascal, RegEx, Scripting, Software Development, Web Development, xCode/Mac/iPad/iPhone/iOS/cocoa | 3 Comments »

Pascal/Delphi parsers and grammars

Posted by jpluimers on 2013/04/09

A few interesting links for my archive:

–jeroen

Posted in Delphi, Development, FreePascal, Pascal, Software Development | 3 Comments »

More Old Micro Cornucopia issues on BitSavers from 1987 and 1988

Posted by jpluimers on 2013/04/08

Last quarter, 11 issues of Micro Cornucopia appeared on BitSavers including the final May 1990 issue.

This month, another 7 issues appeared, most of which cover a form of Pascal in one or more of the articles and advertisements:

A fun thing to notice are the advertisements for Modula-2. Logitech Modula-2. Yes though the Logitech Wikipedia page does not mention it at all, Logitech didn’t only sell mice, keyboards and web-cams. They had more products. Being Swiss, they were big in Modula-2. And Bitsavers has a PDF of that too: Logitech_Modula-2_86_1.0_Feb84.pdf

The only issues still to be scanned are #28 till .

–jeroen

via: New Micro Cornucopia issues on BitSavers including the Final May 1990 issue « The Wiert Corner – irregular stream of stuff.

Posted in Assembly Language, BitSavers.org, C, C++, Delphi, Development, History, Pascal, Software Development, Turbo Assembler, Turbo Pascal, x86 | Tagged: , , , , | 2 Comments »

Delphi: you should avoid the `with` statement as it makes your code less future proof

Posted by jpluimers on 2013/03/27

As I wrote before, I’m with the [WayBack] Delphi with haters camp, and this is why:

Using the [WayBackwith statement in Delphi makes your code less future proof.

Originally, the with statement in Pascal was argumented in part of allowing compiler optimisations:

PASCAL User Manual and Report – Kathleen Jensen, Niklaus Wirth – Google Books

The with clause effectively opens the scope containing field identifiers of the specified record variable, so that the field identifiers may occur as variable identifiers. (Thereby providing an opportunity for the compiler to optimize the qualified statement.)

Screenshots of this 1975 book are below the fold.

The Delphi (actually even before that Turbo Pascal compiler) has no measurable difference between with and non-with code.

The debugger however, still does not support with, and there are other drawbacks of which one is below.

The below code example is just one of many. I show it because I recently bumped into doing some long overdue code porting to Delphi XE3.

Since I’ve been bitten by using with a couple of times before, it didn’t take me long to find the cause.

Example code where FIConData is of type NOTIFYICONDATAW that used to compile fine:

    with FIconData do
    begin
      cbSize := SizeOf(FIconData);
      Wnd := Self.Handle;
      uID := $DEDB;
      uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
      hIcon := Application.Icon.Handle;
      uCallbackMessage := WM_CAS400NTIcon;
      StrCopy(szTip, PChar(Caption));
    end;

Well, as of Compiler Version 20, it doesn’t compile any more. Read the rest of this entry »

Posted in Borland Pascal, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Development, Event, Pascal, Software Development, Turbo Pascal, With statement | 32 Comments »

Found a table with Delphi Conditional defines over the Delphi versions/compiler platforms/bitness

Posted by jpluimers on 2013/02/20

Right now, documentation on Delphi Conditional Defines is on pages like Conditional compilation (Delphi) – RAD Studio XE2, but it is limited as it is for one specific version of Delphi only.

However, over the course of Delphi versions, compiler platforms and bitness, and not forget Free Pascal and Turbo Pascal/Borland Pascal, the matrix has become huge.

There is no complete documentation on that in one place. Right now include files like Defines.inc, the DSPack.inc, the JCL include directory the JVCL common include directory and the Jedi.inc documentation contain the collective knowledge about this.

Someone should condense that in a table and – more important – keep it up to date.

At least now there is a post collecting some of the links that contain the knowledge (:

Found one that contains these columns

  • Product & Version
  • VERxxx defines
  • __BORLANDC__ value
  • RTLVersion
  • CompilerVersion
  • Package Version

via Compiler/RTL version overview « Muetze1 wich is now available on the wayback machine: http://web.archive.org/web/20131229055045/http://www.muetze1.de/?page_id=547

–jeroen

Posted in Borland Pascal, Delphi, Delphi 1, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Development, FreePascal, History, Pascal, Software Development, Turbo Pascal | 14 Comments »

Adobe Photoshop 1.0 Source Code About 75% is in Pascal, get it from the Computer History Museum

Posted by jpluimers on 2013/02/15

Thanks Lennart Aasenden for sharing this on FaceBook: Mariuz’s Blog: Adobe Photoshop 1.0 Source Code About 75% is in Pascal.

This was back when I was already a professional Turbo Pascal for PC programmer, not yet a Mac programmer, but doing Pascal on VMS to assist a client in the scaleable font industry.

The 1990 version 1.0.1 of Photoshop code was written in Object Pascal, and based on MacApp.

Back then Apple’s Object Pascal was one of the few IDEs available to develop Macintosh software. Later on, you also had Turbo Pascal and THINK Pascal (which many Macintosh developers preferred, was later acquired by Symantec, and died). A big reason they liked it so much was the THINK integrated debugger, which was lightyears ahead of any Pascal product on any other platform.

Apple had great documentation, not only on their compilers and libraries, but also one that everyone should hav read: Apple Human Interface Guidelines: The Apple Desktop Interface: Inc. Apple Computer: 9780201177534: Amazon.com: Books.

The Adobe Photoshop 1.0 source code can be downloaded (for non-commercial use) from the Computer History Museum | @CHM : Adobe Photoshop Source Code page.

The source is a very interesting read, and a great comments on it by Grady Booch.

This is how everyone should think about their code.

–jeroen

PS: A nice introduction to Object Pascal for a Macintosh is at MacTech | The journal of Apple technology..

Posted in Delphi, Development, Object Pascal, Pascal, Software Development, Think Pascal | Tagged: , , , , , , , , , | 4 Comments »

New Micro Cornucopia issues on BitSavers (including the Final May 1990 issue)

Posted by jpluimers on 2013/01/26

Back in the days I started programming, Micro Cornucopia was a wonderful magazine, so I’m glad that BitSavers scanned a few more issues and put them online today, a week after some great PDF scans: Turbo Assembler/Debugger (1993/1994), Borland C++/Object Windows Library (1993):

They covered a lot of languages (x86 and 68k assembly, C, C++, Turbo Pascal and many more), and very interesting hardware designs.

–jeroen

via: Index of /pdf/microCornucopia.

Posted in Assembly Language, BitSavers.org, C, C++, Delphi, Development, History, Pascal, Software Development, Turbo Assembler, Turbo Pascal, x86 | Tagged: , , , | 2 Comments »

Interesting: Project “W” game “Phase 2” and multi-platform version on the 2013 agenda of Sascha Willems

Posted by jpluimers on 2013/01/20

On my interest list: game written in Delphi and now being ported to FreePascal under Lazarus for multi-platform reasons: Agenda for 2013 | www.SaschaWillems.de.

–jeroen

Posted in Delphi, Development, FreePascal, Lazarus, Pascal, Software Development | 9 Comments »

New BitSavers.org PDF scans: Turbo Assembler/Debugger (1993/1994), Borland C++/Object Windows Library (1993)

Posted by jpluimers on 2013/01/17

The PDF Archive at bitsavers.org has recently put online these raster image PDF scans from Turbo Assembler/Debugger (1993/1994) and Borland C++/Object Windows Library (1993)

Remnants of the past, usefull for RAD Studio, Delphi and C++ Builder developers wanting to know a bit of history (: Read the rest of this entry »

Posted in Assembly Language, BitSavers.org, Borland C++, C, C++, Delphi, Development, History, Pascal, Software Development, Turbo Assembler, Turbo Pascal, x86 | Tagged: , , , , , , , | 2 Comments »