home *** CD-ROM | disk | FTP | other *** search
- ═ACHINE ╠ANGUAGE FOR ┬EGINNERS (╨ART 2)
- BY
- ╠YLE ╟IESE
- ─┼╠╨╚╔ ═AIL: ╠┘╠┼╟
-
- ╧NE OF THE ╘OOLS OF THE TRADE FOR ═ACHINE ╠ANGUAGE ╨ROGRAMING!
-
- ╫HEN YOU WANTED TO LEARN ABOUT ┬┴╙╔├ YOU READ AND PLAYED DIRECTLY
- WITH ┬┴╙╔├ PROGRAMS. ╒SING THE ┬┴╙╔├ EDITOR, YOU LISTED PROGRAMS TO
- THE SCREEN AND PRINTER,
- WROTE SIMPLE PROGRAMS, AND MODIFYED OTHERS. ╔N ORDER TO DO THAT YOU
- USED ┬┴╙╔├ ITSELF IN THE FORM OF ITS EDITOR. ╘HE EQUIVELENT OF THAT
- FOR ═╠ IS THE ═ONITOR. ╘HERE ARE SEVERAL GOOD ╨─ MONITORS AVAILIBLE
- AND WE HAVE SOME OF THEM IN OUR DATABASES IN THE ╞LAGSHIP UNDER
- ╠ANGUAGES & ═╠.
-
- ╧NE OF THE SIMPLER ONES IS ╙UPERMON, WRITEN BY ╩IM ┬UTTERFIELD. ╔T'S
- FEATURES BECAME THE STANDARD FOR MONITORS AND MOST MONITORS HAVE MORE
- FEATURES, BUT THEY ARE GENERALLY SUPERSETS OF THE INSTRUCTIONS FOUND
- IN ╙UPERMON. ╘HAT IS THE OTHER
- MONITORS TOOK ╙UPERMON AND ADDED MORE FEATURES WITH OUT CHANGING ANY
- OF THE FEATURES OR SYNTAX OF THE COMMANDS FOUND IN ╙UPERMON. ═ICROMON
- IS ONE OF THEM AND THERE IS MORE THAT ONE VERSION OF IT AROUND. ╘HE
- MAIN DIFFERENCE IN THEM IS WHERE IN MEMORY THE PROGRAM IS LOADED AND
- RUN FROM. ╧NE OF THE FEATURES THAT ═ICROMON ADDED WAS TO BE ABILITY
- TO OUTPUT THE DISASSEMBLY TO A PRINTER.
- ╙O IF YOU USE ╙UPERMON AND CAN USE ALL OF THE INSTRUCTION IN IT, YOU
- WON'T HAVE MUCH TROUBLE UPGRADING TO A BETTER ONE. ┬Y THE WAY ONE OF
- MY FAVORITES THAT ╔ USE IS '╚┼╙═╧╬' FROM ╚ESWARE. ╫HEN ╔ AM DOING
- SOME HEAVY DUTY WORK ╔ USE THAT BECAUSE IT IS IN CARTIRIDGE FORM.
- ╫HEN ╔ LOCK UP THE COMPUTER, IT IS RIGHT THERE
- WHEN ╔ POWER BACK UP, BUT IT DOES HAVE THE DISADVANTAGE OF OCCUPYING
- MEMORY FROM $8000 TO $9╞╞╞. ╔T TOO FOLLOWS THE BASIC SYNTAX OF
- ╙UPERMON.
-
- ╘O USE ╙UPERMON, LOAD "╙╒╨┼╥═╧╬",8 AND RUN. ╔T HAS NOW SEALED ITSELF
- OFF UP AT THE TOP OF BASIC. ╔F YOU EXIT ╙UPERMON, YOU CAN GO BACK BY
- ╙┘╙(PEEK(55)+PEEK(56)*256). ╫HEN IT FIRST BOOTS UP AND AFTER THE
- TITLE YOU SEE:
-
- ╨├ ╙╥ ┴├ ╪╥ ┘╥ ╙╨
- .; 0000 01 02 03 04 05 .
-
- ╔F YOU TYPE ANY COMMANDS THEY WILL BE DISPLAYED ON THE THIRD LINE
- RIGHT AFTER THE PERIOD.
- ╘HIS WILL BE THE SAME DISPLAY THAT YOU WILL GET AFTER TYPING THE '╥'
- COMMAND.
- ╘WO NOTES: ALL COMMANDS ARE FOLLOWED BY A CARRIAGE RETURN IN
- ORDER TO BE EXECUTED AND ALL ADRESSES AND NUMBERS ARE IN ╚EX EVEN
- THOUGH THEY ARE NOT PREFIXED
- WITH A '$'. ╘HE '╥' COMMAND IS FOR DISPLAYING THE REGISTERS.
- ╘HE FIRST LINE IDENTIFIES THE REGISTERS. ╘HE SECOND LINE SHOWS THE
- CONTENTS OF THEM, AND OF COURSE WILL BE DIFFERENT THAT THAT SHOWN.
- ╘HE FIRST IS THE ╨ROGRAM ├OUNTER. ╘HE SECOND IS THE ╙TATUS ╥EGISTER,
- THIS IS WHERE THOSE FLAGS ARE THAT WE USE IN OUR BRANCH INSTRUCTIONS.
- ╘HE NEXT ONE IS THE ┴ REGISTER OR ┴CCUMULATOR. ╘HE FOURTH IS THE ╪
- REGISTER FOLLOWED BY ┘ ╥EGISTER. ┴ND THE LAST ONE IS THE ╙TACK
- ╨OINTER, THAT IS THE INDEX INTO THE STACK POINTING TO THE NEXT
- AVAILIBLE STORAGE POSITION.
-
- ╘HE REST OF THE COMMANDS ARE AS FOLLOWS:
-
- .┴ ├000 ╠─┴ #$00
-
- ╘HIS STARTS
- A SINGLE LINE ASSEMBLY AT $├000(49152) WITH THE INSTRUCTION ╠─┴ #$00.
- ╧F COURSE YOU WILL USE ANY INSTRUCTION THAT YOUR PROGRAM NEEDS. ╘HE
- ASSEMBLER WILL CHECK THE SYNTAX OF THE INSTRUCTION(IF IT DOESN'T LIKE
- IT, IT WILL
- RESPOND WITH A ? ON THE SAME LINE.) AND ON THE NEXT LINE RESPOND WITH
- THE NEXT ADDRESS FOR YOU. ╠IKE THIS:
-
- .┴ ├002
-
- ╙O AFTER THE FIRST LINE THE ASSEMBLER WILL SUPPLY THE ADDRESS. ╫HEN
- YOU ARE FINISHED SIMPLY TYPE A RETURN TO GET OUT OF THE ASSEMBLE
- MODE.
-
- .├ 1000 1010 0┼
-
- ╘HIS COMMAND CALCULATES THE OFFSET NEEDED FOR BRANCH INSTRUCTIONS.
- ╘HE FIRST ADDRESS IS WHERE THE BRANCH INSTRUCTION IS AND THE SECOND
- IS THE DESTINATION ADDRESS. ╘HE MONITOR WILL CALCULATE THE
- OFFSET ($0┼).
- ╘HIS COMMAND, IN MY OPINION, IS OF LITTLE VALUE. ╫HEN WRITING WITH
- THIS ASSEMBLER, IT CALCULATES BRANCHES FOR YOU BY YOU SPECIFYING THE
- TARGET ADDRESS IN THE INSTRUCTION, SUCH AS;
-
- .┴ ├011 ┬╬┼ ├01╞
-
- ╚OWEVER,
- SOMETIMES YOU NEED TO DO A FORWARD BRANCH (AS IN THE ABOVE EXAMPLE)
- AND YOU ARE NOT SURE WHERE THE TARGET WILL BE UNTIL YOU CODE ALL THE
- INSTRUCTIONS. ╔N THAT CASE IT WOULD BE EASY TO BRANCH TO THE SAME
- INSTRUCTION AS YOU ARE ON. ╩OT DOWN THE ADDRESS FOR THAT INSTRUCTION
- AND LATER FILL IN THE EXACT ADDRESS YOU WILL NEED.
-
- .┴ ├011 ┬╬┼ ├011
-
- ┘OU WOULD NEED TO WRITE DOWN $├011. ╠ATER AFTER YOU WROTE THE CODE
- YOU WANT TO BRANCH AROUND, YOU FIND OUT YOU WANT TO BRANCH TO ├01╞:
-
- .┴ ├011 ┬╬┼ ├01╞
- .─ ├000
-
- ╘HIS WILL DISASSEMBLE 22 INSTRUCTIONS STARTING AT $├000. ╘HE DISPLAY
- CAN BE MODIFIED AND ENTERED BY USING THE CURSOR KEYS AND HITTING THE
- RETURN KEY WHILE ON THE LINE BEING MODIFIED. ╘O SEE THE NEXT SET OF
- INSTRUCTIONS, (THE CURSOR IS ON THE SPACE AFTER THE PERIOD OF THE
- LAST LINE) TYPE '─' AND RETURN.
-
- .╞ ├┼00 ├╞00 ╞╞
-
- ╘HIS MONITOR INSTRUCTION WILL FILL THE MEMORY FROM $├┼00 TO $├╞00,
- INCLUSIVE, WITH THE VALUE $╞╞.
-
- .╟ ├000
-
- ╘HIS IS SIMULAR TO THE '╙┘╙' INSTRUCTION IN ┬┴╙╔├ EXCEPT THE NUMBER
- IS EXPECTED TO BE IN ╚EX INSTEAD OF DECIMAL. ┴LSO IF NO START ADDRESS
- IS GIVEN, THE MONITOR WILL GO TO THE ADDRESS CURRENTLY SHOWN IN THE
- ╨├ REGISTER.
-
- .╚ ├000 ─000 '╥┼┴─
-
- ╘HIS COMMAND WILL ╚UNT FROM $├000 TO $─000 FOR THE OCCURENCE OF THE
- ┴╙├╔╔ STRING
- '╥┼┴─'. ╔T WILL RESPOND WITH THE ADDRESSES WHERE IT IS FOUND(IF ANY).
-
- .╠ "╞ILENAME" 08
-
- ╫ILL LOAD THE PROGRAM '╞ILENAME' FROM DEVICE 8. ╔F YOU DON'T SPECIFY
- A DEVICE ╙UPERMON WILL DEFAULT TO THE CASSETTE DRIVE.
-
- .═ ├000 ├02╞
-
- ╘HIS COMMAND WILL SHOW A HEX DUMP OF THE MEMORY LOCATIONS FROM $├000
- TO $├02╞. ╠IKE THIS:
-
- .: ├000 00 01 02 03 04 05 06 07
-
- ╙OME OF THE
- NEWER MONITORS ALSO GIVE YOU AN ┴╙├╔╔ REPRESENTATION OF THE BYTES TO
- THE RIGHT OF THE NUMBERS. ┴GAIN THE INFORMATION CAN BE MODIFYED AND
- CHANGED BY EDITING AND HITTING RETURN FOR EACH LINE.
-
- .╥
-
- ╨├ ╙╥ ┴├ ╪╥ ┘╥ ╙╨
- .; ├000 01 02 03 04 05
-
- ╘HIS COMMAND RETURNS A DISPLAY OF THE CURRENT REGISTER COMMANDS IN
- THE FOLLOWING
- ORDER: ╨ROGRAM ├OUNTER, ╙TATUS ╥EGISTER, ┴CCUMLATOR, ╪ ╥EGISTER, ┘
- ╥EGISTER, AND ╙TACK ╥EGISTER.
-
- .╙ "FILENAME",08,├000,├101
-
- ╘HIS COMMAND SAVES AN AREA OF MEMORY UNDER 'FILENAME' TO DEVICE 08.
- ╘HE MEMORY SAVED IS FROM $├000 TO $├100. ╘╚╔╙ ╔╙ ╔═╨╧╥╘┴╬╘! ┴LL
- ├OMMODORE MONITORS DO ╬╧╘ SAVE THAT BYTE UNDER THE SPECIFIED ENDING
- ADRESS. ┘OU MUST SPECIFY THE ENDING ADDRESS +1 OF YOUR PROGRAM.
-
- .╘ ├000 ├100 ├┼00
-
- ╘HIS COMMAND COPIES OR TRANSFERS THE CONTENTS OF MEMORY LOCATIONS
- $├000-$├100 TO $├┼00-$├╞00.
-
- .╪
-
- ╘HIS IS THE LAST COMMAND IN OUR LONG JOURNEY TODAY. ╘HIS COMMAND
- RETURNS TO OUR FRIENDLY(?) ┬┴╙╔├. ╥EMEMBER TO RETURN TO
- ╙UPERMON-╙┘╙(╨┼┼╦(55)+256*╨┼┼╦(56)).
-
- ╘HIS WAS A JOURNEY ONE OF THE TOOLS OF THE TRADE FOR ═╠ WORK. ╞OR
- MORE INFORMATION STAY TUNED FOR AN ARTICLE ON HELP WITH
- ═┴─╙, ├OMMODORE'S LABEL BASED ASSEMBLER.
-