mirror of
https://github.com/PDP-10/its.git
synced 2026-02-27 01:09:49 +00:00
Apple II Logo.
Written by: - Stephen L. Hain - Patrick G. Sobalvarro - Leigh L. Klotz.
This commit is contained in:
5
Makefile
5
Makefile
@@ -25,11 +25,12 @@ SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \
|
||||
tensor transl wgd zz graphs lmlib pratt quux scheme gsb ejs mudsys \
|
||||
draw wl taa tj6 budd sharem ucode rvb kldcp math as imsrc gls demo \
|
||||
macsym lmcons dmcg hack hibou agb gt40 rug maeda ms kle aap common \
|
||||
fonts zork 11logo kmp info
|
||||
fonts zork 11logo kmp info aplogo
|
||||
DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \
|
||||
chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \
|
||||
xfont maxout ucode moon acount alan channa fonts games graphs humor \
|
||||
kldcp libdoc lisp _mail_ midas quux scheme manual wp chess ms macdoc
|
||||
kldcp libdoc lisp _mail_ midas quux scheme manual wp chess ms macdoc \
|
||||
aplogo
|
||||
BIN = sys1 sys2 emacs _teco_ lisp liblsp alan inquir sail comlap c decsys \
|
||||
moon graphs draw datdrw fonts fonts1 fonts2 games macsym maint imlac \
|
||||
_www_ hqm
|
||||
|
||||
@@ -1160,6 +1160,13 @@ respond "*" ":plx143 /H/M/CL BIN,N CREF_SYSTEM,TYI,READ,EVAL,TURTLE,ZEND\r"
|
||||
respond "ASSSW=" "0\r"
|
||||
expect ":KILL"
|
||||
|
||||
# Apple II Logo
|
||||
respond "*" ":cwd aplogo\r"
|
||||
respond "*" ":cross\r"
|
||||
respond "*" "logo,logo=logo\r"
|
||||
respond "*" "\003"
|
||||
respond "*" ":kill\r"
|
||||
|
||||
# TENTH, toy Forth for KS10.
|
||||
respond "*" ":midas .; @ tenth_aap; tenth\r"
|
||||
expect ":KILL"
|
||||
|
||||
790
doc/aplogo/apldoc.1
Normal file
790
doc/aplogo/apldoc.1
Normal file
@@ -0,0 +1,790 @@
|
||||
New documentation for Apple Logo:
|
||||
|
||||
Switches and modes and who uses them:
|
||||
|
||||
DEFFLG Defining a Ufun if nonzero. Set by TO when it
|
||||
is called from an eval-buffer. When set, the
|
||||
EVLBUF loop conses lines onto the procedure
|
||||
definition DEFATM, unless the first token in
|
||||
the line is END. Reset by EXTDEF and REINIT.
|
||||
|
||||
DEFATM Atom (name) of Ufun currently being defined. Reset to nil by EXTDEF.
|
||||
Set by DEFSTP (called by TO). TO links DEFBOD to DEFATM, END tries
|
||||
to create a packed body and link it to DEFATM.
|
||||
|
||||
DEFBOD Body of Ufun currently being defined. Reset to nil by EXTDEF, REINIT.
|
||||
EDLINE appends ufun lines onto it. TO inits it to the arglist and links
|
||||
it to the DEFATM. END calls STUFF to try and create a packed body from
|
||||
it.
|
||||
|
||||
OTPFLG Type-outer-quotes if nonzero. Set during print-to-buffer mode,
|
||||
and elsewhere. TYPE prints outer funny-pname quotes if set.
|
||||
PONAME uses MAKE in place of IS if set. Reset by RSTIO, RSTIO1.
|
||||
|
||||
INPFLG Indicates eval-buffer mode if nonzero. POPLST won't print anything
|
||||
if set; EVLBUF exits eval-buffer mode if reset. EDDONE, SREAD set
|
||||
it. Various graphics and filing commands and END check it.
|
||||
|
||||
PRSFLG Indicates that the parser is running if nonzero. Used to lift node
|
||||
allocation limit. Parser sets and resets it when done; RSTIO, RSTIO1
|
||||
reset it. REQUEST sets it negative before calling the parser, so the
|
||||
parser will parse input as a list.
|
||||
|
||||
Sort-of-shared variables:
|
||||
|
||||
ERRRET Error handler routine address. Set to default by REINIT, and ERROR
|
||||
(which dispatches from prior setting). GARCOL sets to GCLERR at start,
|
||||
then resets to ERROR1 when done.
|
||||
|
||||
ERRY (Really ANSN3) Error code temporary, used between ERROR and ERROR1,
|
||||
so any ERRRET routines shouldn't bash it.
|
||||
|
||||
YSAV1 Very low-level temporary. Here's who uses it:
|
||||
CRUNP, CRUNP1, EDOUT, COUT (all for Y-reg temp.), HLINE
|
||||
(dot counter).
|
||||
|
||||
PLINE Index into parse-string. Used by the parser, PARSEL, EDIN (to set
|
||||
the point to the next line), GETLN.
|
||||
|
||||
How to add new primitives:
|
||||
|
||||
Index entry
|
||||
Primitive-table entry
|
||||
Primitive address entry
|
||||
|
||||
How to add new error messages:
|
||||
|
||||
Index entry
|
||||
Message-table entry
|
||||
Message text entry
|
||||
|
||||
Subroutines which hack flags:
|
||||
|
||||
RSTIO Resets INPFLG, OTPFLG, I/O device drivers, PRSFLG.
|
||||
Called by:
|
||||
EVLBUF (when finished evalling buffer)
|
||||
REINIT
|
||||
SYSBUG, DERROR, ERROR
|
||||
All Filing commands
|
||||
SETUP (monitor re-entry)
|
||||
GTPRV (line editor previous-line function)
|
||||
|
||||
RSTIO1 Resets OTPFLG, I/O device drivers, PRSFLG.
|
||||
Called by:
|
||||
PARSEL (parse a list, for RUN, REPEAT, and DEFINE).
|
||||
|
||||
EXTDEF Resets OTPFLG, DEFBOD, DEFATM.
|
||||
Called by:
|
||||
ERROR (except for XBRK)
|
||||
END
|
||||
|
||||
Graphics structure (shared variables, etc.)
|
||||
|
||||
I/O Structure (Drivers, interfaces, etc.)
|
||||
|
||||
Special variable usage:
|
||||
|
||||
MARK1: Parser
|
||||
PTFTXT
|
||||
UNSTUF
|
||||
CNSPDL
|
||||
LPUT, LIST, SE, DEFINE, TEXT, TO, TS
|
||||
|
||||
MARK2: UNSTUF
|
||||
WORD, LPUT, LIST, SE
|
||||
|
||||
MARK3: WORD, LPUT, SE
|
||||
|
||||
MARK4: WORD
|
||||
|
||||
NARG1: Parser
|
||||
Number-parsing
|
||||
Number-typing
|
||||
Arithmetic
|
||||
Number-passing
|
||||
Numerical conversions
|
||||
Arithmetic primitives
|
||||
|
||||
NARG2: Number-parsing
|
||||
Number-typing
|
||||
Arithmetic
|
||||
Number-passing
|
||||
Numerical conversions
|
||||
Arithmetic primitives
|
||||
|
||||
NARGX: Number-parsing
|
||||
Arctangent routine
|
||||
|
||||
A1L: Editor, Infix operations, Number-parsing
|
||||
A2L: Editor, Infix operations
|
||||
A3L: Editor, Infix operations
|
||||
A4L: Editor, Infix operations
|
||||
A5L: Graphics
|
||||
|
||||
Changes to make:
|
||||
|
||||
WORD should use MARK1-3 instead of MARK2-4
|
||||
Graphics/editor/music-only vars can use same p.z. locations
|
||||
(XSCR would be a real p.z. variable, then)
|
||||
|
||||
Old doc:
|
||||
|
||||
Reference Documentation for Apple-Logo Interpreter Source Code
|
||||
|
||||
Written by Stephen L. Hain, Patrick G. Sobalvarro, and Leigh L. Klotz
|
||||
Massachusetts Institute of Technology
|
||||
|
||||
(Program structure developed by
|
||||
the M.I.T. Logo Group)
|
||||
|
||||
|
||||
|
||||
List of Subroutines for Apple Logo interpreter:
|
||||
|
||||
DSPTYP Type in A, table in XY; dispatches off of type and table
|
||||
EDLINE Add line ILINE to current procedure definition
|
||||
MKSFUN Make system function entry A with pointer X
|
||||
|
||||
POPFRM Pops a frame, restoring bindings
|
||||
RSTBND Restores bindings of procedure from PDL
|
||||
|
||||
PUSHP Push X on PDL
|
||||
PUSH Push value/pointer XY on PDL
|
||||
PUSHB Push byte A on PDL
|
||||
VPUSH Push value/pointer XY on the VPDL
|
||||
VPUSHP Push X on the VPDL
|
||||
POP Pop X from PDL, don't change X
|
||||
VPOP Pop X from the VPDL, don't change X
|
||||
POPB Pop A from VPDL
|
||||
STKTS1 Tests for stack collision, if so error
|
||||
TSTPOL Tests for stack collision, if so error, else polls (POLL)
|
||||
POLL Polls for interrupts/buffer characters (except Pause)
|
||||
POLLZ Polls for interrupts/buffer characters, including Pause
|
||||
|
||||
GETVAL Get value from atom Y into X
|
||||
PUTVAL Put value X in binding Y
|
||||
GETFUN Get function A (NIL if not found) from object X, returning type in Y
|
||||
GETCFN GETFUN(FUNCT,CURTOK)
|
||||
GTCFN1 GETFUN(FUNCT,(X))
|
||||
GETPRC Get precedence in A of function X
|
||||
GETNGS Get number of args in A of function X
|
||||
INFIXP Return Carry Set if FUNCT infix, with index in A
|
||||
PTFTXT Put function text with text Y, atom X, and no. args A
|
||||
UNFUNC Delete function X
|
||||
UNFNC1 UNFUNC(ARG1)
|
||||
ERNAMS Erase all value bindings.
|
||||
ERPROS Erase all ufuns.
|
||||
|
||||
CONS Get new node pointer ANSN, with car Y, cdr X, and type A
|
||||
PUTTYP Put type A in node X
|
||||
GETTYP Get type of node X in A
|
||||
TYPACS Return the type of node TEMPNH (from the typebase, i.e. no Q,D,LATOMs)
|
||||
GETWDS Gets a pointer to a block of Y contiguous words in X (NIL if none)
|
||||
|
||||
GETULN Get uline X (NIL if comments) from body Y
|
||||
GETALN GETULN(ARGLST,FBODY)
|
||||
ULNADV Advance function line X
|
||||
GLNADV ULNADV(GOPTR)
|
||||
|
||||
GTNXTK Get NEXTOK from TOKPTR
|
||||
TTKADV Advance token pointer X (NIL if comments)
|
||||
TOKADV TTKADV(TOKPTR)
|
||||
TFKADV Advance token pointer X
|
||||
SKPPTH Skips past a token or parenthesized expression
|
||||
EXIFSC Skip an IF clause, returning with next token in X
|
||||
|
||||
DEFSTP Checks mode and argument token (error if not OK) for procedure definition
|
||||
EXTDEF Cleans up from edit mode
|
||||
|
||||
STUFF Associates function body X with atom A
|
||||
UNSTUF Unstuff Body of function X into Y
|
||||
|
||||
INTERN Intern string X, returning atom Y
|
||||
INTRNX Intern string X (known to be unique), returning atom Y
|
||||
|
||||
GETLEN Get number of elements of list Y in X
|
||||
GTLSTC Get last element of list X in X
|
||||
|
||||
PRTSTR Print string pointed to by XY
|
||||
LTYPE Type X, with A zero if toplevel brackets to be typed (for lists)
|
||||
TYPATM Types an atom for LTYPE
|
||||
TPSATM Types an Satom for LTYPE
|
||||
TYPFIX Type 2-byte fixnum X
|
||||
TPBFIX Type 4-byte fixnum NARG1
|
||||
TYPFLO Type flonum NARG1
|
||||
PRTPDL Type the string on the PDL of length ANSN1
|
||||
PONAMS Print out names
|
||||
PONAME Print out name for PONAMS
|
||||
POFUNS Print out procedures, titles only if A zero
|
||||
POFUN Print out function A, title only if X zero
|
||||
POFUNX Print out function A, title only if FULL zero
|
||||
|
||||
LODNUM Loads number pointed to by X into address X
|
||||
GETNUM Gets number and type A from X, returning Carry Clear if successful.
|
||||
GTNUM1 Gets number and type A from NARG1, returning Carry Clear if successful.
|
||||
GTNUM2 Gets number and type A from ARGSAV into NARG2, Carry clear if successful.
|
||||
GTNM2X Gets number and type A from NARG2, returning Carry Clear if successful.
|
||||
GT1NUM Gets a number NARG1 from the VPDL, else error, returns Carry Set if flonum
|
||||
GT1NMX Gets a number from NARG1, else error, returns Carry Set if flonum
|
||||
GT2NUM Gets two numbers NARG1 and NARG2 from VPDL, else error, coercing to real
|
||||
if not both integers, returns Carry Set if flonums
|
||||
GT1FIX Gets an integer NARG1 from the VPDL, else error
|
||||
GT2FIX Gets two integers NARG1, NARG2 from the VPDL, else error
|
||||
CHKINT Returns Carry Set if integer X is larger than two bytes; sign of A is sign of no.
|
||||
CHKPBN Returns Carry clear if integer is two bytes max. and positive, else carry set
|
||||
CHKPIN Returns Carry clear if integer is one byte max. and positive, else carry set
|
||||
ATMTNM Get number NARG1 from X
|
||||
ATMTNX Get number NARG1 from ANSN1
|
||||
GOBDIG Processes the next character for ATMTNM/NX.
|
||||
GTBOOL Checks if X is boolean, error if not, returns Y zero if TRUE
|
||||
MAKPNM Get pname Y from X
|
||||
GETPNM Get pname Y from atom X
|
||||
CNSPDL Makes String from PDL, given length ANSN1 and pointer in A
|
||||
CNSPD1 Makes String from PDL, given length ANSN1 and pointer on proc. stack (so JMP to only)
|
||||
|
||||
CVFIX Converts four-byte fixnum NARG1 to characters on PDL
|
||||
CVFIXX Used by CVFLO to get the exponent (like CVFIX)
|
||||
CVBFIX Converts two-byte fixnum X to characters on PDL
|
||||
CVFLO Converts flonum NARG1 to characters on PDL
|
||||
GTDECH Gets the next decimal digit for CVFLO
|
||||
GETINT Gets the next digit for GTDECH, CVFLO
|
||||
|
||||
OTFXS1 Output two-byte fixnum NARG1 to VPDL
|
||||
OTPFXS Output two-byte fixnum Y to VPDL
|
||||
OTPFL1 Output flonum NARG1 to VPDL
|
||||
OTPFX1 Output fixnum NARG1 to VPDL
|
||||
OTPFLO Output flonum Y to VPDL
|
||||
OTPFIX Output fixnum Y to VPDL
|
||||
|
||||
IMULT Multiply fixnums NARG1 and NARG2 (bashed), result in TEMPN,1, sets carry if overflow
|
||||
IDIVID Divide fixnum NARG1 by fixnum NARG2, result in NARG1
|
||||
XDIVID Divide pos. fix. NARG1 by pos. fix. NARG2, res. in NARG1, rem. in NARG2, A (low byte)
|
||||
OTPRG1 Output ARG1 to the PDL
|
||||
|
||||
PTRXOK Makes X suitable for ERROR (which should be called immediately)
|
||||
PTRYOK Makes Y suitable for ERROR (which should be called immediately)
|
||||
ERROR Error break of type A with optional args Y (first) and X (second)
|
||||
SYSBUG System Bug error, breaks to monitor, calling point in $00,$01
|
||||
|
||||
GARCOL Does a garbage-collect
|
||||
CLRMRK Clear all the mark bits in from Nodespace
|
||||
MARKA Mark contiguous area of size X pointed to by Y
|
||||
MARK Mark node X
|
||||
MARKX Mark node TEMPN
|
||||
SWAPT1 Swaps temporaries out for GARCOL
|
||||
SWAPT2 Swaps temporaries in for GARCOL
|
||||
|
||||
GETLIN Read a line into the LINARY and set PLINE
|
||||
PGTLIN Type the prompt in A, read a line into the LINARY and set PLINE
|
||||
PARSTR Parse a line starting at Y, with list pointer X, Y nonzero if error
|
||||
PRSLIN Parse a line starting at PLINE, with list pointer X, Y nonzero if error
|
||||
ALLSTC Allocates a new list cell for the parser
|
||||
POPLST Pops and discards the pushed list pointers for the parser
|
||||
SELFDL Returns Carry Set if A (returned same) is self-delimiter
|
||||
PARSEL Dump and reparse the list ARG1 to TOKPTR
|
||||
|
||||
Number utility routines:
|
||||
|
||||
CNUML0 Initializes pname-to-number processing
|
||||
CNUML1 Processes a new digit A of a pname-to-number, returns Carry clear if illegal
|
||||
CNUML2 Finishes processing a pname-to-number, returns Carry clear if overflow
|
||||
XN1TOY Transfer NARG1 to Y.
|
||||
XYTON1 Transfer Y to NARG1.
|
||||
XN2TOY Transfer NARG2 to Y.
|
||||
XYTON2 Transfer Y to NARG2.
|
||||
DIGITP Returns Carry Set if A is a digit
|
||||
NMROL1 Multiply NARG1 by 2.
|
||||
NMROR1 Divide NARG1 by 2.
|
||||
MULN10 Multiply flonum NARG1 by 10.
|
||||
FDVD10 Divide flonum NARG1 by 10.
|
||||
XDVDX Divide fixnum NARG1 by A.
|
||||
ADDDIG Add ascii digit A to fixnum NARG1.
|
||||
FADDIG Add ascii digit A to flonum NARG1, breaks out with Carry Clear if overflow.
|
||||
FADDGX Add ascii digit A to flonum NARG1, returns Carry Set if overflow.
|
||||
FADDGN Add numerical decimal (<1) digit A to flonum NARG1.
|
||||
ADDNUM Add fixnum A1L to fixnum NARG1.
|
||||
INCEXP Process an exponent character A.
|
||||
|
||||
Floating-point Arithmetic routines:
|
||||
FLOTN1 Make integer NARG1 floating-point.
|
||||
FLOTN2 Make integer NARG2 floating-point.
|
||||
XFLOAT Make positive integer NARG1 floating-point.
|
||||
INTN1 Make flonum NARG1 a fixnum, don't round
|
||||
XINTN1 Round up positive flonum NARG1 to a fixnum.
|
||||
RNDN1 Make flonum NARG1 a fixnum (rounds), error if overflow
|
||||
RNDN2 Make flonum NARG2 a fixnum (rounds), error if overflow
|
||||
SWAP Swap NARG1 and NARG2.
|
||||
FADD Floating point add, NARG1 gets NARG1 + NARG2.
|
||||
FSUB Floating point subtract, NARG1 gets NARG1 - NARG2
|
||||
FSUBX Floating point subtract, NARG1 gets NARG2 - NARG1.
|
||||
FMUL Floating point multiply, NARG1 gets NARG1 * NARG2.
|
||||
FDIV Floating point divide, NARG1 gets NARG1/NARG2.
|
||||
FDIVX Floating point divide, NARG1 gets NARG2/NARG1.
|
||||
XDIVID Integer divide, NARG1 gets NARG1/NARG2.
|
||||
COMPL Complements fixnum X.
|
||||
FCOMPL Complements flonum NARG1.
|
||||
|
||||
Screen Editor/Filing routines:
|
||||
CHGSTP Checks mode and argument for screen editor and dispatches to proper set-up
|
||||
routine (error if not OK) CHGNON, CHGNEW, or CHGOLD.
|
||||
CHGIN1 Initialize buffer-filling.
|
||||
CHGIN2 Initialize screen and editor.
|
||||
CHGIN3 Display buffer and call editor top-loop.
|
||||
CHGOLD Starts screen editor with a procedure in the buffer.
|
||||
CHGNEW Starts screen editor with TO definition line in buffer.
|
||||
CHGNON Starts screen editor with an empty buffer.
|
||||
INCPNT Increments the point
|
||||
DECPNT Decrements the point
|
||||
PNTBEG Sets the point to beginning of buffer
|
||||
TOPSCR Sets cursor at top left of screen.
|
||||
CHGLOP Top level screen editor loop.
|
||||
EDOUT Set up to output character A to buffer.
|
||||
EDSPBF Display page of buffer from point on.
|
||||
EDDONE Evaluates edit buffer and returns to Logo.
|
||||
CHGNYM Displays "Apple Logo Screen Editor" indicator.
|
||||
|
||||
DOSSTP Initializes DOS and tells it to listen to our output.
|
||||
STDERR Tells DOS that error-return routine is DERROR.
|
||||
SAPOUT Tells DOS to listen to our output.
|
||||
DOSEAT Internal DOS subroutine which initializes output-listening.
|
||||
DERROR Gives appropriate filing error.
|
||||
DTPATM Type atom ARG1 coded for DOS.
|
||||
DPRLEN Type buffer length as DOS-coded hexadecimal digits.
|
||||
|
||||
Temporary Variable Usage Table:
|
||||
|
||||
Routines which use no temporary variables:
|
||||
|
||||
CHKINT
|
||||
COMPL
|
||||
DIGITP
|
||||
EXTDEF
|
||||
GTNXTK
|
||||
POLL
|
||||
POLLZ
|
||||
POP
|
||||
POPB
|
||||
PUSH
|
||||
PUSHB
|
||||
PUSHP
|
||||
TSTPOL
|
||||
TSTSTK
|
||||
VPOP
|
||||
VPUSH
|
||||
VPUSHP
|
||||
(All Monitor Routines)
|
||||
|
||||
First-level Routines:
|
||||
|
||||
GETLEN TNH TN
|
||||
GETNGS TNH
|
||||
GETPRC TNH
|
||||
GETTYP TNH
|
||||
GETULN TNH
|
||||
GETVAL TNH
|
||||
GTLSTC AN TNH
|
||||
INFIXP TNH
|
||||
PRTPDL CCOUNT
|
||||
PRTSTR TNH
|
||||
PUTTYP TNH
|
||||
PUTVAL TNH
|
||||
TFKADV TNH
|
||||
TTKADV TNH
|
||||
TYPACS TNH
|
||||
ULNADV TNH
|
||||
UNFUNC TNH
|
||||
|
||||
Second-level Routines:
|
||||
|
||||
CONS AN TNH
|
||||
PUTTYP: TNH
|
||||
DEFSTP RG1
|
||||
GETTYP: TNH
|
||||
TTKADV: TNH
|
||||
GETFUN AN TN
|
||||
GETTYP: TNH
|
||||
PUTFUN AN AN1 TNH
|
||||
GETTYP: TNH
|
||||
|
||||
Third-level Routines:
|
||||
|
||||
CNSPDL: AN1 TN MK1
|
||||
CONS: AN TNH
|
||||
CNSPD1: AN1 TN MK1
|
||||
CONS: AN TNH
|
||||
EDLINE TN TN1
|
||||
CONS: AN TNH
|
||||
UNSTUF AN1 TNH TN TN1 TN2 TN3 TN4
|
||||
GETTYP: TNH
|
||||
PUTTYP: TNH
|
||||
CONS: AN TNH
|
||||
|
||||
Sixth-level Routines:
|
||||
|
||||
GTBOOL AN1 TX1
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
|
||||
Seventh-level Routines:
|
||||
|
||||
POFUN AN1 AN4 TN6 TN7 TN8 TX1
|
||||
GETFUN: AN TNH TN
|
||||
PRTSTR: TNH
|
||||
GETTYP: TNH
|
||||
LTYPE: AN AN1 AN2 AN3 TNH TN TN1 TN4 TN5 NG1 NG2 A1L A2L MK1
|
||||
POFUNX AN1 AN4 TN6 TN7 TN8 TX1
|
||||
GETFUN: AN TNH TN
|
||||
PRTSTR: TNH
|
||||
GETTYP: TNH
|
||||
LTYPE: AN AN1 AN2 AN3 TNH TN TN1 TN4 TN5 NG1 NG2 A1L A2L MK1
|
||||
PONAME TN7
|
||||
GETVAL: TNH
|
||||
GETTYP: TNH
|
||||
PRTSTR: TNH
|
||||
LTYPE: AN AN1 AN2 AN3 TNH TN TN1 TN4 TN5 NG1 NG2 A1L A2L MK1
|
||||
|
||||
Eighth-level Routines:
|
||||
|
||||
GETNUM AN1 TNH NG1
|
||||
GETTYP: TNH
|
||||
ATMTNX: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GTNUM1 AN1 TNH NG1
|
||||
GETTYP: TNH
|
||||
ATMTNX: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
POFUNS AN4 TX2
|
||||
POFUNX: AN AN1 AN2 AN3 AN4 TNH TN TN1 TN4 TN5 TN6 TN7 TN8 TX1 NG1 NG2 A1L A2L MK1
|
||||
PONAMS TN6 TN8
|
||||
PONAME: AN AN1 AN2 AN3 TNH TN TN1 TN4 TN5 TN7 NG1 NG2 A1L A2L MK1
|
||||
|
||||
Ninth-level Routines:
|
||||
|
||||
GTNUM2 TX1 NG2 A3L A4L
|
||||
GETNUM: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GT1FIX GETNUM: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
RNDN1: AN TNH TN NG1 NG2
|
||||
GT1NUM NG1
|
||||
GTNUM1: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GT1NMX GTNUM1: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
|
||||
Tenth-level Routines:
|
||||
|
||||
GT2FIX TX1 NG1
|
||||
RNDN1: AN TNH TN NG1 NG2
|
||||
RNDN2: AN TNH TN NG1 NG2
|
||||
GETNUM: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GTNUM2: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GT2NUM AN3 TX2 NG1
|
||||
FLOTN1: NG1
|
||||
FLOTN2: NG1 NG2
|
||||
GETNUM: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
GTNUM2: AN AN1 AN2 TNH TN TN1 TN4 TN5 TN6high TX1low NG1 NG2 NGX A1L A2L MK1
|
||||
|
||||
Bottom-level Routines (not called as subroutines):
|
||||
|
||||
AL2 ANSN
|
||||
ARGLOP ANSN
|
||||
EVAL TEMPN (GETVAL: )
|
||||
EVLINE TEMPN (GETTYP: ) (TTKADV: )
|
||||
EVWRAP ANSN2 (TTKADV: )
|
||||
INITLZ TEMPN (CLRMRK: )
|
||||
SBOTH ANSN1 (GTBOOL: ANSN)
|
||||
SBTFST ANSN1* TEMPN* TEMPN1* TEMPN2* (CONS: ANSN) (GETTYP: ) (INTERN: ANSN ANSN1 ANSN2 TEMPN
|
||||
TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4)
|
||||
SBTLST ANSN1* ANSN2* TEMPN* TEMPN1* TEMPN2* TEMPN5 (CONS: ANSN) (GETTYP: ) (INTERN: ANSN
|
||||
ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2
|
||||
ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
SDEFIN TN1 TN2 TN3 TN5 RG1 RG2
|
||||
GETTYP: TNH
|
||||
CONS: AN TNH
|
||||
UNFUNC: TNH
|
||||
STUFF: AN AN1 AN2 AN3 AN4 TNH TN TN1 TN2 TN3 TN4 TN5 TN6 TN7 TN8 TX1 TX2
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
SDIF TEMPN1* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(OTPNUM: ANSN TEMPN)
|
||||
SDIVID ANSN* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6) (OTPNUM: ANSN TEMPN) (XDIVID: TEMPN TEMPN1)
|
||||
SEDIT TEMPN1* TEMPN5* TEMPX1 (DEFSTP: ) (GETFUN: ANSN TEMPN) (GETLEN: TEMPN)
|
||||
(PTFTXT: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6
|
||||
TEMPN7 TEMPN8) (UNSTUF: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
SEITHR ANSN1 (GTBOOL: ANSN)
|
||||
SELSE TEMPN2 (EXIFSC: ANSN ANSN1 TEMPN TEMPN1)
|
||||
SEQUAL ANSN* ANSN1* TEMPN7 TEMPN8 (GETNUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4
|
||||
TEMPN5 TEMPN6) (GETTYP: )
|
||||
SFIRST TEMPN5* TEMPN6 (CONS: ANSN) (GETTYP: ) (INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3
|
||||
TEMPN4)
|
||||
SGO TEMPN TEMPN1 (GETTYP: ) (GTTULN: ) (PUTTYP: ) (TTKADV: ) (ULNADV: )
|
||||
SLAST TEMPN* (CONS: ANSN) (GETTYP: ) (GTLSTC: ANSN) (INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4)
|
||||
SLPUT TEMPN TEMPN1 TEMPN2 (CONS: ANSN) (GETTYP: )
|
||||
SNODES TEMPN1 (OTPNUM: ANSN TEMPN)
|
||||
SPO TEMPN1* (GETFUN: ANSN TEMPN) (GETTYP: ) (POFUNS: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8 TEX1 TEMPX2) (PONAMS: ANSN TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8) (POTEXT: ANSN ANSN1 ANSN2 TEMPN
|
||||
TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8 TEMPX1) (TTKADV: )
|
||||
SPROD ANSN* TEMPN1* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4
|
||||
TEMPN5 TEMPN6) (OTPNUM: ANSN TEMPN)
|
||||
SREAD1 TEMPN (GETTYP: )
|
||||
SSUM TEMPN1* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(OTPNUM: ANSN TEMPN)
|
||||
STEXT TEMPN1* TEMPN2* TEMPN5 TEMPN6 (CONS: ANSN) (GETFUN: ANSN TEMPN) (GETTYP: )
|
||||
(UNSTUF: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
STITLE ANSN1* TEMPN* TEMPN1 TEMPN2 TEMPN3 (GETFUN: ANSN TEMPN) (GETTYP: ) (PUTFUN: ANSN ANSN1)
|
||||
(UNFUNC: ANSN)
|
||||
STO TEMPX1 TEMPX2 (CONS: ANSN) (EDTSTP: ) (EXTEDT: ) (GETFUN: ANSN TEMPN) (GETTYP: )
|
||||
(PTFTXT: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6
|
||||
TEMPN7 TEMPN8) (TFKADV: )
|
||||
STRCBK ANSN1 TEMPN6 TEMPN7 TEMPN8 TEMPX1 TEMPX2
|
||||
(LTYPE: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
SWORD ANSNX TEMPN6 (CONCAT: ANSN ANSN1 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(COPY: ANSN1 TEMPN TEMPN1 TEMPN2 (CONS: ANSN))
|
||||
(CONCAT: ANSN1* TEMPN* TEMPN1* TEMPN3 TEMPN4 TEMPN5 (GTLSTC: ANSN)
|
||||
(COPY: ANSN ANSN1 TEMPN TEMPN1 TEMPN2))
|
||||
(INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
TOPLOP TEMPN (GETTYP: )
|
||||
XSFNCL TEMPN
|
||||
XTAIL TEMPN2 TEMPN3 TEMPN4 TEMPN5 (GETVAL: ) (GTTULN: ) (INCVSP:) (PTRDEC: TEMPN5)
|
||||
(INCVSP: )
|
||||
(PTRDEC: TEMPN5)
|
||||
(PTVTST: TEMPN5)
|
||||
(STPTR1: TEMPN5)
|
||||
(PTVTST: TEMPN5) (PUTVAL: ) (STPTR1: TEMPN5) (TTKADV: )
|
||||
XUFNCL TEMPN TEMPN1 TEMPN2 TEMPN5 (GETVAL: ) (GETTYP: ) (GTTULN: ) (INCVSP:)
|
||||
(PTRDEC: TEMPN5) (PTVTST: TEMPN5) (PUTVAL: )
|
||||
(STPTR1: TEMPN5) (TTKADV: )
|
||||
GARCOL ANSN1 TEMPN* TEMPN3 TEMPN4 (CLRMRK: ) (MARK: ANSN TEMPN TEMPN1 TEMPN2) (MARKA: TEMPN)
|
||||
(TYPACS: ) (MARKX: ANSN TEMPN TEMPN1 TEMPN2)
|
||||
MARK ANSN TEMPN TEMPN1 TEMPN2 (TYPACS: )
|
||||
MARKX "
|
||||
MARKA TEMPN (TYPACS: )
|
||||
CLRMRK TNH
|
||||
SOBST1 TEMPN (PUTTYP: )
|
||||
REINIT ANSN* ANSN2* ANSN3 TEMPN* TEMPN1* TEMPN2* TEMPN3 (CONS: ANSN)
|
||||
(INTRNX: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2) (MKSFUN: ANSN TEMPN1) (SOBST1: TEMPN)
|
||||
(MKSFUN: TEMPN1 (CONS: ANSN))
|
||||
(SOBST1: TEMPN)
|
||||
|
||||
Parser:
|
||||
|
||||
ALLSTC TN TX2 MK1
|
||||
POPLST TN1 TN8
|
||||
SELFDL AN3 TN4high TN7high TN8
|
||||
GETLIN AN3 AN4 TN TN1 TN2 TN4high TN5 TN6 TN7high TN8 TX1 TX2 MK1
|
||||
POPLST: TN1 TN8
|
||||
ALLSTC: TN TX2 MK1
|
||||
SELFDL: AN3 TN4high TN7high TN8
|
||||
CONS: AN TNH
|
||||
PRTSTR: TNH
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML1: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
PUTTYP: TNH
|
||||
PARSTR AN3 AN4 TN TN1 TN2 TN4high TN5 TN6 TN7high TN8 TX1 TX2 MK1
|
||||
POPLST: TN1 TN8
|
||||
ALLSTC: TN TX2 MK1
|
||||
SELFDL: AN3 TN4high TN7high TN8
|
||||
CONS: AN TNH
|
||||
PRTSTR: TNH
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML1: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
PUTTYP: TNH
|
||||
PGTLIN AN3 AN4 TN TN1 TN2 TN4high TN5 TN6 TN7high TN8 TX1 TX2 MK1
|
||||
POPLST: TN1 TN8
|
||||
ALLSTC: TN TX2 MK1
|
||||
SELFDL: AN3 TN4high TN7high TN8
|
||||
CONS: AN TNH
|
||||
PRTSTR: TNH
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML1: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
PUTTYP: TNH
|
||||
PRSLIN AN3 AN4 TN TN1 TN2 TN4high TN5 TN6 TN7high TN8 TX1 TX2 MK1
|
||||
POPLST: TN1 TN8
|
||||
ALLSTC: TN TX2 MK1
|
||||
SELFDL: AN3 TN4high TN7high TN8
|
||||
CONS: AN TNH
|
||||
PRTSTR: TNH
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML1: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
INTERN: AN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
PUTTYP: TNH
|
||||
|
||||
Number-parsing routines:
|
||||
|
||||
SWAP NG1 NG2
|
||||
MULN10 NG2
|
||||
FMUL: AN TNH TN NG1 NG2
|
||||
FDVD10: NG2
|
||||
FDIV: AN TNH TN NG1 NG2
|
||||
FADDGN NG1 NG2 NGX A1L A2L
|
||||
MULN10: AN TNH TN NG1 NG2
|
||||
FLOTN2: NG1 NG2
|
||||
FDIVX: AN TNH TN NG1 NG2
|
||||
FADDGX NG2
|
||||
FLOTN2: NG1 NG2
|
||||
FADD: AN TNH TN NG1 NG2
|
||||
FADDIG FADDGX: AN TNH TN NG1 NG2
|
||||
CNUML0 TN5 TN6high TX1low NG1
|
||||
CNUML2 TN5 TN6high TX1low NG1 NGX A1L A2L
|
||||
MULN10: AN TNH TN NG1 NG2
|
||||
FDIVX: AN TNH TN NG1 NG2
|
||||
FMUL: AN TNH TN NG1 NG2
|
||||
CNUML1 TN5 TN6high TX1low A1L A2L
|
||||
NMROL1: NG1
|
||||
ADDNUM: NG1 A1L A2L
|
||||
ADDDIG: NG1
|
||||
NMROR1: NG1
|
||||
FLOTN1: NG1
|
||||
MULN10: AN TNH TN NG1 NG2
|
||||
FADDIG: AN TNH TN NG1 NG2
|
||||
FADDGN: AN TNH TN NG1 NG2 NGX A1L A2L
|
||||
INCEXP: TX1low
|
||||
FMDC1: NGX
|
||||
|
||||
Arithmetic routines:
|
||||
|
||||
XDIVID TN TN1 NG1 NG2 A1L A2L
|
||||
XDVDX TN TN1 NG1 NG2 A1L A2L
|
||||
FADD1 AN TNH TN NG1 NG2
|
||||
FCOMPL NG1
|
||||
FDIVD AN TNH TN NG1 NG2
|
||||
FMULT AN TNH TN NG1 NG2
|
||||
FSUB1 AN TNH TN NG1 NG2
|
||||
FADD FADD1: AN TNH TN NG1 NG2
|
||||
FDIV SWAP: NG1 NG2
|
||||
FDIVD: AN TNH TN NG1 NG2
|
||||
FDIVX FDIVD: AN TNH TN NG1 NG2
|
||||
FLOTN1 NG1
|
||||
FCOMPL: NG1
|
||||
FLOTN2 SWAP: NG1 NG2
|
||||
FLOTN1: NG1
|
||||
FMUL FMULT: AN TNH TN NG1 NG2
|
||||
FSUB SWAP: NG1 NG2
|
||||
FSUB1: AN TNH TN NG1 NG2
|
||||
FSUBX FSUB1: AN TNH TN NG1 NG2
|
||||
INTN1 AN NG1
|
||||
FCOMPL: NG1
|
||||
XINTN1 NG2
|
||||
FADD: AN TNH TN NG1 NG2
|
||||
INTN1: AN NG1
|
||||
RNDN1 NG1
|
||||
FCOMPL: NG1
|
||||
XINTN1: AN TNH TN NG1 NG2
|
||||
RNDN2 SWAP: NG1 NG2
|
||||
RNDN1: AN TNH TN NG1 NG2
|
||||
|
||||
Stuffing routines:
|
||||
|
||||
GETWDS AN AN1 AN2 TNH TN TN1 TN2 TN3 TN4
|
||||
PTFTXT AN3 AN4 TNH TN5 TN6 TN7 TN8
|
||||
GETTYP: TNH
|
||||
GETWDS: AN AN1 AN2 TNH TN TN1 TN2 TN3 TN4
|
||||
PUTTYP: TNH
|
||||
STUFF AN3 AN4 TNH TN TN1 TN3 TN5 TN6 TN7 TX1 TX2
|
||||
GETLEN: TNH TN
|
||||
GETWDS: AN AN1 AN2 TNH TN TN1 TN2 TN3 TN4
|
||||
PUTTYP: TNH
|
||||
PTFTXT: AN AN1 AN2 AN3 AN4 TNH TN TN1 TN2 TN3 TN4 TN5 TN6 TN7 TN8
|
||||
|
||||
Number-printing routines:
|
||||
|
||||
CVFIX AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
CVFIXX AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
CVBFIX AN AN1 NG1
|
||||
XDVDX: TN TN1 NG1 NG2 A1L A2L
|
||||
GETINT TN1 NG1
|
||||
GTDECH AN1 TN1 NG2
|
||||
FSUB: AN TNH TN NG1 NG2
|
||||
FLOTN2: NG1 NG2
|
||||
MULN10: AN TNH TN NG1 NG2
|
||||
CVFLO AN1 AN2 AN3 TN1 NG1
|
||||
FCOMPL: NG1
|
||||
FADD: AN TNH TN NG1 NG2
|
||||
MULN10: AN TNH TN NG1 NG2
|
||||
FDVD10: AN TNH TN NG1 NG2
|
||||
GETINT: TN1 NG1
|
||||
GTDECH: AN AN1 TNH TN TN1 NG1 NG2
|
||||
CVFIXX: AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
TPBFIX CVBFIX: AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
PRTPDL: AN1
|
||||
TYPFIX CVFIX: AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
PRTPDL: AN1
|
||||
TYPFLO CVFLO: AN AN1 AN2 AN3 TNH TN TN1 NG1 NG2 A1L A2L
|
||||
PRTPDL: AN1
|
||||
|
||||
General typeout routines:
|
||||
|
||||
TPSATM AN TN5
|
||||
TYPATM AN TNH TN5
|
||||
GETPNM: AN AN1 TNH TN TN1 MK1
|
||||
LTYPE TN4 TN5 NG1
|
||||
GETTYP: TNH
|
||||
TYPATM: AN TNH TN TN1 TN5 MK1
|
||||
TPSATM: AN TN5
|
||||
TPBFIX: AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
TYPFLO: AN AN1 AN2 AN3 TNH TN TN1 NG1 NG2 A1L A2L
|
||||
|
||||
Semi-dedicated primitive routines:
|
||||
|
||||
ERNAMS TN TN1 TN2
|
||||
PUTVAL: TNH
|
||||
ERPROS TN TN1
|
||||
UNFUNC: TNH
|
||||
|
||||
Pname routines:
|
||||
|
||||
GETPNM TNH TN TN1
|
||||
GETTYP: TNH
|
||||
CONS: AN TNH
|
||||
CNSPDL: AN AN1 TNH TN MK1
|
||||
MAKPNM AN1 AN2 TNH NG1
|
||||
GETTYP: TNH
|
||||
GETPNM: AN AN1 TNH TN TN1 MK1
|
||||
CVBFIX: AN AN1 TN TN1 NG1 NG2 A1L A2L
|
||||
CVFLO: AN AN1 AN2 AN3 TNH TN TN1 NG1 NG2 A1L A2L
|
||||
CNSPD1: AN AN1 TNH TN MK1
|
||||
|
||||
Interning routines:
|
||||
|
||||
INTRNX AN2 TN1
|
||||
CONS: AN TNH
|
||||
INTERN AN1 AN2 TNH TN TN1 TN2 TN4 TN5
|
||||
CONS: AN TNH
|
||||
GETPNM: AN AN1 TNH TN TN1 MK1
|
||||
INTRNX: AN2 TNH TN1
|
||||
|
||||
Frame-popping routines:
|
||||
|
||||
RSTBND AN TN TN1
|
||||
PUTVAL: TNH
|
||||
POPFRM RSTBND: AN TNH TN TN1
|
||||
|
||||
If-then routines:
|
||||
|
||||
EXIFSC AN1 TN1
|
||||
TTKADV: TNH
|
||||
SKPPTH AN TN
|
||||
TTKADV: TNH
|
||||
|
||||
Atom-to-number routines:
|
||||
|
||||
GOBDIG CNUML1: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
ATMTNM AN1 AN2 TN4 TN7 NG1
|
||||
FCOMPL: NG1
|
||||
GETPNM: AN AN1 TNH TN TN1 MK1
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
GOBDIG: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
ATMTNX AN1 AN2 TN4 TN7 NG1
|
||||
FCOMPL: NG1
|
||||
GETPNM: AN AN1 TNH TN TN1 MK1
|
||||
CNUML0: TN5 TN6high TX1low NG1
|
||||
CNUML2: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
GOBDIG: AN TNH TN TN5 TN6high TX1low NG1 NG2 NGX A1L A2L
|
||||
14
doc/aplogo/apple.help
Normal file
14
doc/aplogo/apple.help
Normal file
@@ -0,0 +1,14 @@
|
||||
LOGO BOOT DISK:
|
||||
|
||||
1. Boot DOS 3.2.1 Master, as normally done
|
||||
2. Enter monitor
|
||||
3. do 9E42: 34<cr> (Should print out 06) to tell DOS to do BRUN instead of RUN on boot.
|
||||
4. do 3D0G<cr> (Enters BASIC)
|
||||
5. Type in 1 END or somesuch dummy program.
|
||||
6. Type INIT LOGO with any otpions desired (Volume, Drive, etc.). Do not type <cr>.
|
||||
7. Put in blank disk that you want to be LOGO Boot disk.
|
||||
8. Press <cr> to initialize new disk.
|
||||
9. Do DELETE LOGO to delete BASIC dummy program.
|
||||
10. Do BSAVE LOGO with specified adresses.
|
||||
|
||||
Booting the Boot disk will now run LOGO automatically.
|
||||
510
doc/aplogo/doc.187
Normal file
510
doc/aplogo/doc.187
Normal file
@@ -0,0 +1,510 @@
|
||||
Reference Documentation for Apple-Logo Assembly Code
|
||||
|
||||
Written by Stephen L. Hain and Patrick G. Sobalvarro
|
||||
Massachusetts Institute of Technology
|
||||
|
||||
(Program structure developed by
|
||||
the M.I.T. LOGO Group)
|
||||
|
||||
|
||||
CORRECTIONS and ADDITIONS:
|
||||
|
||||
BUGS: Garbage collection with recursive WORDs
|
||||
Filing system w/numbers, end of file.
|
||||
(SAVE gives I/O error w/out spinning disk)
|
||||
(READ shouldn't clear screen)
|
||||
Overly large integers crash (9999999999999 etc.)
|
||||
Boolean args of SETT don't work.
|
||||
|
||||
Fix unary minus parsing in lists.
|
||||
|
||||
Put in a line-oriented editor, and make the toplevel editor a subsection.
|
||||
(Line editor bugs: ^D, insert with multiple screen lines)
|
||||
|
||||
Put in TTYP, XORMODE, pencolors.
|
||||
|
||||
Fix turtle out-of-bounds conditioning.
|
||||
|
||||
Put in OBLIST collection of garbage (no bindings, not pointed to). (??)
|
||||
|
||||
Improve color graphics lines.
|
||||
|
||||
Put in advanced arithmetic functions.
|
||||
|
||||
Get rid of line numbers, period! (Except dummy numbers for CHANGE.)
|
||||
(Get rid of line numbers in error messages)
|
||||
|
||||
Make CARs, CDRs macros or subroutines.
|
||||
|
||||
STORAGE and INDEX PARAMETERS:
|
||||
|
||||
SYSTAB (Ptr. to first Systable entry)
|
||||
ERRTBL (Ptr. to start of Error-table)
|
||||
PRMTAB (Ptr. to first Primitive-table entry)
|
||||
VPRMTB (Ptr. to first V-Primitive-table entry)
|
||||
VPRMTE (Ptr. to byte after V-Primitive-table)
|
||||
|
||||
Primitive-table format: 16 bytes/entry maximum, each terminated by a space
|
||||
SFINDEX NARGS PREC L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11
|
||||
(Abbreviations use a separate entry)
|
||||
|
||||
V-Primitive-table format: 3 bytes/entry
|
||||
INDEX VARNAM INSTANCE (VARNAM is a pointer to the Variable pointer)
|
||||
|
||||
Error-table format:
|
||||
$FF terminates
|
||||
$00 indicates "LTYPE (<Second argument to ERROR>)"
|
||||
$01 indicates "LTYPE (<Third argument to ERROR>)"
|
||||
Anything else is printed as an Ascii character
|
||||
|
||||
Type-table Format:
|
||||
1 Node per byte:
|
||||
Bits 0-6: Type code
|
||||
Bits 7: Mark bit (assumed 0 before and after G.C.)
|
||||
|
||||
Argument passing table for APPLE LOGO:
|
||||
|
||||
(X,Y or A indicates that the page zero address of the argument is in
|
||||
that register. XY indicates that registers X and Y hold a sixteen
|
||||
bit address. "vN" indicates that register N holds an absolute
|
||||
value, "vXY" indicates that registers X and Y hold a sixteen bit
|
||||
absolute value. "vMMM" indicates that the variable MMM holds the
|
||||
value, while "MMM" indicates that the variable MMM holds a pointer
|
||||
to the value. For input-output designations of parameters, see the PLOGO
|
||||
listing. Sixteen-bit values stored in XY have low-byte in X, high-byte
|
||||
in Y.)
|
||||
|
||||
|
||||
CHKLNN Returns typecode of TOKPTR
|
||||
EDLINE Add line X to current procedure definition, Y nonzero for default line number
|
||||
MKSFUN Make system function entry vA with pointer X
|
||||
|
||||
POPFRM Pops a frame, restoring bindings
|
||||
RSTBND Restores bindings of procedure from PDL
|
||||
|
||||
PUSHP Push X on PDL
|
||||
PUSH Push value/pointer vXY on PDL
|
||||
VPUSH Push value/pointer vXY on the VPDL
|
||||
VPUSHP Push X on the VPDL
|
||||
POP Pop X from PDL
|
||||
VPOP Pop X from the VPDL
|
||||
POPB Pop vA from VPDL
|
||||
STKTS1 Tests for stack collision, if so error
|
||||
STKTST Tests for stack collision, if so error, else polls for interrupts/buffer
|
||||
STPPEK Polls for interrupts/buffer
|
||||
|
||||
GETVAL Get value from atom Y into X
|
||||
PUTVAL Put value X in binding Y
|
||||
GETFUN Get function A (NIL if not found) from object X, returning type in vA
|
||||
PUTFUN Put function Y in atom X
|
||||
GETPRC Get precedence in vA of function X (if Sfun), given type vY
|
||||
GETNGS Get number of args in vA of function X, given type vA
|
||||
INFIXP Given type in vA and function in X, return Carry Set if infix, with index in vA
|
||||
PTFTXT Put function text with text Y, atom X, and no. args A
|
||||
UNFUNC Delete function X
|
||||
|
||||
CONS Get new node pointer ANSN, with car Y, cdr X, and type vA
|
||||
PUTTYP Put type vA in node X
|
||||
GETTYP Get type of node X in vA
|
||||
TYPACS Return the type of node TEMPNH (from the typebase, i.e. no Q,D,LATOMs)
|
||||
PTSPNM Make atom X have a funny-pname
|
||||
GETWDS Gets a pointer to a block of Y contiguous words in X (NIL if none)
|
||||
|
||||
FNDLIN Gets line with number Y in A, with Carry Set if found
|
||||
LINPEK Get line-number X from body Y
|
||||
GTFULN Get uline X from body Y
|
||||
GTTULN Get uline X (NIL if comments) from body Y
|
||||
ULNADV Advance function line X
|
||||
|
||||
TTKADV Advance token pointer X (NIL if comments)
|
||||
TFKADV Advance token pointer X
|
||||
SKPPTH Skips past a token or parenthesized expression
|
||||
EXIFSC Skip an IF clause, returning with next token in X
|
||||
|
||||
EDTSTP Checks mode and argument token (error if not OK) for procedure definition
|
||||
EXTEDT Cleans up from edit mode
|
||||
|
||||
STUFF Associates function body X with atom A
|
||||
UNSTUF Unstuff Body Y of function X into text A
|
||||
|
||||
INTERN Intern string X, returning atom Y
|
||||
INTRNX Intern string X (known to be unique), returning atom Y
|
||||
|
||||
GETLEN Get number of elements of list Y in X
|
||||
GTLSTC Get last element of list X in X
|
||||
|
||||
PRTSTR Print string pointed to by XY
|
||||
LTYPE Type X, with vA zero if toplevel brackets to be typed (for lists)
|
||||
TYPFIX Type 2-byte fixnum X
|
||||
TPBFIX Type 4-byte fixnum NARG1
|
||||
TYPFLO Type flonum NARG1
|
||||
PRTPDL Type the string on the PDL of length vANSN1
|
||||
PONAMS Print out names
|
||||
POFUNS Print out procedures, titles only if vA zero
|
||||
POTEXT Print out function A, title only if vX zero
|
||||
PTEXTX Print out function A, title only if ANSN2 zero
|
||||
|
||||
GTNUM2 Gets number and type vA from NARG2, returning Carry Clear if successful.
|
||||
GTNUM1 Gets number and type vA from NARG1, returning Carry Clear if successful.
|
||||
GTNXTK Get NEXTOK from TOKPTR
|
||||
GT1NUM Gets a number NARG1 from the VPDL, else error, returns Carry Set if flonum
|
||||
GT1NMX Gets a number from NARG1, else error, returns Carry Set if flonum
|
||||
GT2NUM Gets two numbers NARG1 and NARG2 from VPDL, else error, coercing to real
|
||||
if not both integers, returns Carry Set if flonums
|
||||
GT1FIX Gets an integer NARG1 from the VPDL, else error
|
||||
GT2FIX Gets two integers NARG1, NARG2 from the VPDL, else error
|
||||
CHKINT Returns Carry Set if integer X is larger than two bytes
|
||||
ATMTFX Get number NARG1 from X
|
||||
ATMTXX Get number NARG1 from ANSN1
|
||||
GTBOOL Checks if X is boolean, error if not, returns vY zero if TRUE
|
||||
MAKPNM Get pname Y from X
|
||||
CNSPDL Makes String from PDL, given length vANSN1 and return pointer on Proc. stack
|
||||
GETPNM Get pname Y from atom X
|
||||
CVFIX Converts four-byte fixnum NARG1 to characters on PDL
|
||||
CVBFIX Converts two-byte fixnum X to characters on PDL
|
||||
CVFLO Converts flonum NARG1 to characters on PDL
|
||||
OTPFX1 Output two-byte fixnum Y to VPDL
|
||||
OTPFL1 Output flonum NARG1 to VPDL
|
||||
OTPFLO Output flonum Y to VPDL
|
||||
OTPFIX Output fixnum X to VPDL
|
||||
|
||||
PTRXOK Makes X suitable for ERROR (which should be called immediately)
|
||||
PTRYOK Makes Y suitable for ERROR (which should be called immediately)
|
||||
ERROR Error break of type vA with optional args Y (first) and X (second)
|
||||
ZAPMSG Types the error with code vANSN3
|
||||
SYSBUG System Bug error, breaks to monitor, calling point in $00,$01
|
||||
|
||||
GARCOL Does a garbage-collect
|
||||
CLRMRK Clear all the mark bits in from Nodespace
|
||||
MARKA Mark contiguous area of size X pointed to by Y
|
||||
MARK Mark node X
|
||||
MARKX Mark node TEMPN
|
||||
SWAPT1 Swaps temporaries out for GARCOL
|
||||
SWAPT2 Swaps temporaries in for GARCOL
|
||||
|
||||
READLN Read and parse a line (no prompt) with pointer X, vY nonzero if error
|
||||
PRDLIN Read and parse a line with pointer X, vY nonzero if error
|
||||
DIGITP Returns Carry Set if vA is a digit
|
||||
SLFDLP Returns Carry Set if vA (returned same) is self-delimiter; modifies char index vX
|
||||
|
||||
Number utility routines:
|
||||
|
||||
CNUML1 Parses a character vA of a number, returns Carry Clear if non-numeric.
|
||||
CNUML2 Finishes parsing of a number, returns Carry Clear if non-numeric.
|
||||
CLRNG1 Initializes parsing of a number.
|
||||
XN1TOY Transfer NARG1 to Y.
|
||||
XYTON1 Transfer Y to NARG1.
|
||||
XN2TOY Transfer NARG2 to Y.
|
||||
XYTON2 Transfer Y to NARG2.
|
||||
NMROL1 Multiply NARG1 by 2.
|
||||
NMROR1 Divide NARG1 by 2.
|
||||
MULN10 Multiply flonum NARG1 by 10.
|
||||
FDVD10 Divide flonum NARG1 by 10.
|
||||
XDVD10 Divide fixnum NARG1 by 10.
|
||||
ADDDIG Add ascii digit vA to fixnum NARG1.
|
||||
FADDIG Add ascii digit vA to flonum NARG1, breaks out with Carry Clear if overflow.
|
||||
FADDGX Add ascii digit vA to flonum NARG1, returns Carry Set if overflow.
|
||||
FADDGN Add numerical decimal (<1) digit vA to flonum NARG1.
|
||||
ADDNUM Add fixnum A1L to fixnum NARG1.
|
||||
INCEXP Process an exponent character vA.
|
||||
|
||||
Floating-point Arithmetic routines:
|
||||
FLOTN1 Make integer NARG1 floating-point.
|
||||
FLOTN2 Make integer NARG2 floating-point.
|
||||
XFLOAT Make positive integer NARG1 floating-point.
|
||||
XINT1 Make flonum NARG1 a fixnum, error if overflow
|
||||
XINT2 Make flonum NARG2 a fixnum, error if overflow
|
||||
SWAP Swap NARG1 and NARG2.
|
||||
FADD Floating point add, NARG1 gets NARG1 + NARG2.
|
||||
FSUB Floating point subtract, NARG1 gets NARG1 - NARG2
|
||||
FSUBX Floating point subtract, NARG1 gets NARG2 - NARG1.
|
||||
FMUL Floating point multiply, NARG1 gets NARG1 * NARG2.
|
||||
FDIV Floating point divide, NARG1 gets NARG1/NARG2.
|
||||
XDIVID Integer divide, NARG1 gets NARG1/NARG2.
|
||||
COMPL Complements fixnum X.
|
||||
FCOMPL Complements flonum NARG1.
|
||||
|
||||
Screen Editor/Filing routines:
|
||||
CHGSTP Checks mode and argument for screen editor and dispatches to proper set-up
|
||||
routine (error if not OK) CHGNON, CHGNEW, or CHGOLD.
|
||||
CHGIN1 Initialize buffer-filling.
|
||||
CHGIN2 Initialize screen and editor.
|
||||
CHGIN3 Display buffer and call editor top-loop.
|
||||
CHGOLD Starts screen editor with a procedure in the buffer.
|
||||
CHGNEW Starts screen editor with TO definition line in buffer.
|
||||
CHGNON Starts screen editor with an empty buffer.
|
||||
INCPNT Increments the point
|
||||
DECPNT Decrements the point
|
||||
PNTBEG Sets the point to beginning of buffer
|
||||
TOPSCR Sets cursor at top left of screen.
|
||||
CHGLOP Top level screen editor loop.
|
||||
EDOUT Set up to output character vA to buffer.
|
||||
EDSPBF Display page of buffer from point on.
|
||||
EDDONE Evaluates edit buffer and returns to Logo.
|
||||
CHGNYM Displays "Apple Logo Screen Editor" indicator.
|
||||
|
||||
DOSSTP Initializes DOS and tells it to listen to our output.
|
||||
STDERR Tells DOS that error-return routine is DERROR.
|
||||
SAPOUT Tells DOS to listen to our output.
|
||||
DOSEAT Internal DOS subroutine which initializes output-listening.
|
||||
DERROR Gives appropriate filing error.
|
||||
DTPATM Type atom ARG1 coded for DOS.
|
||||
DPRLEN Type buffer length as DOS-coded hexadecimal digits.
|
||||
|
||||
Temporary Variable Usage Table:
|
||||
|
||||
@ - indicates possible temporary-variable conflict
|
||||
* - indicates apparent but nonexistent conflict
|
||||
TEMPNH is the lowest-level temporary; there are no TEMPNH conflicts
|
||||
GARCOL swaps temporary variables; there are no conflicts with GARCOL
|
||||
() indicates dedicated subroutines; no temporary variable optimizations
|
||||
|
||||
First Level Routines:
|
||||
|
||||
BREAK1
|
||||
CLRMRK
|
||||
COMPL
|
||||
DELETE ANSN TEMPN TEMPN1
|
||||
DIGITP
|
||||
EXTEDT
|
||||
FNDLIN ANSN ANSN1 TEMPN TEMPN1
|
||||
GETLEN TEMPN
|
||||
GETNGS
|
||||
GETPRC
|
||||
GETVAL
|
||||
GTFULN
|
||||
GTLSTC ANSN
|
||||
GTNXTK
|
||||
INFIXP
|
||||
LINPEK
|
||||
POP
|
||||
POPB
|
||||
PTSPNM TEMPN
|
||||
PUSH
|
||||
PUSHP
|
||||
PUTVAL
|
||||
RESETT
|
||||
STPPEK
|
||||
TFKADV
|
||||
TPCHR
|
||||
TYPACS
|
||||
XDIVID TEMPN TEMPN1
|
||||
ULNADV
|
||||
UNFUNC ANSN
|
||||
VPOP
|
||||
VPSTST
|
||||
VPUSH
|
||||
VPUSHP
|
||||
|
||||
Second-level Routines:
|
||||
|
||||
BREAK (BREAK1: )
|
||||
ERNAMS TEMPN TEMPN1 TEMPN2 (PUTVAL: )
|
||||
ERPROS TEMPN TEMPN1 (UNFUNC: ANSN)
|
||||
GETTYP (TYPACS: )
|
||||
|
||||
(GW1: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
|
||||
GETWDS ANSN* ANSN1* (GARCOL: ) (GW1: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
GTBOOL ANSN (VPOP: )
|
||||
GTTULN (GTFULN: )
|
||||
MARK ANSN TEMPN TEMPN1 TEMPN2 (POP: ) (PSHTST: ) (PUSH: ) (TYPACS: )
|
||||
MARKX "
|
||||
MARKA TEMPN (TYPACS: )
|
||||
OTPRG1 (VPUSHP: )
|
||||
PRTSTR (TPCHR: )
|
||||
PSHTST (STPPEK: )
|
||||
PUTTYP (TYPACS: )
|
||||
RSTBND ANSN TEMPN TEMPN1 (POP: ) (PUTVAL: )
|
||||
SOBST1 TEMPN (PUTTYP: )
|
||||
TTKADV (TFKADV: )
|
||||
TYPNUM ANSN TEMPN2 (POPB: ) (PUSH: ) (TPCHR: ) (XDIVID: TEMPN TEMPN1)
|
||||
VPLFLS (VPUSHP: )
|
||||
VPLTRU (VPUSHP: )
|
||||
ZAPMSG ANSN3 (BREAK1: ) (PRTSTR: )
|
||||
ZPC1 (BREAK1: ) (PRTSTR: )
|
||||
|
||||
Third-level Routines:
|
||||
|
||||
CONS ANSN (GARCOL: ) (PUTTYP: ) (VPUSHP: )
|
||||
EDTSTP (GETTYP: ) (TFKADV: )
|
||||
GARCOL ANSN1 TEMPN* TEMPN3 TEMPN4 (CLRMRK: ) (MARK: ANSN TEMPN TEMPN1 TEMPN2) (MARKA: TEMPN)
|
||||
(TYPACS: ) (MARKX: ANSN TEMPN TEMPN1 TEMPN2)
|
||||
GETFUN ANSN TEMPN (GETTYP: )
|
||||
POPFRM (POP: ) (POPB: ) (RSTBND: ANSN TEMPN TEMPN1)
|
||||
PTFTXT ANSN3 ANSNX TEMPN5 TEMPN6 TEMPN7 TEMPN8 (GETTYP: )
|
||||
(GETWDS: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4) (PUTTYP: )
|
||||
PUTFUN ANSN ANSN1 (GETTYP: )
|
||||
SKPPTH ANSN TEMPN (TTKADV: )
|
||||
|
||||
Fourth-level Routines:
|
||||
|
||||
EXIFSC ANSN1 TEMPN1 (SKPPTH: ANSN TEMPN) (TTKADV: )
|
||||
GETPNM TEMPN TEMPN1 TEMPN2 TEMPN3 (CONS: ANSN) (GETTYP: ) (POP: ) (PSHTST: ) (PUSH: )
|
||||
INTRNX ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 (CONS: ANSN)
|
||||
OTPNUM TEMPN (CONS: ANSN) (VPUSHP: )
|
||||
STUFF ANSN3* ANSNX* TEMPN* TEMPN1* TEMPN2* TEMPN3* TEMPN5* TEMPN6* TEMPN7* TEMPX1 TEMPX2
|
||||
(GETLEN: TEMPN) (GETWDS: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
(PTFTXT: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6 TEMPN7 TEMPN8) (PUTTYP: )
|
||||
PUTLIN ANSN2 TEMPN2 TEMPN3 (BREAK1: ) (CONS: ANSN) (FNDLIN: ANSN ANSN1 TEMPN TEMPN1) (ZPC1: )
|
||||
UNSTUF ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 (CONS: ANSN) (GETTYP: ) (POP: )
|
||||
(PSHTST: ) (PUSHP: ) (PUTTYP: )
|
||||
|
||||
Fifth-level Routines:
|
||||
|
||||
(GOBDIG: TEMPN6)
|
||||
|
||||
ATMTFX ANSN1 ANSN2 TEMPN4 TEMPN5 TEMPN6 (COMPL: ) (GETPNM: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3)
|
||||
(GOBDIG: TEMPN6)
|
||||
ATMTXX "
|
||||
DEFUN ANSN1* ANSN2* TEMPN1* TEMPN2* TEMPN3* TEMPN4* (CONS: ANSN) (GETTYP: )
|
||||
(STUFF: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6 TEMPN7 TEMPN8 TEMPX1 TEMPX2) (UNFUNC: ANSN) (VPOP: ) (VPUSHP: )
|
||||
EDLINE ANSN1* TEMPN2* TEMPN3* TEMPN4 (PUTLIN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3)
|
||||
(PUTTYP: )
|
||||
INTERN ANSN1 ANSN2 TEMPN1* TEMPN4 TEMPN5 (CONS: ANSN)
|
||||
(GETPNM: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3) (VPUSHP: ) (VPOP: )
|
||||
|
||||
(MKPNAD: ANSN2 TEMPN3 TEMPN4 (CONS: ANSN))
|
||||
|
||||
MAKPNM ANSN* ANSN1 ANSN2 ANSN3 TEMPN2* TEMPN3* TEMPN4 (CONS: ANSN)
|
||||
(GETPNM: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3) (GETTYP: )
|
||||
(MKPNAD: ANSN ANSN2 TEMPN3 TEMPN4) (VPOP: ) (VPUSHP: ) (XDIVID: TEMPN TEMPN1)
|
||||
|
||||
(MKSFUN: TEMPN1 (CONS: ANSN))
|
||||
(SOBST1: TEMPN)
|
||||
|
||||
REINIT ANSN* ANSN2* ANSN3 TEMPN* TEMPN1* TEMPN2* TEMPN3 (CONS: ANSN)
|
||||
(INTRNX: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2) (MKSFUN: ANSN TEMPN1) (SOBST1: TEMPN)
|
||||
|
||||
Sixth-level Routines:
|
||||
|
||||
GETNUM ANSN1* (ATMTXX: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(GETTYP: )
|
||||
|
||||
(TPSATM: ANSN TEMPN5 (TPCHR: ))
|
||||
(TYPATM: ANSN* TEMPN5 (GETPNM: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3) (TPCHR: ))
|
||||
|
||||
LTYPE TEMPN4 TEMPN5 (BREAK: ) (PSHTST: ) (POP: ) (PUSH: ) (PUSHP: ) (TPCHR: )
|
||||
(TPSATM: ANSN TEMPN5) (TYPATM: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN5)
|
||||
(TYPNUM: ANSN TEMPN TEMPN1 TEMPN2)
|
||||
|
||||
(ALLSTC: TEMPN TEMPX2 (CONS: ANSN))
|
||||
(DIGITP: )
|
||||
(GETLIN: )
|
||||
(SLFDLP: ANSN3 TEMPN4.H TEMPN8.L)
|
||||
|
||||
PRDLIN ANSN3 ANSNX TEMPN1 TEMPN4.H TEMPN5 TEMPN6 TEMPN7 TEMPN8 TEMPX1 TEMPX2
|
||||
(ALLSTC: ANSN TEMPN TEMPX2) (BREAK1: ) (CONS: ANSN) (DIGITP: ) (GETLIN: )
|
||||
(INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(POP: ) (PRTSTR: ) (PTSPNM: TEMPN) (PUSH: ) (PUTTYP: )
|
||||
(SLFDLP: ANSN3 TEMPN4.H TEMPN8.L) (TPCHR: )
|
||||
READLN "
|
||||
|
||||
Seventh-level Routines:
|
||||
|
||||
ERROR ANSN1 ANSN2 ANSN3* TEMPN8 (BREAK1: ) (LTYPE: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4
|
||||
TEMPN5) (PRTSTR: ) (TPCHR: ) (TYPNUM: ANSN TEMPN TEMPN1 TEMPN2) (ZAPMSG: ANSN3)
|
||||
GT1NUM (GETNUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6) (VPOP: )
|
||||
GT2NUM ANSN3 (GETNUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(VPOP: ) (XFLOAT)
|
||||
POTEXT ANSN1 ANSN2 TEMPN6 TEMPN7 TEMPN8 TEMPX1 (BREAK1: ) (GETFUN: ANSN TEMPN) (GETTYP: )
|
||||
(LTYPE: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(PRTSTR: ) (TPCHR: ) (TYPNUM: ANSN TEMPN TEMPN1 TEMPN2)
|
||||
PTEXTX "
|
||||
|
||||
Eighth-level Routines:
|
||||
|
||||
POFUNS ANSN2* TEMPX2 (PTEXTX: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6 TEMPN7 TEMPN8 TEMPX1)
|
||||
|
||||
(PON1: TEMPN6 TEMPN7 (BREAK1: ) (GETTYP: ) (GETVAL: )
|
||||
(LTYPE: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (PRTSTR: ) (TPCHR: ))
|
||||
|
||||
PONAMS TEMPN6 TEMPN8 (PON1: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7)
|
||||
|
||||
Bottom-level Routines (not called as subroutines):
|
||||
|
||||
AL2 ANSN (POP: ) (POPB: )
|
||||
ARGLOP ANSN (PUSH: ) (PUSHP: )
|
||||
EVAL TEMPN (GETVAL: )
|
||||
EVLINE TEMPN (GETTYP: ) (TTKADV: )
|
||||
EVWRAP ANSN2 (GTNXTK: ) (PUSH: ) (PUSHP: ) (TTKADV: )
|
||||
INITLZ TEMPN (CLRMRK: )
|
||||
POPJ (POP: )
|
||||
SBOTH ANSN1 (GTBOOL: ANSN) (VPLFLS: ) (VPLTRU: )
|
||||
SBTFST ANSN1* TEMPN* TEMPN1* TEMPN2* (CONS: ANSN) (GETTYP: ) (INTERN: ANSN ANSN1 ANSN2 TEMPN
|
||||
TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4) (OTPRG1: ) (VPOP: ) (VPUSHP: )
|
||||
SBTLST ANSN1* ANSN2* TEMPN* TEMPN1* TEMPN2* TEMPN5 (CONS: ANSN) (GETTYP: ) (INTERN: ANSN
|
||||
ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2
|
||||
ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4) (POPJ: ) (VPOP: ) (VPUSHP: )
|
||||
SDEFIN TEMPN* (DEFUN: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6 TEMPN7 TEMPN8 TEMPX1 TEMPX2) (GETTYP: ) (VPOP: )
|
||||
SDIF TEMPN1* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(OTPNUM: ANSN TEMPN)
|
||||
SDIVID ANSN* (COMPL: ) (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5
|
||||
TEMPN6) (OTPNUM: ANSN TEMPN) (XDIVID: TEMPN TEMPN1)
|
||||
SEDIT TEMPN1* TEMPN5* TEMPX1 (EDTSTP: ) (GETFUN: ANSN TEMPN) (GETLEN: TEMPN)
|
||||
(PTFTXT: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6
|
||||
TEMPN7 TEMPN8) (UNSTUF: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4)
|
||||
SEITHR ANSN1 (GTBOOL: ANSN) (VPLFLS: ) (VPLTRU: )
|
||||
SELSE TEMPN2 (EXIFSC: ANSN ANSN1 TEMPN TEMPN1)
|
||||
SEQUAL ANSN* ANSN1* TEMPN7 TEMPN8 (GETNUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4
|
||||
TEMPN5 TEMPN6) (GETTYP: ) (POP: ) (PSHTST: ) (PUSH: ) (PUSHP: ) (VPOP: ) (VPUSHP: )
|
||||
SFIRST TEMPN5* TEMPN6 (CONS: ANSN) (GETTYP: ) (INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3
|
||||
TEMPN4) (OTPRG1: ) (VPOP: )
|
||||
SGO TEMPN TEMPN1 (GETTYP: ) (GTTULN: ) (PUTTYP: ) (STPPEK: ) (TTKADV: ) (ULNADV: ) (VPOP: )
|
||||
SLAST TEMPN* (CONS: ANSN) (GETTYP: ) (GTLSTC: ANSN) (INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4 TEMPN5) (MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4) (OTPRG1: ) (VPOP: )
|
||||
SLPUT TEMPN TEMPN1 TEMPN2 (CONS: ANSN) (GETTYP: ) (OTPRG1: ) (VPOP: ) (VPUSHP: )
|
||||
SNODES TEMPN1 (OTPNUM: ANSN TEMPN)
|
||||
SPO TEMPN1* (GETFUN: ANSN TEMPN) (GETTYP: ) (POFUNS: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2
|
||||
TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8 TEX1 TEMPX2) (PONAMS: ANSN TEMPN TEMPN1
|
||||
TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8) (POTEXT: ANSN ANSN1 ANSN2 TEMPN
|
||||
TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6 TEMPN7 TEMPN8 TEMPX1) (TTKADV: )
|
||||
SPROD ANSN* TEMPN1* (COMPL: ) (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4
|
||||
TEMPN5 TEMPN6) (OTPNUM: ANSN TEMPN)
|
||||
SREAD1 TEMPN (GETTYP: )
|
||||
SSUM TEMPN1* (GT2NUM: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6)
|
||||
(OTPNUM: ANSN TEMPN)
|
||||
STEXT TEMPN1* TEMPN2* TEMPN5 TEMPN6 (CONS: ANSN) (GETFUN: ANSN TEMPN) (GETTYP: )
|
||||
(UNSTUF: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4) (VPOP: ) (VPUSHP: )
|
||||
STITLE ANSN1* TEMPN* TEMPN1 TEMPN2 TEMPN3 (GETFUN: ANSN TEMPN) (GETTYP: ) (PUTFUN: ANSN ANSN1)
|
||||
(UNFUNC: ANSN)
|
||||
STO TEMPX1 TEMPX2 (CONS: ANSN) (EDTSTP: ) (EXTEDT: ) (GETFUN: ANSN TEMPN) (GETTYP: )
|
||||
(PTFTXT: ANSN ANSN1 ANSN2 ANSN3 ANSNX TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5 TEMPN6
|
||||
TEMPN7 TEMPN8) (TFKADV: )
|
||||
STRCBK ANSN1 TEMPN6 TEMPN7 TEMPN8 TEMPX1 TEMPX2 (BREAK1: )
|
||||
(LTYPE: ANSN TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5) (PRTSTR: ) (TPCHR: )
|
||||
|
||||
(COPY: ANSN1 TEMPN TEMPN1 TEMPN2 (CONS: ANSN) (VPOP: ) (VPUSHP: ))
|
||||
(CONCAT: ANSN1* TEMPN* TEMPN1* TEMPN3 TEMPN4 TEMPN5 (GTLSTC: ANSN)
|
||||
(COPY: ANSN ANSN1 TEMPN TEMPN1 TEMPN2))
|
||||
|
||||
SWORD ANSNX TEMPN6 (CONCAT: ANSN ANSN1 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(INTERN: ANSN ANSN1 ANSN2 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4 TEMPN5)
|
||||
(MAKPNM: ANSN ANSN1 ANSN2 ANSN3 TEMPN TEMPN1 TEMPN2 TEMPN3 TEMPN4) (OTPRG1: )
|
||||
|
||||
TOPLOP TEMPN (GETTYP: )
|
||||
XSFNCL TEMPN
|
||||
|
||||
(INCVSP: )
|
||||
(PTRDEC: TEMPN5)
|
||||
(PTVTST: TEMPN5)
|
||||
(STPTR1: TEMPN5)
|
||||
|
||||
XTAIL TEMPN2 TEMPN3 TEMPN4 TEMPN5 (GETVAL: ) (GTTULN: ) (INCVSP:) (PTRDEC: TEMPN5)
|
||||
(PTVTST: TEMPN5) (PUSH: ) (PUSHP: ) (PUTVAL: ) (STPTR1: TEMPN5) (TTKADV: )
|
||||
XUFNCL TEMPN TEMPN1 TEMPN2 TEMPN5 (GETVAL: ) (GETTYP: ) (GTTULN: ) (INCVSP:) (LINPEK: )
|
||||
(PSHTST: ) (PTRDEC: TEMPN5) (PTVTST: TEMPN5) (PUSH: ) (PUSHP: ) (PUTVAL: )
|
||||
(STPTR1: TEMPN5) (TTKADV: )
|
||||
|
||||
Other Routines (unwritten, etc.):
|
||||
|
||||
XFLOAT
|
||||
XINT
|
||||
XFCOMP
|
||||
186
doc/aplogo/usage.doc
Normal file
186
doc/aplogo/usage.doc
Normal file
@@ -0,0 +1,186 @@
|
||||
APPLE LOGO Usage documentation:
|
||||
|
||||
Arguments:
|
||||
|
||||
{word} must evaluate to a (quoted) word or a number
|
||||
{list} must evaluate to a list
|
||||
{word/list} must evaluate to either a {word} or a {list} as defined above
|
||||
{number} must evaluate to a number or a word which is a legal number
|
||||
{boolean} must evaluate to "TRUE or "FALSE
|
||||
|
||||
Categories:
|
||||
|
||||
Quantifier Graphics Editor Screen Editor
|
||||
Word/List Control System Workspace
|
||||
Comment Input Output Boolean
|
||||
Infix Boolean Filing Exit Arithmetic
|
||||
Infix Arithmetic Prefix Arithmetic
|
||||
|
||||
Command/Abbreviation/Inputs/Type:
|
||||
|
||||
ALL Quantifier
|
||||
BACK BK {number} Graphics
|
||||
BOTH {boolean} {boolean} Boolean
|
||||
BUTFIRST BF {word/list} Word/List
|
||||
BUTLAST BL {word/list} Word/List
|
||||
CHANGE CHG Editor
|
||||
This is the original procedure editor. It gives the ">" prompt
|
||||
and requires END to terminate. Commands such as PO and ER are
|
||||
executed immediately, unless they are on numbered lines.
|
||||
CLEAR Output
|
||||
Clears the text screen and homes the input cursor.
|
||||
CLEARINPUT Input
|
||||
Clears the input character buffer. Useful for programs which use
|
||||
real-time keyboard input.
|
||||
CLEARSCREEN CS Graphics
|
||||
Clears the graphics screen, homes and shows the turtle. Inititates
|
||||
graphics mode if necessary (mixed text/graphics).
|
||||
CONTINUE CO Control
|
||||
CURSOR {number} {number} Output
|
||||
Takes column, row as input and positions the input cursor there.
|
||||
Columns are 0-39, rows are 0-23.
|
||||
DEFINE DE {word} {list} Workspace
|
||||
DELETE {word} Filing
|
||||
Deletes a file from the disk.
|
||||
DIFFERENCE {number} {number} Arithmetic
|
||||
EDIT ED Screen Editor
|
||||
Enters the screen editor with a given procedure.
|
||||
EITHER {boolean} {boolean} Boolean
|
||||
ELSE Control
|
||||
EMPTY? {word/list} Boolean
|
||||
END Editor
|
||||
EQUAL? {word/list} {word/list} Boolean
|
||||
ERASE ER Workspace
|
||||
FIRST {word/list} Word/List
|
||||
FORWARD FD {number} Graphics
|
||||
FPUT Word/List
|
||||
FULL Graphics
|
||||
In graphics mode, gives full graphics screen. Complementary to MIX.
|
||||
Equivalent to interrupt character Control-F.
|
||||
GO {word} Control
|
||||
GOODBYE Exit
|
||||
GREATER? {number} {number} Boolean
|
||||
HEADING Graphics
|
||||
HIDETURTLE HT Graphics
|
||||
HOME Graphics
|
||||
IF Control
|
||||
INTEGER INT {number} Arithmetic
|
||||
LAST {word/list} Word/List
|
||||
LEFT LT {number} Graphics
|
||||
LESS? {number} {number} Boolean
|
||||
LIST Variable number of {word/list}'s - 2 default Word/List
|
||||
LIST? {word/list} Boolean
|
||||
LPUT {word/list} {list} Word/List
|
||||
MAKE {word} {word/list} Workspace
|
||||
MIX Graphics
|
||||
In graphics mode, gives mixed text/graphics screen. Complementary to
|
||||
FULL. Equivalent to interrupt character Control-L.
|
||||
NAMES Quantifier
|
||||
NODISPLAY ND Graphics
|
||||
Exits graphics mode, giving a clear text page with the cursor homed.
|
||||
NOT {boolean} Boolean
|
||||
NUMBER? {word/list} Boolean
|
||||
OUTPUT OP {word/list} Control
|
||||
PAUSE Control
|
||||
Stops execution and allows input to be evaluated. Equivalent to interrupt
|
||||
character Control-Z. Execution is resumed with CONTINUE, provided no errors
|
||||
have occured.
|
||||
PENDOWN PD Graphics
|
||||
PENUP PU Graphics
|
||||
POTS Workspace
|
||||
PRINT PR Variable number of {word/list}'s - 1 default Output
|
||||
PRINT1 Variable number of {word/list}'s - 1 default Output
|
||||
Like PRINT, but does not terminate the output line.
|
||||
PRINTOUT PO Workspace
|
||||
PROCEDURES Quantifier
|
||||
PRODUCT {number} {number} Arithmetic
|
||||
QUOTIENT {number} {number} Arithmetic
|
||||
RANDOM Arithmetic
|
||||
Returns a random number 0-9. Identical seeds will give repeatable
|
||||
sequences of random numbers. See RANDOMIZE.
|
||||
RANDOMIZE Arithmetic
|
||||
Randomizes the seed for RANDOM. The seed can also be initialized
|
||||
in certain cases by depositing into the RNDL and RNDH memory locations.
|
||||
READ {word} Filing
|
||||
Reads a file from disk. See the Filing comments. Destroys any graphics
|
||||
display.
|
||||
READCHARACTER RC Input
|
||||
Outputs the least recent character in the character buffer, or if empty,
|
||||
waits for an input character.
|
||||
REPEAT {number} {list} Control
|
||||
REQUEST RQ Input
|
||||
RETRIEVE Screen Editor
|
||||
Re-enters the editor with the previous buffer's contents if they are still
|
||||
retrievable (i.e., no graphics or filing has been done since the last
|
||||
screen editor session, provided there was a previous one). Useful if
|
||||
an error occurred while the contents of the edit buffer were being evaluated.
|
||||
RIGHT RT {number} Graphics
|
||||
RUN {list} Control
|
||||
SAVE {word} Filing
|
||||
Saves the contents of the workspace on disk. See the Filing comments. Destroys
|
||||
any graphics display.
|
||||
SENTENCE SE Variable number of {word/list}'s - 2 default Word/List
|
||||
SETHEADING SETH {number} Graphics
|
||||
SETTURTLE SETT {list} Graphics
|
||||
Sets the turtle according to a variable-length list of elements. First
|
||||
element is XCOR, then YCOR, then HEADING, then "TRUE or "FALSE for
|
||||
show or hide turtle, then "TRUE or "FALSE for pen down or pen up.
|
||||
Complementary to TURTLESTATE.
|
||||
SETX {number} Graphics
|
||||
SETXY {number} {number} Graphics
|
||||
SETY {number} Graphics
|
||||
SHOWTURTLE ST Graphics
|
||||
STOP Control
|
||||
SUM {number} {number} Arithmetic
|
||||
TEXT {word} Workspace
|
||||
THEN Control
|
||||
THING {word} Workspace
|
||||
THING? {word} Boolean
|
||||
TITLE TI Editor
|
||||
TITLES Quantifier
|
||||
TO Screen Editor
|
||||
Procedure definition primitive. Enters the Screen Editor. Destroys
|
||||
any graphics display.
|
||||
TRACEBACK TB Debugging
|
||||
TURTLESTATE TS Graphics
|
||||
Returns a list of five elements. First is XCOR, then YCOR, then HEADING,
|
||||
then "TRUE or "FALSE for shown or hidden turtle, then "TRUE or "FALSE for
|
||||
pen down or pen up. Complementary to SETTURTLE.
|
||||
WORD Variable number of {word}'s - 2 default Word/List
|
||||
WORD? {word/list} Boolean
|
||||
XCOR Graphics
|
||||
YCOR Graphics
|
||||
( Syntax
|
||||
) Syntax
|
||||
* {number} * {number} Infix Arithmetic
|
||||
+ {number} + {number} Infix Arithmetic
|
||||
+ {number} Prefix Arithmetic
|
||||
- {number} - {number} Infix Arithmetic
|
||||
- {number} Prefix Arithmetic
|
||||
.BPT System
|
||||
Breaks out of LOGO into the LOGO monitor. See the LOGO Monitor comments.
|
||||
Control-B breaks from LOGO monitor into ROM Monitor, and then another
|
||||
Control-B will enter BASIC. The RESET key should be pressed upon entering
|
||||
BASIC after using LOGO, to reinitialize certain BASIC parameters.
|
||||
.CALL {number} System
|
||||
Calls a machine language subroutine anyplace in memory, which is expected
|
||||
to do an RTS or a JMP to the POPJ label.
|
||||
.DEPOSIT {number} {number} System
|
||||
Deposits byte of data at a memory location.
|
||||
.EXAMINE {number} System
|
||||
Returns the value of the byte at the specified address.
|
||||
.GCOLL System
|
||||
.NODES System
|
||||
/ {number} / {number} Infix Arithmetic
|
||||
; Comment
|
||||
< {number} < {number} Infix Boolean
|
||||
= {word/list} = {word/list} Infix Boolean
|
||||
> {number} > {number} Infix Boolean
|
||||
|
||||
Interrupt characters:
|
||||
|
||||
Control-G Stops execution and returns control to toplevel.
|
||||
Control-Z Stops execution and allows input to be evaluated (see PAUSE).
|
||||
Control-S Stops screen output - typing any character will resume output.
|
||||
Control-F In graphics mode, displays a full screen of graphics (see FULL).
|
||||
Control-L In graphics mode, displays a mixed text/graphics screen (see MIX).
|
||||
@@ -13,6 +13,7 @@
|
||||
- ADV350, 350-point Adventure.
|
||||
- ADV448, 448-point Adventure.
|
||||
- ANIMAL, an animal guessing game.
|
||||
- APLOGO, Apple II Logo.
|
||||
- AR, PDP-11 debugger.
|
||||
- ARCCPY, copies an old-format archive, converting to new format.
|
||||
- ARCDEV, transparent file system access to archive files.
|
||||
|
||||
13450
src/aplogo/logo.958
Normal file
13450
src/aplogo/logo.958
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user