3 ms·
>The original Macintosh apps were in Pascal and the MacOS API were all Pascal-oriented. Yeah, i remember using the Mac OS written in Pascal. Strangely enough,
by S_I 10y ago
>The original Macintosh apps were in Pascal and the MacOS API were all Pascal-oriented.
Yeah, i remember using the Mac OS written in Pascal. Strangely enough, i remember it being buggy as hell and crashing pretty often (no memory protection at all).
- rpeden 10y agoI've read that large bits of it were written in 68k assembly too, so those parts might be responsible for the crashiness.
- ArkyBeagle 10y agoYou can't write systems programs in Pascal without escape-to-assembly. My first big 'C' project was a significant quality improvement over the Pascal it replaced, partly because of this.
- pjmlp 10y agoFunny I managed to do that in Turbo Pascal. Also C standard library cannot be implemented without using Assembly, unless one makes use of extensions not defined in ANSI C.
- ArkyBeagle 10y agoYou mean you managed with assembly, right? We were able to Vastly reduce the assembler footprint when using 'C'.
- pjmlp 10y agoNo I managed to do that with Turbo Pascal. If I was talking about inline Assembly, which Turbo Pascal supported and to this day still isn't part of ANSI C, I would have said so. The only times I actually was forced to use inline Assembly was to optimize graphics rendering and create a mouse device driver. Both of them were a one time project. Once upon a time I used to have some fun asking C devs for features not available in Turbo Pascal, while at the same time showing off all the safety and large project features that Turbo Pascal had and C to this day still lacks. Back on those MS-DOS and Windows 3.x days there wasn't any feature that C compilers had and Turbo Pascal didn't had a similar feature.
- ArkyBeagle 10y agoHow would you do an INT 21 call? It's been too long; I don't remember that being possible except as either just assembler or inline assembler.
- pjmlp 10y agoWith the MsDos procedure. program demo; uses Dos; var regs : Registers; begin regs.ah := $02; regs.dl := $07; MsDos (regs); { Beep! } end.