Jump to content

Photo

[Forth] Coin-op Forth?


20 replies to this topic

#1 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 427 posts
  • Location:Geneva, IL

Posted Sat Sep 11, 2010 10:35 PM

I keep seeing mention of a Forth in use at Atari Corp. It was called Game Forth in the Byte Magazine Forth issue and now after seeing this site:

Atari Programming Languages

Then this : Strolling Forth

Which Forth? Virtually all Forths available for the Atari are based on the FIG (Forth Interest Group) model for 6502 by William Ragsdale, so there is relatively good code compatibility. There are currently about a half-dozen Forths for the 400/800's. In approximate chronological order of appearance, they are: Coin-op Forth, a sort of inhouse version at Atari; Sunnyvale Forth, a public-domain version from a users group there (?); QS Forth, from Quality Software; PNS Forth from Pink Noise Studios; APX Forth, from Atari; Ataforth, (sorry, not sure whose); and Valforth, from Valpar International. We wrote and use Valforth, though the programs appearing in this column will generally run without much prodding on any of these systems.

Was there a Forth in use and actually used for production software or were they just testing?

#2 Savetz OFFLINE  

Savetz

    Stargunner

  • 1,003 posts
  • Location:Portland OR

Posted Tue Jun 23, 2015 8:46 PM

See https://atariage.com...ore-extensions/



#3 landondyer OFFLINE  

landondyer

    Star Raider

  • 55 posts
  • Location:Seattle Area

Posted Tue Jun 23, 2015 9:09 PM

I keep seeing mention of a Forth in use at Atari Corp. It was called Game Forth in the Byte Magazine Forth issue and now after seeing this site

Was there a Forth in use and actually used for production software or were they just testing?

 

As far as I know, no games issued from Atari that were written in FORTH. Certainly no big titles. The language was fun to play with, but ultimately too slow (and a generally write-only class of unmaintainable) for production use.

 

Donkey Kong Junior for the Atari 400/800 was started in FORTH, and it was a disaster on rollerskates -- really a spectacular mix of arrogance, self-delusion and lying -- until the programmer was fired and it was re-written in assembly (by Jeff Milhorn and Kevin Sacher, IIRC).

 

FORTH was used in the bring-up of the Atari ST hardware, and it worked well there. It was an in-house adaptation of something (probably 68000 FigFORTH) on a cartridge, and used to exercise registers and do limited testing. We software types were quite happy that the hardware engineers were able to try their own stuff out and fix bugs in it before (a) committing to silicon and (b) passing the ball to us :-)



#4 Kylev OFFLINE  

Kylev

    Chopper Commander

  • 150 posts
  • Location:U.S.A - West Coast

Posted Thu Jun 25, 2015 7:29 PM

Unless I have been misinformed, Universe by Omnitrend was written in Forth for the Atari 8 bit. Seemed to work well enough on stock hardware. Didn't like mods at all. Neither computer nor disk drive.



#5 Bryan OFFLINE  

Bryan

    Quadrunner

  • 10,926 posts
  • Cruise Elroy = 4DB7
  • Location:Chesaning, MI

Posted Thu Jun 25, 2015 7:44 PM

Coin-Op Forth was a pain in the ass. It cost me 8-bucks worth of quarters to run a large program!



#6 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • Topic Starter
  • 427 posts
  • Location:Geneva, IL

Posted Thu Jun 25, 2015 8:37 PM

Correct

 

Universe was written in Valforth. I have the manuals and disks for Valforth including extra libraries and yes I need to scan them and post



#7 ricortes OFFLINE  

ricortes

    Dragonstomper

  • 627 posts

Posted Fri Jun 26, 2015 9:12 AM

I think Forth still has it place, just that that place isn't in most* modern computers. We kind of went through this same discussion with Tiny BASIC. Forth was from a time when RAM was small and ROMs were expensive. There's still hardware out there that can benefit from a small memory footprint i.e. micro controllers. Important historically but the need and utility has changed. Even the microcontrollers have 8k to 512k of FLASH available. 



#8 Subby OFFLINE  

Subby

    Chopper Commander

  • 249 posts
  • Location:Atlanta

Posted Sun Jun 28, 2015 7:13 PM

Correct
 
Universe was written in Valforth. I have the manuals and disks for Valforth including extra libraries and yes I need to scan them and post

Jonny,
I scanned the docs already (although you might want to check and see if our versions are different), they are up on AtariMania and Atchive.org.
I have not been able to get the disks copied, that we would appreciate greatly!

#9 Savetz OFFLINE  

