ÔUNESMITH
---------

ŅUICK ŌEFERENCE, LAST REVISED 7/98

ÖERSION Â -- ÔUNESMITH IS A MAJOR UPDATE TO THE OLD BLAHTUNE.

ÆOR LATEST BINARIES, DOCUMENTATION, AND EXAMPLE TUNES, VISIT
HTTP://STRATUS.ESAM.NWU.EDU/ÞJUDD/FRIDGE/ 

ÅMAIL: SJUDD@NWU.EDU

-----

ÐLAY SAVED TUNE FROM ÂÁÓÉÃ: ÓŲÓ 4102

ŨARM RESTART: $6800  (ÓŲÓ 26624)
		- ÄON'T FORGET TO SET DEVICE # ON A REBOOT!

ÃOLD RESTART: $6803

------
ÐLAYER
------

$1000	ÍÁÉÎÐĖÁŲ	- ÔHE MAIN PLAYER ROUTINE
$1003	ÐĖÁŲÉÎÉÔ	- ÉNITIALIZE THE PLAYER
$1006	ÓÅÔÉŌŅ		- ŨEDGE PLAYER INTO CURRENT ÉŌŅ ROUTINE
$1009	ĖÏÁÄÉÎÓÔ	- ĖOAD INSTRUMENT (INST # IN .Ø)
$100Ã	ĮÅÔÐ		- ĮET FIELD POINTER FOR CURRENT VOICE (.Á,.Ø = LO,HI)
$100Æ	ÓÅÔÐ		- ÓET FIELD POINTER FOR CURRENT VOICE
$1012	Ö1ĮÅÔÐ		- ĮET FIELD POINTER FOR VOICE 1 (.Á,.Ø)
$1015	Ö2ĮÅÔÐ
$1018	Ö3ĮÅÔÐ
$101Â	Ö1ÓÅÔÐ		- ÓET FIELD POINTER FOR VOICE 1 (.Á,.Ø)
$101Å	Ö2ÓÅÔÐ
$1021	Ö3ÓÅÔÐ
$1024	ŌÅÔÕŌÎ		- ÍACRO EXIT

$103Ä/Å/Æ		- ÖOICE 1/2/3 LOOKAHEAD VALUES

--------
ÃOMPILER
--------

ËEYWORDS
--------

ÃOMPILER IS NO LONGER CASE SENSITIVE.

; 	ÃOMMENT
<-	(ÂACKARROW) ÃONTINUE ON NEXT LINE (ANACHRONISM FROM WHEN THE TEXT
	EDITOR COULDN'T HANDLE LINES LONGER THAN 40 COLUMNS)

ÂÁÄÄ/ŨÁÄÄ    ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ + ÓŌÃ -> ÄÅÓÔ
ÂÁÎÄ/ŨÁÎÄ    ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ ÁÎÄ ÓŌÃ -> ÄÅÓÔ
ÂÄÅÃ/ŨÄÅÃ    ÁŌĮ          ÁŌĮ + 1 -> ÁŌĮ
ÂÄÉÖ/ŨÄÉÖ    ÁŌĮ          ÁŌĮ/2 -> ÁŌĮ          (THINK ĖÓŌ)
ÂÅÏŌ/ŨÅÏŌ    ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ ÅÏŌ ÓŌÃ -> ÄÅÓÔ
ÂÉÎÃ/ŨÉÎÃ    ÁŌĮ          ÁŌĮ - 1 -> ÁŌĮ
ÂÍÏÖÅ/ŨÍÏÖÅ  ÓŌÃ > ÄÅÓÔ   ÓŌÃ -> ÄÅÓÔ
ÂÍÕĖ/ŨÍÕĖ    ÁŌĮ          ÁŌĮ*2 -> ÁŌĮ          (THINK ÁÓĖ)
ÂÏŌ/ŨÏŌ      ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ ÏŌ ÓŌÃ -> ÄÅÓÔ
ÂÓÕÂ/ŨÓÕÂ    ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ - ÓŌÃ -> ÄÅÓÔ
ÂÔÅÓÔ/ŨÔÅÓÔ  ÓŌÃ > ÄÅÓÔ   ÄÅÓÔ - ÓŌÃ   NOTHING IS STORED, JUST SETS THE FLAGS

ÃÏÍÍÅÎÔ      STRING       ÐLACE ÓÔŌÉÎĮ DIRECTLY INTO THE CODE
ÄÁÔÁ                      ÕSER DEFINED LABEL (ÁNACHRONISTIC)
ÄÅÆ	     VAR STRING   ÄÅÆINE A NEW VARIABLE (TEXT SUBSTITUTION)
ÖÁŌ ÖÁŌ*N    VAR	  ÃREATE AN N-BYTE VARIABLE AT THIS SPOT
ÓÕÂ	     VAR	  ÓÕÂROUTINE
ÓÅÎÄ			  ÅND SUBROUTINE
ĘÓÕÂ			  ÃALL SUBROUTINE

ÄÏÎÅ                      ČALT MACRO
ÅÍÂÅÄ        BYTE BYTE ...ÐLACES BYTES DIRECTLY INTO CODE
ÅÎÔŌŲ                     ÓET INITIAL MACRO ENTRY POINT
ÉĖÏÁÄ        ÁŌĮ          ĖOAD CURRENT VOICE WITH INSTRUMENT NUMBER ÁŌĮ
ĖÏÏÐ                      ŌEPEAT FOLLOWING CODE...
ÕÎÔÉĖ        ÆĖÁĮ          ...UNTIL ÆĖÁĮ IS TRUE (SET)
ÆÏŌÅÖÅŌ                    ...FOREVER (UNTIL MACRO IS DEACTIVATED OR RESTARTED)
ŨÁÉÔ                      ŌETURN CONTROL TO PLAYER ROUTINE
ŨČÅÎ/ĖŨČÅÎ   ÆĖÁĮ         ÅXECUTE BLOCK IF ÆĖÁĮ IS TRUE
ÅĖÓÅ                      ÅXECUTE BLOCK IF ÆĖÁĮ IS FALSE
ŨÅÎÄ                      ÅND ŨČÅÎ BLOCK

ĮÅÔÐ         ÁŌĮ          ÐLACE CURRENT FIELD DATA POINTER INTO ÁŌĮ
ÓÅÔÐ         ÁŌĮ          ÓET CURRENT FIELD POINTER TO ÁŌĮ,ÁŌĮ+1 (LO,HI)
Ö1ĮÅÔÐ       ÁŌĮ          ĖOAD SPECIFIC FIELD POINTER INTO ÁŌĮ,ÁŌĮ+1
Ö2ĮÅÔÐ                    .
Ö3ĮÅÔÐ                    .
Ö1ÓÅÔÐ                    ĖOAD ÁŌĮ,ÁŌĮ+1 INTO A SPECIFIC FIELD POINTER
Ö2ÓÅÔÐ                    .
Ö3ÓÅÔÐ                    .

ÆLAGS:
        ÅŅÕ ÎÅŅ ÐÏÓ ÎÅĮ

ÁRGUMENTS:

        # #$ #%              - ÉMMEDIATE VALUE
        $                    - ÁDDRESS
        ,ÁŌĮ                 - ÉNDEXED MODE
        + -                  - ÏFFSETS (EXAMPLE: ÓÉÄ+#2)
        &ÁŌĮ                 - ÁDDITIONAL DESTINATIONS
	(ÁŌĮ1 > ÁŌĮ2) > ÁŌĮ3 - "ÕNINVOLVED ÏPERAND"


ÖARIABLES:

ÁÔÄË       ATTACK/DECAY REGISTER FOR THE CURRENT VOICE (ÓČÁÄÏŨ+#5,ÃÏÆÆÓÅÔ)
ÃÏÆÆÓÅÔ    ÓÉÄ OFFSET (0 7 14) FOR CURRENT VOICE
ÃŌÅĮ       CONTROL REGISTER FOR THE CURRENT VOICE (ÓČÁÄÏŨ+#4,ÃÏÆÆÓÅÔ)
ÃÕŌÆÉÅĖÄ   CURRENT FIELD (GLOBAL MACROS ARE FIELD 0)
ÃÕŌÖÏÉÃÅ   CURRENT VOICE (1 2 3)
ÄÁÔÁ       USER-DEFINED VARIABLE (ANACHRONISTIC)
ÄÕŌ        (REMAINING) DURATION OF THE CURRENT NOTE FOR THE CURRENT FIELD
ÆĖÏÔÁÂ     TABLE OF THE LOW BYTES OF FREQUENCIES
ÆČÉÔÁÂ     TABLE OF THE HIGH BYTES OF FREQUENCIES
ÆŌÅŅ       FREQUENCY OF THE CURRENT VOICE (WORD, ÓČÁÄÏŨ,ÃÏÆÆÓÅÔ)
ÉÎÓÔ       INSTRUMENT FOR THE CURRENT FIELD
ÎÏÔÅ       NOTE VALUE FOR THE CURRENT FIELD
ÐŨÉÄÔČ     PULSE WIDTH OF THE CURRENT VOICE (WORD, ÓČÁÄÏŨ+#2,ÃÏÆÆÓÅÔ)
ÓČÁÄÏŨ     SHADOW ÓÉÄ MAINTAINED BY THE SYSTEM
ÓÉÄ        THE REAL ÓÉÄ, $Ä400
ÓÕŌÅĖ      SUSTAIN/RELEASE REGISTER FOR THE CURRENT VOICE (ÓČÁÄÏŨ+#6,ÃÏÆÆÓÅÔ)
Ö1ÓÔÏÐ     IF IT IS SET TO A NONZERO VALUE, VOICE WILL NOT BE PROCESSED AT ALL
Ö2ÓÔÏÐ     .
Ö3ÓÔÏÐ     .
Į0, Į1, ..., Į15  ĮLOBAL VARIABLES.
Ė0, Ė1, ..., Ė7   ĖOCAL VARIABLES.
Í0, Í1, ..., Í31  ÍARKERS.

-------------
ÓÉÄ REGISTERS 
-------------

ÏFFSETS FROM $Ä400

(ÖOICE 1)
$00,$01            ÆREQUENCY, LOW/HIGH BYTE

$02,$03            ÐULSE WIDTH, LOW/HIGH BYTE (ONLY BITS 0..3 OF $03 ARE USED)

$04		   ÖOICE 1 CONTROL REGISTER
      BITS    0    GATE BIT (TURN VOICE ON/OFF)
              1    HARD SYNC (SYNCHRONIZE TO VOICE 3)
              2    RING MODULATION (MODULATE TO VOICE 3)
              3    TEST BIT (RESET VOICE)
              4    TRIANGLE (WAVEFORMS)
              5    SAW
              6    PULSE
              7    NOISE

$05		   ÁTTACK/DECAY
      BITS 0..3    DECAY (0-15)
           7..4    ATTACK (0-15)

$06		   ÓUSTAIN/RELEASE
      BITS 0..3    RELEASE (0-15)
           7..4    SUSTAIN (0-15)

$07 - $0Ä          ÖOICE 2 (SAME AS ABOVE)
$0Å - $14          ÖOICE 3 (SAME AS ABOVE)

$15-$16		   ÆILTER CUTOFF
$15   BITS 0..2    ĖOW BITS OF CUTOFF FREQUENCY
           3..7    ÕNUSED
$16                ČIGH BYTE OF CUTOFF FREQUENCY

$17		   ÆILTER CONTROL REGISTER
      BITS    0    ÆILTER VOICE 1
              1    ÆILTER VOICE 2
              2    ÆILTER VOICE 3
              3    ÆILTER EXTERNAL VOICE
           4..7    ÆILTER RESONANCE (0-15)

$18   BITS 0..3    ÍAIN VOLUME (0-15)
              4    ĖOW PASS FILTER
              5    ÂAND PASS FILTER
              6    ČIGH PASS FILTER
              7    ÄISABLE VOICE 3 OUTPUT

ŌEAD-ONLY REGISTERS:
$19                Ø POTENTIOMETER
$1Á                Ų POTENTIOMETER
$1Â                ÖOICE 3 WAVEFORM
$1Ã                ÖOICE 3 ENVELOPE


---
ÎÅÄ
---

SHIFT-RETURN        - ÉNSERT A NEW LINE
CURSOR KEYS, RETURN - ŨHAT YOU WOULD EXPECT
INSERT, DELETE      - ĖIKEWISE
SHIFT-CLEAR         - ÃLEAR ALL TEXT
HOME                - ÍOVE TO TOP OF FILE
Æ7                  - ĖOAD/SAVE TEXT FILE
RUN/STOP	    - ŅUIT

ÃÔŌĖ-A    - ÄELETE CHARACTERS TO RIGHT OF CURSOR
    -D    - ÄELETE LINE
    -B/N  - ÍOVE TO BEGINNING/END OF LINE
    -C/X  - ÃOPY/CUT LINES TO CLIPBOARD
    -P    - ÐASTE LINE FROM CLIPBOARD
    -J/K  - ÍOVE 40 COLUMNS LEFT/RIGHT (MAX 240 COLUMNS)
    -I/M  - ÍOVE 25 ROWS UP/DOWN
    -G    - ĮOTO LINE #
    -Z    - ÃOMPILE TO $Å000
    - <-  - (ÂACK-ARROW) ŅUIT


-----------------
ÉNSTRUMENT ÅDITOR
-----------------
1,2,3		ÓELECT VOICE 1 2 OR 3
A		ÍOVE TO ÁTTACK
F		ÍOVE TO ÆREQUENCY
SHIFT-F		ÍOVE TO FILTER TOGGLES

TSPN		ÔOGGLE TRIANGLE/SAWTOOTH/PULSE/NOISE BITS
GYRE		ÔOGGLE GATE/SYNC/RING/TEST BITS

ÃŌÓŌ ÕÐ/ÄÎ	ŅUITE OBVIOUS É THINK
ÓPACE		ÔOGGLE
+/-		ÉNC/ÄEC VALUE
ÓHIFT +/-	ÉNC/ÄEC VALUE BY LARGE AMOUNT
< >		ÍULT/ÄIV VALUE BY 2 (PULSE WIDTH, FREQUENCY, AND CUTOFF)
SHIFT-L		ĖOAD INSTRUMENT
SHIFT-S		ÓAVE INSTRUMENT; PRESS ŌÅÔÕŌÎ TO KEEP CURRENT NAME
Æ1		ÍUSIC EDITOR
Æ5		ÍACRO MANAGER
(ÏNE KEY, * OR ĖIRA OR SOME SUCH, TOGGLES THE DISABLE VOICE 3 OUTPUT BIT)


ÍACRO ÍANAGER
-------------
ÃŌÓŌ ÕÐ/ÄÎ	ÄELETE ALL FILES ON CURRENT DRIVE AND RESET COMPUTER
ÃŌÓŌ ŌÔ		ÅDIT MACRO NAME
E OR ŌETURN	ÅDIT MACRO (ÎÅÄ)
A		ÁUTOCOMPILE ALL MACROS UPON EXIT FROM ÎÅÄ
C		ÃOMPILE ALL MACROS
D		ÄELETE MACRO
ÓHIFT-ÃĖŌ	ÄELETE ALL MACROS (MAY PRESERVE NAMES)
ÃÔŌĖ-P		ÐLAY SONG FROM BEGINNING/ÓTOP PLAYING SONG
Æ1		ÍUSIC EDITOR
Æ3		ÉNSTRUMENT EDITOR
Æ7		ĖOAD/SAVE MACRO BUNDLE
Æ8		ĖOAD/SAVE SINGLE FILE


ÍUSIC ÅDITOR
------------

ÆLAGS:
  !  ÓINGLEKEY MODE
  "  ÆIELD DISPLAY MODE
  #  ŌAISE NEXT NOTE
  $  ČEX/DECIMAL MODE
  Á  ÁUDIBLE MODE
  Ô  ÔRANSPOSE MODE
  Ō  ŌETURN MODE

ÃŌÓŌ ÕÐ/ÄÎ,Ė/Ō 	ÎAVIGATE
ŌETURN		ÉNSERT LINE AND MOVE CURSOR FORWARD
ÓPACE		ÁCCEPT CURRENT VALUE
ÉÎÓÔ		ÉNSERT
ÄÅĖ		ÄELETE

0-7		ÓET DEFAULT OCTAVE
ÓHIFT-1		ÔOGGLE SINGLE-KEYSTROKE MODE
ÓHIFT +/-	ÉNC/DEC DEFAULT DURATION
+/-		ÉNCREMENT/DECREMENT DEFAULT OCTAVE
]/[		ÉNC/DEC DEFAULT MACRO
Ã=-[ Ã=-[	ÉNC/DEC BY LARGE AMOUNT
#		ŌAISE NEXT NOTE (#A SAME AS A#)

ÓHIFT-2		ÔOGGLE FIELD DISPLAY MODE (INSTRUCTIONS OR MACRO NAMES)
ÓHIFT-4		ÔOGGLE NUMBER BASE (BASE 10/BASE 16)
ÓHIFT-6		ÔOGGLE STATUS WINDOW DISPLAY 
		  MODE 0: ÓYSTEM INFORMATION
		  MODE 1: ÄISPLAY MACRO NAMES AND DEFAULT MACRO
		  MODE 2: ÄISPLAY MACRO NAMES AND ACTIVE MACROS
ÓHIFT-7		ÔOGGLE ŌETURN MODE (INSERT ÃŌ AFTER PLAYER INSTRUCTIONS)

Ã=-1 THROUGH Ã=-4 ÍETA KEYS
ÃÔŌĖ -M		  ÁSSIGN META KEY

ÓHIFT-5		ÏPEN/CLOSE FOLD
Ã=   -F		ÓET FOLD BLOCK/END FOLD BLOCK
Ã=   -5 (Ã=-%)	ÄISSOLVE FOLD

Ã=   -X		ÓET BLOCK/CUT TO CLIPBOARD
Ã=   -C		ÓET BLOCK/COPY TO CLIPBOARD
Ã=   -P		ÐASTE FROM CLIPBOARD

@		ĮOTO LINE
ÓHIFT-@		ĮOTO MARKER
ČÏÍÅ		ÓET HOME (BOOKMARK)
Ã=   -ČÏÍÅ	ĮO HOME
<		ÐAGE UP
>		ÐAGE DOWN
Ã=   -<		ĮO TO BEGINNING OF FIELD
Ã=   ->		ĮO TO END OF FIELD
.		(ÐLAY NOTE UNDER CURSOR/ÔRANSPOSE NOTE UNDER CURSOR AND)
	        ADVANCE CURSOR
ÓHIFT-ÃĖŌ	ÃLEAR ALL DATA
SHIFT-^ (PI)	ÃLEAR ÓÉÄ
*		ÔOGGLE GATE BIT FOR CURRENT VOICE

A-W,Y		ÎOTES 0-24
A-L,A#-L#	ÎOTES 0-24, ALTERNATE FORM
#A-#L		ÓAME AS A#-L# 
X		ČOLD NOTE
0-7		ÏCTAVE
0-9,Á-Î 	ÄURATION
<- (BACKARROW)	ÂACK UP ONE LEVEL IN NOTE-OCTAVE-DUR SEQUENCE

ÏTHER:

Ã=+, Ã=-	ÄOUBLE/HALVE CURRENT PLAY SPEED (TEMPORARY, PLAYBACK ONLY)
=		ÔOGGLE BORDER RASTER 

ÃÔŌĖ- E		ÅXIT TO ÂÁÓÉÃ (ŌÓ/ŌÅÓÔÏŌÅ TO RE-ENTER EDITOR)
ÃÔŌĖ- I		ÓET INTERRUPT
ÃÔŌĖ- D		ÅDIT DURATION TABLE (ŌUN/ÓTOP OR 'E' TO EXIT)
ÃÔŌĖ- N		ÅDIT NOTE TABLE (ŌUN/ÓTOP OR 'E' TO EXIT)
ÃÔŌĖ- Z		ÄISPLAY INSTRUMENT TABLE
ÃÔŌĖ- P		ÐLAY SONG
ÓČÉÆÔ-ÃÔŌĖ-P	ÐLAY SONG FROM CURRENT LOCATION

ÃÔŌĖ- M		ÁSSIGN META KEY
ÃÔŌĖ- A		ÁUDIBLE (PLAY NOTES AS THEY ARE ENTERED)
ÃÔŌĖ- T		ÅNABLE TRANSPOSE
SHIFT-ÃÔŌĖ-T	ÓET TRANSPOSE VALUES (NEGATIVE VALUES ALLOWED)
.		ÐLAY NOTE UNDER CURSOR (IF AUDIBLE),
	        TRANSPOSE UNDER CURSOR (IF TRANSPOSE ACTIVE),
	        AND ADVANCE CURSOR
ÃÔŌĖ- S		ÓINGLE STEP - SPACE, (S)KIP, (C)HANGE SKIP VALUE, RETURN=EXIT
ÓČÉÆÔ-ÃÔŌĖ-S	ÓINGLE STEP FROM CURRENT LOCATION

Æ3		ÉNSTRUMENT EDITOR
Æ5		ÍACRO MANAGER
Æ7		ÄISK MENU
Æ8		ĖOAD OLD VERSION DATA DISK MENU
		-- ÄÏÎ'Ô FORGET TO RECOMPILE! :)

ÐLAYER DIRECTIVES:

ÓHIFT-W		ÓET VOLUME (ÔHE NUCLEAR WESSEL DISPLACES A LARGE WOLUME)

ÓHIFT-L		ÁCTIVATE LOCAL MACRO (0-23)
Ã=   -L		ÄEACTIVATE LOCAL (0-23)
ÓHIFT-G		ÁCTIVATE GLOBAL MACRO (0-23)
Ã=   -G		ÄEACTIVATE GLOBAL (0-23)
ÓHIFT-V		ĖOAD LOCAL VARIABLE WITH VALUE (0-7, 0-255)
Ã=   -V		ĖOAD GLOBAL VARIABLE (0-15, 0-255)
ÓHIFT-M		ÓET MARKER (0-31)
Ã=   -M		ÃLEAR MARKER (0-31)
ÓHIFT-I		ĖOAD INSTRUMENT (0-13)

Ã=   -S		ÓŲÎÃ
Ã=   -W		ŨÁÉÔ FOR SYNC

ÓHIFT-J		ĘUMP TO MARKER
Ã=   -J		ĘUMP TO SUBROUTINE AT MARKER
Ã=   -T		REÔURN FROM ÓUBROUTINE

ÓHIFT-R		ŌEPEAT BEGIN (0-255 REPETITIONS)
Ã=   -R		ÅND REPEAT
ÓHIFT-O		ĮATE ON
Ã=   -O		ĮATE OFF
ÓHIFT-C		ÃYCLE ÔEST BIT
ÓHIFT-U		ÓLUR MODE
Ã=   -U		ÄEACTIVATE SLUR MODE
ÓHIFT-S		ÓTOP VOICE
ÓHIFT-Z		ŌESTART PLAYER


ÐRESSING ŌUN/ÓTOP-ŌÅÓÔÏŌÅ RESETS ÔUNESMITH.

Ō/Ó-ŌÅÓÔÏŌÅ WILL GET YOU OUT OF A JAM IN MOST CASES.  ÅVERYTHING -- MUSIC,
INSTRUMENTS, TABLES, MACROS, ETC. -- IS PRESERVED AS BEST AS CAN BE.

----------------
ÔHINGS THAT BITE
----------------

	- ÃALLING UNCOMPILED MACROS CAN LEAD TO DISASTER.  ÔHE ÍACRO
	  POINTER IN THE STATUS BOX IS HIGHLIGHTED WHEN MACROS HAVE
	  NOT BEEN COMPILED.

	- ÍISSING MACRO ÅÎÔŌŲ POINTS CAN LEAD TO DISASTER.

	- ÓAVING MUSIC DOES NOT SAVE MACRO TEXT, AND VICE VERSA.

	- ÉNSTRUMENTS MUST BE SAVED BEFORE BEING USED.

	- ÉF NO VOLUME IS SET THEN NO VOLUME WILL BE HEARD.

	- ÓÉÄ IS READ ONLY, SO USE THE ÓHADOW ÓÉÄ FOR MODIFICATIONS

	- ÍACROS _ALWAYS_ PRESERVE .Ų -- IF THEY JUMP TO AN OUTSIDE PROGRAM,
	  MAKE SURE IT PRESERVES .Ų AS WELL!

-------------
ÍEMORY LAYOUT
-------------

$0800	ÅDITOR STUFF
$1000-$19XX OR SO	ÐLAYER
$19XX
	ÃOMPILED MACROS
	ÆIELD 1 DATA
	ÆIELD 2 DATA
	ÆIELD 3 DATA
ÆÉÅĖÄÅÎÄ
	ÆOLD STUFF
ÆŌÅÂÏÔ  ÆREE MEMORY
	...
	ÃLIPBOARD
ÆŌÅÔÏÐ	ÅND OF FREE MEMORY
	ÍACRO TEXT
$667Å	ÍACRO NAMES AND ADDRESSES (HOT DATE TONIGHT!)
$6800	ÂEGINNING OF MAIN PROGRAM
$ÃÄ18	ÅND OF MAIN PROGRAM
$ÃÄ00-$ÃÆÆÆ	ÕSED BY COMPILER (VARIABLES, STACK, QUEUE)
$Å000	ÆREE MEM, ÎÅÄ CLIP/COMPILE BUFFER

ÍACRO TEXT BUILDS DOWNWARDS FROM THE TOP OF MEMORY; FOLDS, FIELDS AND COMPILED
MACROS BUILD UPWARDS.  ÔHE CLIPBOARD IS STORED IN THE TOP OF FREE MEMORY.
ÍEMORY IS A LITTLE TIGHTER NOW; MACRO TEXT MAY BE DELETED TO SAVE MEMORY.


-------------------------------
ÃONVERTING BETWEEN ÐÁĖ AND ÎÔÓÃ
-------------------------------

	ÔHE PLAYER USES A DEFAULT TIMER SETTING OF $42Ã6, WHICH SYNCHRONIZES
THE PLAYER WITH AN ÎÔÓÃ SCREEN.  ÐÁĖ USERS (AND SOME ÎÔÓÃ USERS) WILL NEED
TO SET A DIFFERENT VALUE USING ÃÔŌĖ-I.  ÔHE VALUES ARE:

100% SCREEN SYNC:

6567Ō56Á: 64*262-1      $417Æ   ÎÔÓÃ (RARE)
6567Ō8+:  65*263-1	$42Ã6   ÎÔÓÃ (DEFAULT)
6569:     63*312-1      $4ÃÃ7	ÐÁĖ

ÔHE PLAYER IS SYNCHRONIZED WITH THE SCREEN WHEN THE BORDER RASTER DOES
NOT MOVE.
	ÐÁĖ AND ÎÔÓÃ MACHINES RUN AT SLIGHTLY DIFFERENT FREQUENCIES.
ÔHEREFORE TO HEAR ÐÁĖ TUNES AT ÐÁĖ SPEEDS ON AN ÎÔÓÃ MACHINE THE TIMER
VALUE SHOULD BE MULTIPLIED BY APPROXIMATELY 0.963353.  ÓIMILARLY, ÐÁĖ
USERS SHOULD MULTIPLY BY 1.03804 TO HEAR ÎÔÓÃ TUNES AT ÎÔÓÃ SPEEDS.
ÉT'S NOT ÍÕÃČ OF A DIFFERENCE, BUT IT'S A DIFFERENCE :).
	ÆINALLY, SINCE THE MACHINES RUN AT DIFFERENT SPEEDS, THE ÐÁĖ NOTE 
VALUES ARE DIFFERENT THAN THE (DEFAULT) ÎÔÓÃ VALUES -- USING ÎÔÓÃ FREQUENCY
SETTINGS ON A ÐÁĖ MACHINE IS LIKE PLAYING A 1.02ÍČZ SAMPLE AT 0.99ÍČZ.
ÔHE EXACT PITCH FORMULA IS

	ÆŌÅŅÕÅÎÃŲ = (ŌÅĮÉÓÔÅŌ ÖÁĖÕÅ * ÃĖÏÃË)/16777216 ČZ

WHERE ÃĖÏÃË=1022730 FOR ÎÔÓÃ SYSTEMS AND ÃĖÏÃË=985250 FOR ÐÁĖ SYSTEMS.
ÁGAIN, YOU CAN MULTIPLY THE REGISTER SETTINGS BY 1.03804 OR 0.96335
TO CONVERT BETWEEN SYSTEMS IF YOU REALLY WANT TO (THE DIFFERENCE IS
PRETTY TRIVIAL, AND THE MODIFICATION IS NOT NECESSARY -- IT'S JUST
A POINT OF INTEREST :).