A (hardly) limited Turbo Pascal Compiler (and large parts of the IDE!) in JavaScript.
Memories from the CP/M era (:
–jeroen
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 (:
–jeroen
Posted in CP/M, Development, History, Pascal, Software Development, Turbo Pascal, Z80 | Leave a Comment »
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
Posted in 6502 Assembly, Assembly Language, BitSavers.org, C, C++, Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »
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:
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:
Posted in Delphi, Delphi XE8, Development, History, Pascal, Software Development, Turbo Pascal | 6 Comments »
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 »
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 »
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 »
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 »
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 »
Posted by jpluimers on 2014/08/12
In the With Statement series:
Lars Fosdal – Code Rants
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
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 »
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 »