Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Tiny Pascal (2017) (trs-80.org)
116 points by ingve on June 3, 2018 | hide | past | favorite | 14 comments


I remember when the source code for this was published in BYTE magazine. I figured out every line of it, and I thought how it worked was utterly magical. It was a big factor in me going into compilers.


http://www.drdobbs.com/architecture-and-design/how-i-came-to...

Thank you, Walter. I guess this link about Tiny Pascal was posted after that story?


I did not submit that link. It may or may not be a coincidence.


OT: Empire was one of the games that hooked into computing and eventual programming. For such a simple looking game it was to me then what Civilization games are to people today, something I would start playing and look up and see it was morning


I didn't see a link anywhere to the source material, so here's the manual for TRS-80 Tiny Pascal:

https://archive.org/details/Tiny_Pascal_1982_Tandy

Page 17 includes some example programs, and the syntax of the language is described on a set of railroad diagrams starting on page 20.


> This version of Tiny Pascal was written in North Star BASIC. According to the articles, it implemented most of Pascal with some limitations:

> - the GOTO statement was missing

> - only integers and one-dimensional integer arrays were allowed for variable types

> - there was no “structured data type, pointer type, user defined type, and file type”

> - parameters were passed by value only

> On the other hand, Tiny Pascal did add some extensions to standard Pascal, such as else clauses in case statements.

I would imagine this to severely hamper creating efficient programs in the language, especially in those resource-limited days. What kind of programs were written in Tiny Pascal?


I had never heard of this implementation.

The feature set doesn't seem so crazy for those days.

It's trivial to implement two dimensional arrays. And you can pass indexes as parameters.

I remember programming with Spectrum and the first PCs and sometimes you needed to look up some table for the ordinal of a character or sprite. I remember poking bytes in the 8086 screen buffer, was it B800?


Keep in mind that this was an article in a magazine and the entire compiler had to fit in there, so that was also a limiting factor.

Here is the BYTE issue with the compiler (the p-code vm is given in the previous issue): https://archive.org/stream/byte-magazine-1978-10/1978_10_BYT...

If you take a look at the BASIC source of the compiler and the Pascal source example, i think it becomes immediately obvious that the latter was a little nicer to write stuff in regardless of limitations :-P.

EDIT: the compiler also seems to support direct memory access via a special `MEM[expression]` syntax (implemented in lines 3130 for reading and 4640 for writing). Considering that those computers allowed free reign over the entire system via memory accesses, this alone would be enough to implement more complex stuff wrapped around nice functions.


B800h on VGA, EGA, and CGA boards, B000h on MDA and Hercules.


It's more the lack of structs and pointers, and mandatory pass-by-value that makes me wonder


People wrote huge programs with Spectrum assembler so go figure.


Wordperfect was written in assembly.


Funny I hadn't heard of this before, but I grew up with BLS Pascal (which is small but very capable). Wirth's most recent iteration on the theme is Oberon [1] and the compiler is quite small and digestible (one file for each the lexer, parser, and codegen respectably). With a less verbose syntax, this could be a nice language :)

[1] www.projectoberon.com


I used to own this package.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: