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

Archive for the ‘Turbo Pascal’ Category

Turbo Pascal Compiler and IDE in JavaScript

Posted by jpluimers on 2015/07/09

A (hardly) limited Turbo Pascal Compiler (and large parts of the IDE!) in JavaScript.

Memories from the CP/M era (:

Code is on GitHub.

–jeroen

Posted in CP/M, Development, History, Pascal, Software Development, Turbo Pascal, Z80 | Leave a Comment »

2 More Old Micro Cornucopia issues on BitSavers from 1986 « The Wiert Corner – irregular stream of stuff

Posted by jpluimers on 2015/06/18

Almost two years ago, I wrote “the only issues missing are #28, #30 and #31.”. As of mid May any more:

All of them are from the 5th anniversary year.

–jeroen

via 2 More Old Micro Cornucopia issues on BitSavers from 1986 « The Wiert Corner – irregular stream of stuff.

Posted in 6502 Assembly, Assembly Language, BitSavers.org, C, C++, Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »

Now that XE8 is out, some Turbo Pascal history

Posted by jpluimers on 2015/04/14

A few people asked, so below is a picture of just a piece of my books closet.

From left to right:

  1. Object Professional 1.0 manuals volume 1-3
  2. BTree Filer 5.0 manual
  3. Turbo Professional manual (from 1985!)
  4. Borland Paradox Engine 3.0 manuals
  5. Crystal Reports Developers Edition
  6. Borland Open Architecture Handbook for Pascal
  7. Turbo Pascal 5.5 OOP Guide
  8. Turbo Pascal 5.5 Reference Guide
  9. Turbo Pascal 5.5 User’s Guide
  10. Turbo Pascal Quick Reference
  11. Programming with Turbo Vision

This is only the front-left portion of one shelve. Most shelves are two deep and about 4 times as wide as what you see here (:

I have floppies somewhere in my archive too. Need to dig them up some day.

–jeroen

via:

Read the rest of this entry »

Posted in Delphi, Delphi XE8, Development, History, Pascal, Software Development, Turbo Pascal | 6 Comments »

BitSavers.org just added 7 missing scans of PascalNews newsletters (1975…1983)

Posted by jpluimers on 2015/03/30

For anyone keeping up with Pascal history, these uploads are new:

–jeroen

via: Index of /pdf/pascalNews.

Posted in Apple Pascal, BitSavers.org, DEC Pascal, Delphi, Development, History, IBM Pascal, Pascal, Software Development, Standard Pascal, Turbo Pascal, UCSD Pascal | Leave a Comment »

Blast from the Past: `TThread` got introduced in Delphi 2

Posted by jpluimers on 2015/01/03

Thanks Nick Hodges for asking, and Uwe Raabe for answering:

Yep! Delphi 2 had TThread while Delphi 1 did not.

It resulted in an interesting thread including topics like cooperative multi-tasking and named pipes under DOS by using Turbo Pascal.

Boy, I remember the \pipe\ days and releasing a time slice by calling INT $28, $15 and $2F combinations like this:


asm
int $28
mov ax, $1000
int $15 { DESQview/TopView give up time slice }
mov ax, $1680
int $2F
end;

Note: you can even use INT $2F with AX=$1680 to check if you are running in a DOS x86 VM and other OS checks.

–jeroen

via: Anyone remember which version of Delphi introduced TThread?.

Posted in Borland Pascal, Delphi, Delphi 1, Delphi 2, Development, Pascal, Software Development, Turbo Pascal | 4 Comments »

MVVM, MVP, MVC, OOD, etc: it is all about structure and using common sense.

Posted by jpluimers on 2014/12/04

I’ve done partitioned programming (using various layers for different kinds of functionality) for ages.

The first time I can remember of official terms for it, I already used patterns like that for a couple of years.

Back then the parts were from Object-Oriented Design: Peter Coad, Edward Yourdon, back in a time when each part – back then not called common layer – was called “component”: Read the rest of this entry »

Posted in Delphi, Development, Pascal, Software Development, Turbo Pascal | 2 Comments »

Delphi: RandomizeIfNeeded

Posted by jpluimers on 2014/10/07

Calling Randomize too often can make your Random numbers even less random.

Sometimes having the Randomize call in a unit initialization section is not practical.

Hence this little method that I think I first wrote back in the Turbo Pascal days:

procedure RandomizeIfNeeded();
begin
  if RandSeed = 0 then 
    Randomize();
end;

–jeroen

Posted in Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi for PHP, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Pascal, Software Development, Turbo Pascal | 7 Comments »

NTCore: interesting site about about system internals and software security

Posted by jpluimers on 2014/09/30

I recently bumped into the NTCore website by Daniel Pisti.

At a client without my own VMs, I wanted to create a DebugBreak like function in Delphi, which I remembered from my Turbo Pascal days to be something like Inline($CC). So searching for both Delphi and INT 3, I found an EXE injection page at NTCore.

In Delphi, you can do this with a procedure like this, which cannot be inlined because it has an asm block:

procedure DebugBreak();
asm
  int 3
end;

(Reminder to self: sort out what to do here to break on an iOS device; Xcode has an alternative)

The site has information about system internals and software security posted as articles until 2009,  when he switched to blog posts. Besides that, he has written a bunch of interesting articles at CodeProject. Read the rest of this entry »

Posted in Delphi, Development, Pascal, Power User, Software Development, Turbo Pascal, Windows, xCode/Mac/iPad/iPhone/iOS/cocoa | 3 Comments »

The dreaded with… Debugging today, I found another gotcha (: – via: Lars Fosdal

Posted by jpluimers on 2014/08/12

In the With Statement series:

Lars Fosdal – Code Rants

The dreaded with…

Debugging today, I found another gotcha.

In this case, both Self and DisconnectedClient has a property named ClientIdentifier.

Note the difference for the mouse-over and the evaluation.

–jeroen

Read the rest of this entry »

Posted in Appmethod, Borland Pascal, Delphi, Delphi 1, Delphi 2, 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, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Pascal, Software Development, Turbo Pascal, With statement | Leave a Comment »

The StackOverflow Pascal/DelphiSyntax Highlighter

Posted by jpluimers on 2014/07/22

Found out where the StackOverflow Pascal has its origins: What happened to comments in syntax highlighter? – Meta Stack Overflow.

Like any syntax highlighter, it is not perfect (only a Delphi compiler driven highlighter would have a chance to be perfect), but it does a pretty good job and gets better over time.

–jeroen

Posted in Borland Pascal, Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, FreePascal, Pascal, Software Development, Turbo Pascal | Leave a Comment »