Savetz

    Stargunner

  • 1,003 posts
  • Location:Portland OR

Posted Sun Jun 28, 2015 8:54 PM

The 400/800 in-store demo was written in Forth.

 

Trivia: Boulder Dash was written in originally Forth but converted to assembly language before publication.



#10 Tempest OFFLINE  

Tempest

    Fallen Moderator

  • 27,124 posts
  • Location:Dark Places

Posted Sun Jun 28, 2015 9:10 PM

I also thought that the logic for the unreleased Atari pinball game 4x4 was done in Forth.

BTW thanks for the programmer names for DK jr, I'll make sure they get mentioned on my page. Was any part of the original programmers code used in the final game?

#11 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • Topic Starter
  • 427 posts
  • Location:Geneva, IL

Posted Mon Jun 29, 2015 6:22 AM

Jonny,
I scanned the docs already (although you might want to check and see if our versions are different), they are up on AtariMania and Atchive.org.
I have not been able to get the disks copied, that we would appreciate greatly!

 

not seeing docs on atarimania for ValForth..just seeing the entry and a disk is missing statement



#12 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • Topic Starter
  • 427 posts
  • Location:Geneva, IL

Posted Mon Jun 29, 2015 6:28 AM

 

not seeing docs on atarimania for ValForth..just seeing the entry and a disk is missing statement

 

ok seeing docs on archive.org - will compare against version I have

 

https://archive.org/...H_Documentation



#13 Subby OFFLINE  

Subby

    Chopper Commander

  • 249 posts
  • Location:Atlanta

Posted Mon Jun 29, 2015 7:00 AM

Yeah, that's the one I scanned. The scan quality is actually good, the originals are very uneven.
I would have sworn it was on AtariMania, I'll have to ask Alan about it.

Edited by Subby, Mon Jun 29, 2015 7:01 AM.


#14 unused0 OFFLINE  

unused0

    Combat Commando

  • 3 posts

Posted Fri Sep 15, 2017 11:34 PM

AtariLab Starter Edition was written in the Forth distributed by Atari, written by Calfee.



#15 Atari_Ace OFFLINE  

Atari_Ace

    Chopper Commander

  • 120 posts
  • https://ksquiggle.neocities.org/
  • Location:Seattle, WA

Posted Mon May 14, 2018 4:23 PM

AtariLab Starter Edition was written in the Forth distributed by Atari, written by Calfee.

 

That's interesting. I've been slowly recovering all the Forth definitions from the In-Store Demonstration cartridge, and having some other known Forth-developed carts should help me out.

 

Given then two Forth-developed cartridges, I decided to see if I could spot any others.  The core routine of Forth is the NEXT routine, which in fig-Forth and Coin-op Forth looks like:

803C: A0 01     NEXT    LDY #1
803E: B1 F8             LDA (IP),Y
8040: 85 FC             STA W+1
8042: 88                DEY
8043: B1 F8             LDA (IP),Y
8045: 85 FB             STA W
8047: 18                CLC
8048: A5 F8             LDA IP
804A: 69 02             ADC #2
804C: 85 F8             STA IP
804E: 90 02             BCC L54
8050: E6 F9             INC IP+1
8052: 4C FA 00  L54     JMP W-1

So I converted that to a regular expression pattern (below) and tested all the ROMs I have.

/(\xa0\x01\xb1.\x85.\x88\xb1.\x85.\x18\xa5.\x69\x02\x85.\x90.\xe6.\x4c..)/

Here are the results:

 

"Alien Garden (1982)(Epyx).car": Forth NEXT detected at 0059

"AtariLab Light Module (1984)(Atari).car": Forth NEXT detected at 002a

"AtariLab Temperature Module (1983)(Atari).car": Forth NEXT detected at 002a

"In-Store Demonstration (1980)(Atari).car": Forth NEXT detected at 004c

 

Sure enough, Alien Garden looks like it was at least partly developed in Forth, which I didn't know, but after doing some research it is mentioned in http://www.mobygames...me/alien-garden, using a Forth from Nautilus Systems.



#16 Stephen OFFLINE  

Stephen

    Quadrunner

  • 7,230 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Mon May 14, 2018 7:04 PM

Great use of a regular expression :)  I can't wait to share this with some of the guys at work tomorrow.



#17 tebe OFFLINE  

tebe

    Dragonstomper

  • 762 posts
  • Location:Poland

Posted Tue May 15, 2018 3:32 AM

AD-2044, Klątwa (Forth)

 

http://www.atarimani...age_12_8_G.html



