GithubHelp home page GithubHelp logo

stu / scottcom Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 83 KB

ScottCom - TI99 Scott Adams game compiler

License: GNU General Public License v3.0

Makefile 0.46% C 86.30% Yacc 13.23%

scottcom's Introduction

ScottCom v2.05 by Stu George Based on ScottCom by Bjorn Gustavsson

History

v2.05 : some date in the past

  • Uploading to github whatever crusty changes accumulated over the last N years.

v2.04 : 20070929

  • Fixed some error reporting that was bigger than an ancient buffer...
  • Switched build system from Makefile to rant
  • Removed parser.[ch] frmo repo and properly autogen with yacc

v2.03 : 20060603 - Unreleased branch + InProgress

  • Wrote a new grammar in GOLD thats a lot less error prone than the current gramar.
  • Cleaned up some compiler warnings and issues.

v2.02 : 20051115

  • Added flag output in verbose mode.
  • Fixed verb numbers when verbs are moved in dictionary
  • Stopped compiler from killing message 0
  • Added multi-depth try blocks 12 levels (Tested up to 12 on the TI99/4A)
  • Dictionary optimisation (using up the holes in the dictionary)
  • Verbose now outputs size of each code block action
  • Using verb synonym for verb in action block declaration now uses primary verb.
  • Using noun synonym for verb in action block declaration now uses primary noun.
  • First pass at a jEdit syntax highlight file.
  • HTMLised and updated the manual

v2.01 : 20050823

  • Fixed syntax printing

  • Now checks for duplicate messages (saves on message space.. since we can only have 181 messages.

  • room 0 is now defined with a name as rm_ZERO, where items go as storage, and saves you creating a room just for storage.. oops.. void does same thing..

  • Verbose (-v) now has more output

  • Changed max timers from 5 to 16

  • Fixed timer allocation timreg a1, a2; # creates 0 + 1 timreg a3; # creates a3 as 0!!!

    You now must define each timer on a separate line

    timreg a1; timreg a2; timreg a3;

  • Fixed room register allocation (same bug as timer allocation)

  • Internally we use ~ for cr/lf and | for embedded space. (not used in scott adams driver.. saves wasting messages for .nl )

  • Input can now take any extension, if no extension, looks for .apl

  • Output is now with the extension .fiad (works with ti99 emulators)

  • Fixed output name in story file to remove file extension and directories (eg: scottcom games/escape.apl makes the title "GAMES/ESCA" when you want ESCAPE)

  • Added 'end' command, so now you can end a routine without going to the end of the routine...

  • Increased the length of the verbs/nouns from 3-9 to 3-31.

Below here is Bjorns original readme

===============================================================================

ScottCom, version 2.00

(RCS ID: $Id: README,v 1.2 1996/10/17 05:53:07 bjorn Exp $)

ScottCom is a generator of adventure game files in the Scott Adams format. This release only supports the TI-99 version of that format, not the more common TRS-80 format.

ScottCom is NOT a new general-purpose interactive-fiction writing tool. If you simply intend to write an adventure, you should go for one of the modern compilers, such as Inform.

ScottCom is provided under the GNU General Public License. For further information, see the file COPYING.

Bug reports and suggestions can be sent to the address found below.

What you should know before use ScottCom

  • How to use a C compiler and make. If you can't compile it, you probably shouldn't use it.

  • Something about the Scott Adams format. If you are able to use ScottDec (by P.D. Doherty) and understand how a disassembled TRS-80 game works, you probably know enough.

Documentation

  • escape.apl is a miniature file giving som example of the syntax. To compile: scottcom escape.

  • MANUAL contains all conditions and actions with some explanations.

  • The XREF file maps from the names found in ScottDec (by P. D. Doherty) to the names used in the compiler.

Running game files

Game files generated by the compiler can be run:

  • On a TI-99 or emulator, provided you have the adventure module.

  • Converted by new versions of Scott2Zip to Inform source code. Version 2.00 of Scott2Zip might get uploaded to the if-archive within a near future. (Note that version 1.x of Scott2Zip found in the if-archive doesn't quiet work, for various subtle reasons.)

  • Run by an game interpreter which understands the TI-99 format. As far as I know, there is currently no such thing available in the if-archive. One might get uploaded within the near future.

History

I wrote the first version more than 10 years ago. That version tried to hide all the magic numbers inherent in the Scott Adams format (e.g. that item 9 always is the light source, that GO, GET, and DROP verbs must have certain numbers), but verbs had to be presented all at once, then nouns, items, rooms, actions etc in a fixed order, making the compiler simple but game writing difficult.

At the end of 1995 and the beginning of 1996, I did a considerable cleanup of both the C source code and the input game syntax itself. As as a result, declarations can be mixed in any order, so that you can keep everything needed for a puzzle in the same place in the source file.

Credits

Paul David Doherty, for advice and for some terms borrowed from ScottDec.

Bjorn Gustavsson [email protected]

scottcom's People

Contributors

stu avatar

Stargazers

 avatar kneehighspy avatar David Schweinsberg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.