╪-═ON 64 IS ONE OF THE MOST COMMON OF THE PUBLIC-DOMAIN MACHINE LANGUAGE MONITORS. ╔T IS ONE OF THE BEST AS WELL. ╚ERE IS A BRIEF DESCRIPTION OF ITS FEATURES.
╙IMPLE ┴SSEMBLER
.┴ 2000 ┴9 12 ╠─┴ #$12
.┴ 2002 9D 00 80 ╙╘┴ $8000,X
.┴ 2005
╔N THE ABOVE EXAMPLE, THE USER BEGAN ASSEMBLY AT $2000. ╘HE FIRST INSTRUCTION WAS LOAD ACCUMULATOR IMMEDIATE WITH $12. ╔N THE SECOND LINE THE USER DID NOT NEED TO TYPE THE ┴ AND ADDRESS. ╘HE SIMPLE ASSEMBLER RETYPED THE LAST ENTERED LINE AND PROMPTS WITH THE NEXT ADDRESS. ╘O EXIT THE ASSEMBLER, PRESS [╥┼╘╒╥╬] AFTER THE ADDRESS PROMPT. ╙YNTAX IS THE SAME AS THE DISSASEMBLER OUTPUT. ┴ ':' CAN BE USED TO TERMINATE A LINE.
├OMPARE ═EMORY
.├ 1000 2000 ├000
├OMPARES MEMORY FROM $1000 TO $2000 TO MEMORY BEGINNING AT $├000. ├OMPARE WILL PRINT THE LOCATIONS OF UNEQUAL BYTES.
─ISASSEMBLER
.─ 2000
─ISASSEMBLES TO THE END OF MEMORY STARTING AT $1000. ╘HE THREE BYTES FOLLOWING THE ADDRESS MAY BE MODIFIED. ╒SE THE [CRSR] KEYS TO MOVE TO AND MODIFY THE BYTES. ╚IT [╥┼╘╒╥╬] AND THE BYTES IN MEMORY WILL BE CHANGED. ┼╪╘╥┴═╧╬ WILL THEN DISSASEMBLE THAT LINE AGAIN.
.─ 2000 3000
─ISASSEMBLES FROM $2000 TO $3000.
╞ILL ═EMORY
.╞ 1000 1100 ╞╞
╞ILLS THE MEMORY FROM $1000 TO $1100 WITH THE BYTE $╞╞.
╟O ╥UN
.╟
╟O TO THE ADDRESS IN THE ╨├ REGISTER DISPLAY AND EXECUTE CODE. ┴LL THE REGISTERS WILL BE REPLACED WITH THE DISPLAYED VALUES.
.╟ 1000
╟O TO ADDRESS $1000 AND BEGIN RUNNING CODE.
╚UNT ═EMORY
.╚ ├000 ─000 '╥┼┴─
╚UNT THROUGH MEMORY FROM $├000 TO $─000 FOR THE ┴╙├╔╔ STRING '╥┼┴─' AND PRINT THE ADDRESSES WHERE IT IS FOUND. ┴ MAXIMUM OF 32 CHARACTERS MAY BE USED.
.╚ ├000 ─000 20 ─2 ╞─
╚UNT MUMORY FROM $├000 TO $─000 FOR THE SEQUENCE OF BYTES $20, $─2, $╞─ AND PRINT ANY ADDRESS WHERE IT IS FOUND. ┴ MAXIMUM OF 32 BYTES MAY BE USED. ╚UNT CAN BE STOPPED WITH THE [╥╒╬/╙╘╧╨] KEY.
╔NTEREGATE ═EMORY
.╔ ╞000
.' ╞000 54 4╞ 4╞ 20 4─ 41 4┼ 59 ╘╧╧ ═┴╬
.' ╞008 20 46 49 4├ 45 ─3 46 49 ╞╔╠┼╙╞╔
─ISPLAYS HEX AND ┴╙├╔╔ UNTIL THE END OF MEMORY.
.╔ ╞000 ╞080
─ISPLAYS HEX AND ┴╙├╔╔ FROM $╞000 TO $╞080.
╠OAD
.╠"FILENAME"
╠OADS A FILE FROM THE CASSETTE UNIT.
.╠"FILENAME",08
╠OADS A FILE FROM THE DISK DRIVE.
┬┼╫┴╥┼: ╠OAD WITH A FILE NAME BREAKS THE ╔╥╤ SAVED BY THE MONITOR. ─O NOT USE .╟ TO THE ╨├ REGISTER AFTER A LOAD WITH A FILENAME.
═EMORY ─ISPLAY
.═ 0000 0008
.: 0000 00 01 ┴0 ┬3 4─ 5├ ╞6 ┼7
.: 0008 28 49 8┴ 4┬ 5├ 7─ 0┼ 3╞
─ISPLAY MEMORY FROM $0000 TO $0008. ╘HE BYTES FOLLOWING THE ADDRESS MAY BE MODIFIED BY EDITING AND THEN PRESSING [╥┼╘╒╥╬].
╬EW ╠OCATOR
.╬ 7000 77╞╞ 6000 0400 9000
.╬ 77├─ 77╞╞ 6000 0400 9000 ╫
╘HE FIRST LINE FIXES ALL THREE BYTE INSTRUCTIONS IN THE RANGE $7000 TO $77╞╞ BY ADDING $6000 OFFSET TO THE BYTES FOLLOWING THE INSTRUCTION. ╬EW LOCATOR WILL NOT ADJUST ANY INSTRUCTION OUTSIDE OF THE $0400 TO $├000 RANGE. ╘HE SECOND LINE ADJUSTS .WORD VALUES IN THE SAME RANGE AS THE FIRST LINE. ╬EW LOCATOR STOPS AND DISASSEMBLES ON ANY BAD OP CODE.
╥EGISTER ─ISPLAY
.╥
╨├ ╔╥╤ ╙╥ ┴├ ╪╥ ┘╥ ╙╨
.; 0000 ┼62┼ 51 ─┼ 03 04 05
─ISPLAYS THE REGISTER VALUES. ╘HE VALUES MAY BE CHANGED BY EDITING THEM AND PRESSING [╥┼╘╒╥╬].
╙AVE
.╙"FILENAME",01,0800,0├80
╙AVE TO CASSETTE THE CONTENTS OF LOCATIONS $0800 UP TO (NOT INCLUDING) $0├80.
.╙"FILENAME",08,0800,0├80
╙AVE TO DISKETTE THE CONTENTS OF LOCATIONS $0800 UP TO (NOT INCLUDING) $0├80.
┬┼╫┴╥┼: ╙AVE TO TAPE WITH FILENAME BREAKS THE ╔╥╤ SAVED BY THE MONITOR.
╘RANSFER ═EMORY
.╘ 1000 1100 5000
╘RANSFER MEMORY IN THE RANGE $1000 TO $1100 AND START STORING IT AT $5000.
╫ALK ├ODE
.╫
╙INGLE STEP STARTING AT THE ADDRESS IN THE ╨├.
.╫ 1000
╙INGLE STEP STARTING AT $1000. ╫ALK WILL CAUSE A SINGLE STEP TO EXECUTE AND WILL DISASSEMBLE THE NEXT INSTRUCTION. ╙TEP SPEED MAY BE CONTROLLED WITH [<] FOR ╙╔╬╟╠┼ ╙╘┼╨, [╥╓╙] FOR ╙╠╧╫, AND [╙╨┴├┼] FOR ╞┴╙╘.
┼XIT TO ┬┴╙╔├
.╪
╥ETURN TO ┬┴╙╔├ READY MODE. ╘HE STACK VALUE SAVED WHEN ENTERED WILL BE RESTORED. ├ARE SHOULD BE TAKEN THAT THIS VALUE IS THE SAME AS WHEN THE MONITOR WAS ENTERED. ┴ ├╠╥ OR ANYTHING THAT WOULD CAUSE A ╙┘╬╘┴╪ ┼╥╥╧╥ IN ┬┴╙╔├ WILL FIX ANY STACK PROBLEMS.
╘HIS COMMAND WILL EXIT TO ┬┴╙╔├ READY MODE. ╒SE ╙UPER ┴IDE'S ╥┼╙╘╧╥┼ ═ KEY SEQUENCE AND ALL STACK PROBLEMS WILL BE HANDLED PROPERLY. ╧THERWISE ╪-═ON MAY LEAVE TWO BYTES OF GARBAGE ON THE STACK. ╘HIS IS NOT FATAL FOR A LONG TIME, BUT IT IS ANNOYING!
╨RINTED ╧UTPUT
╨RINTED OUTPUT CAN BE OBTAINED FROM ANY ┼╪╘╥┴═╧╬ COMMAND BY TYPING A '*'. ╬OTE:╙UPER ┴IDE'S ╥┼╙╘╧╥┼ ╨ COMMAND WILL NOT WORK HERE.