#18 Atari_Ace OFFLINE  

Atari_Ace

    Chopper Commander

  • 120 posts
  • https://ksquiggle.neocities.org/
  • Location:Seattle, WA

Posted Tue May 15, 2018 12:24 PM

AD-2044, Klątwa (Forth)

 

http://www.atarimani...age_12_8_G.html

For utilites, there's also

 

http://www.atarimani...age_12_8_U.html

 

So I tried my regex against some atrs to see if it found any candidates not on those lists.  Here are some likely ones:

 

D-Bug by Electronic Arts

Jeepers Creepers by Quality Software

Match Wits by CBS Software

 

D-Bug is definitely in Forth, you can still see some of the Forth words in ASCII in the image.  The other two I'll need to do some additional investigation to verify.



#19 unused0 OFFLINE  

unused0

    Combat Commando

  • 3 posts

Posted Tue May 15, 2018 5:28 PM

 

Here are the results:

 

"AtariLab Light Module (1984)(Atari).car": Forth NEXT detected at 002a

That surprises me; I left the AtariLab project after the temperature module and was replaced by a team of hot-shot assembly programmers; as I understood it the plan was to drop Forth. I left a lot of good documentation, but I wrote the cross-compiler and was pretty much the only one who understood it, so I am wondering what they did.



#20 Atari_Ace OFFLINE  

Atari_Ace

    Chopper Commander

  • 120 posts
  • https://ksquiggle.neocities.org/
  • Location:Seattle, WA

Posted Tue May 15, 2018 7:02 PM

That surprises me; I left the AtariLab project after the temperature module and was replaced by a team of hot-shot assembly programmers; as I understood it the plan was to drop Forth. I left a lot of good documentation, but I wrote the cross-compiler and was pretty much the only one who understood it, so I am wondering what they did.

 

The first 600 bytes or so are definitely the start of a Forth (I can match many routines to the fig-Forth reference listing).  I'll do a more detailed decompilation later to see if that's just a remnant or if the code is largely Forth.



#21 dmsc OFFLINE  

dmsc

    Moonsweeper

  • 441 posts
  • Location:Viņa del Mar, Chile

Posted Wed May 16, 2018 9:23 PM

Hi!
 

That's interesting. I've been slowly recovering all the Forth definitions from the In-Store Demonstration cartridge, and having some other known Forth-developed carts should help me out.
 
Given then two Forth-developed cartridges, I decided to see if I could spot any others.  The core routine of Forth is the NEXT routine, which in fig-Forth and Coin-op Forth looks like:

803C: A0 01     NEXT    LDY #1
803E: B1 F8             LDA (IP),Y
8040: 85 FC             STA W+1
8042: 88                DEY
8043: B1 F8             LDA (IP),Y
8045: 85 FB             STA W
8047: 18                CLC
8048: A5 F8             LDA IP
804A: 69 02             ADC #2
804C: 85 F8             STA IP
804E: 90 02             BCC L54
8050: E6 F9             INC IP+1
8052: 4C FA 00  L54     JMP W-1
So I converted that to a regular expression pattern (below) and tested all the ROMs I have.
/(\xa0\x01\xb1.\x85.\x88\xb1.\x85.\x18\xa5.\x69\x02\x85.\x90.\xe6.\x4c..)/
.....


Good regex!

Run through my local copy of the holmes collection (skipped compilations):
 
