Jump to content

Test Computer Language, version 2.2 from D. Firth

Recommended Posts

Hi together,


In order to get the last remaining exot language for the AtariWiki, I would like to ask the community, whether there is someone out there in the galaxy, who owns:


Test Computer Language (disk)
version, year : 2.2, 1985-1990
author/company : D.Firth
available..... : public domain, ?
package....... : compiler and editor
features...... : -


extracted from the Atari faq.


An atr image and a manual in pdf form would be cool.


Thank you very much in advance, your help is very appreciated, as always. :-)


Link to comment
Share on other sites

  • 3 years later...

Hi, only just seen this thread (apologies if you have already obtained a copy) - here is a copy of TCL in ATR format together with a manual in PDF format.


I have included two example programs: COLOUR.TCL and BREAKOUT.TCL together with functions files (PEEK.FUN and DPEEK.FUN) which are included by BREAKOUT.TCL


COLOUR.TCL - Is a minimalistic program that simply sets the background colour (COLBK) to the value of VCOUNT as quickly as possible. I used it as a quick sanity check during development. All you will see is a rainbow effect on the background (Reset to exit .... to spartados, followed by RUN to restart TCL).


BREAKOUT.TCL - is a simple version of breakout


Quick Start


Extract files from TCL.ZIP

Disable BASIC and boot TCL.ATR

You should now be in SpartaDOS at the D1: prompt



Test Computer Language, Version 2.2
Copyright (c) 1985-1990 by D.Firth.






[ snipped ]


To Run immediately within TCL type RUN (You will need to hit reset to exit, which will return you to SpartaDos, type RUN in spartados to immediately restart TCL).

To compile into an executable disk file type: COMPILE #D:COLOUR.COM


Don't expect anything like BASIC - you will need to be able use the A8 at quite a low level to get the most out of it. The language basically includes:- 16 bit integer variables, arithmetic, procedures, functions, IF statements, loops, Timer Events using EVERY and AFTER (watch out for non-reentrant code ... there are IRQ ON/OFF commands to help).


Quick example library function (and what it is doing) is PEEK.FUN





FUNCTION PEEK (?address)

  CODE AD                       **** This is the 6502 Opcode for LDA (ABSOLUTE)

  VARIABLE ?address      **** This is the storage location for the 16 bit variable ?address, it also end up being the 16 bit address for the LDA opcode above

  PHA                                **** Now that we have loaded the A registered from the address specified we can push it onto the stack (low byte of return value).

  CODE A900                    **** Load A with 0

  PHA                                **** Push high byte of return value onto stack

  PULL (PEEK)                 **** Load return value into PEEK - this will now be accessible to the calling function




This might look a bit strange but you can now use X=PEEK(53248).



Edited by technomiser
  • Like 6
  • Thanks 3
Link to comment
Share on other sites

Hi Mr. Firth!




You are the one and only Davith Firth? Well known for decades? Marvelous, thank you sooooo much in the name of the community of the 5 continents:

2020549725_goteam(animated).gif.030260ff3804ea9a4c1d1ab9988c234c.gif  2020549725_goteam(animated).gif.030260ff3804ea9a4c1d1ab9988c234c.gif  2020549725_goteam(animated).gif.030260ff3804ea9a4c1d1ab9988c234c.gif  2020549725_goteam(animated).gif.030260ff3804ea9a4c1d1ab9988c234c.gif  2020549725_goteam(animated).gif.030260ff3804ea9a4c1d1ab9988c234c.gif




Soooo great !!! All is running like a charm:








Am I free to publish this at the Wiki?




with all credits to you?


A special place in our hearts, you already have, of course. ;-)


Thank you sooo much. WOW that is great!

  • Like 2
Link to comment
Share on other sites

13 hours ago, Kaj de Vos said:

Wow, never heard of this. This is certainly exotic. Pretty neat, though.


It wasn't commercially distributed (it  never entered my head ... I was far to busy writing code and tinkering).

It was used for the development of Enigmatix! ... by the only other person who had a copy of the language.


I wrote the language out of interest - and (out of nostalgia) that subsequently led to the development of an emulator so that I didn't lose access to the language.


  • Like 1
Link to comment
Share on other sites

Interesting. I know about frantic coding and not releasing. I wrote an emulator around a year before you. I never released it because yours preempted it to become the community one. Only one other person had a copy of it. Mine was much better than Xformer but not as complete as yours. I remember being frustrated because I had a disturbance line in the Swan Demo when the swan came flying by that yours didn't have and that I never got out.


I'm not doing much with it anymore, because it was written in C on MS-DOS and I don't want to maintain that anymore. So now I am writing a language to port the emulator to, to not lose access to it. ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...