dmsc@dmsc-laptop:$ LANG=C rgrep -P '\xa0\x01\xb1.\x85.\x88\xb1.\x85.\x18\xa5.\x69\x02\x85.\x90.\xe6.\x4c' 
Binary file Holmes.1/ATR Programs/Applications A-Z/Fastchip Translator.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Sherlock 0.2 -800b.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Diverse Utils.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Keyboard.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Super Duper Copier.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/The Bear Essentials.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/The Rotberg Marquee Program.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Headliner.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Synfile+ -800b.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Antic Forth 1.4s A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Menu to Binary.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Synfile+ 1.02 A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Fig Forth 1.1.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Rambrandt 2.0 A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Sherlock 2.3.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Rembrandt [alt ver.].atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Beginner Forth 1.0 -800b.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Synchron.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Multiboot Utilities 1.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Bob's Disk Editor [ED].atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Fig Forth 1.4S B.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Music Construction Set.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Fig Forth 1.4S A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Music Construction Set [alt].atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Financial Cookbook [crk].atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/QS Forth 1.0 -800b.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/US Doubler Super Mover.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Rambrandt A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Financial Cookbook.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/130XE One Pass Disk Copier.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Sherlock 1050 A.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/US Doubler 2 Drive Copier.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Midi Track III.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/US Doubler 1 Drive Copier.atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Bob's Disk Editor [DD].atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/SynPower XE (Syncalc-Synfile).atr matches
Binary file Holmes.1/ATR Programs/Applications A-Z/Antic Forth 1.4s B.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Tac Trek A.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/The Curse.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Racing Destruction Set [alt] A.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Sex Misj [pl] A.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Racing Destruction Set A.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Spellicopter A.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Worms.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Maniac Miner.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Match Wits.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Mule -osb.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Mule [alt].atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Universe Construction.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Universe Star.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Simulated Computer II.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Wladcy Ciemnosci.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Universe Flight1.atr matches
Binary file Holmes.1/ATR Games/Games M-Z/Murder On The Zinderneuf.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Blockbuster -osb.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Chopperoid.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Jeepers Creepers [alt].atr matches
Binary file Holmes.1/ATR Games/Games A-L/Arkanoid.atr matches
Binary file Holmes.1/ATR Games/Games A-L/D-Bug [fuzzysector43].atr matches
Binary file Holmes.1/ATR Games/Games A-L/Cyborg [pro] A.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Ad2044 Sexmisja A.atr matches
Binary file Holmes.1/ATR Games/Games A-L/D-Bug.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Abraxas-Assault On The Astral Rift A.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Cyborg A.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Cyborg [alt] A.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Ken Ustons Pro Blackjack 1.2.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Hard Hat Mack [clr alt].atr matches
Binary file Holmes.1/ATR Games/Games A-L/Axis Assassin [title].atr matches
Binary file Holmes.1/ATR Games/Games A-L/Electronic Organ -osb.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Creature Creator.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Klatwa -Polish.atr matches
Binary file Holmes.1/ATR Games/Games A-L/Jeepers Creepers.atr matches
Binary file Holmes.2/Programming/Forth/FORTHB.dcm matches
Binary file Holmes.2/Programming/Forth/FORTHA.dcm matches
Binary file Holmes.2/!Archived Files/Web - Mr Barcadi Files/Aura menues/AURA27.XFD matches
Binary file Holmes.2/!Archived Files/DCM Files/AD2044A.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/MULE_60K.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/SYNFILE.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/ASSAULTA.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/SEXMISJA.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/WLADCY.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/DBUG.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/RACNGDS1.DCM matches
Binary file Holmes.2/!Archived Files/DCM Files/KLATWA.DCM matches
Binary file Holmes.2/Atari Executables/w/Worms.exe matches
Binary file Holmes.2/Atari Executables/m/Maniacmi.exe matches
Binary file Holmes.2/Atari Executables/m/ManiacMiner.exe matches
Binary file Holmes.2/Atari Executables/k/Keyboard.exe matches
Binary file Holmes.2/Atari Executables/k/KeyboardOrgan.exe matches
Binary file Holmes.2/Atari Executables/a/AtariDealerDemo1980TextAltered.exe matches
Binary file Holmes.2/Atari Executables/j/Jeepersc.exe matches
Binary file Holmes.2/Atari Executables/j/JeepersCreepers.exe matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/Worms.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/AtariDealerDemo1980TextAltered.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/JeepersCreepers.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/Maniacmi.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/Keyboard.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/Jeepersc.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/ManiacMiner.xex matches
Binary file Holmes.2/XEX Files - Atari Executables/Games/KeyboardOrgan.xex matches
Binary file Holmes.3/BELLCOM/D009_B.ATR matches
Binary file Holmes.3/BELLCOM/D053_A.ATR matches
Binary file Holmes.3/BELLCOM/045.ATR matches
Binary file Holmes.3/BELLCOM/044.ATR matches
Binary file Holmes.3/HAPS/PDTO1000/PD0628B.ATR matches
Binary file Holmes.3/ACE/ACEC109B.ATR matches
Binary file Holmes.3/Aura/Aura Menu 27.atr matches
Binary file Holmes.3/Apx/APX20029.ATR matches
Binary file Holmes.3/Apx/APX20029-1.ATR matches
Binary file Holmes.3/C&T/137_A.ATR matches
Binary file Holmes.3/C&T/137_B.ATR matches
Binary file Holmes.3/C&T/044.ATR matches
Binary file Holmes.3/Belgium/019A.ATR matches
Binary file Holmes.3/Belgium/023A.ATR matches
Binary file Holmes.3/ABBUC/235_A.ATR matches
Binary file Holmes.3/ABBUC/220_A.ATR matches





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users