6502 MICROPROCESSOR CROSS ASSEMBLER WRITTEN BY: J. DALE E. HOLT APRIL 1981 USAF WEAPONS LAB KIRTLAND AFB, NM 87117 (505) 844-9831 INCLUDED IN THIS PACKAGE ARE THE SOURCE CODE FILES AND ONE EXECUTABLE IMAGE. THE ASSEMBLER IS WRITTEN IN BASIC. THE DOWNLOADER AND ASSOCIATED SUBROUTINES ARE WRITTEN IN FORTRAN. THE TMEMTEST.SYM IS A SAMPLE ASSEMBLY LANGUAGE SOURCE CODE FILE OF A 6502 PROGRAM WRITTEN FOR THE SYM-1 (IT ACTUALLY RUNS). ***************************************************************************** ***************************************************************************** INSTRUCTIONS FOR THE 6502 SOURCE CODE FILE STRUCTURE: FORMAT DATA FOR SOURCE CODE FILES THE FORMAT IS VERY CLOSE TO SYNERTEC SYNTAX LABELS SHOULD NOT START WITH *,$,#,@,<,>,'," LABELS SHOULD NOT INCLUDE A MINUS SIGN (-), NOR A PLUS SIGN (+) OPERAND PARAMETERS: PREFIXES: * MEANS ZERO PAGE ADDRESS $ MEANS HEXADECIMAL VALUE (2 OR 4 DIGITS) # MEANS DECIMAL VALUE (0-255) @ MEANS ASCII LITERAL (1 CHARACTER) < MEANS LOW BYTE OF OPERAND ADDRESS > MEANS HIGH BYTE OF OPERAND ADDRESS SUFFIXES: ,X MEANS INDEXED BY X ,Y MEANS INDEXED BY Y +N MEANS LABEL ADDRESS PLUS N WHERE N LESS THAN 10 -N MEANS LABEL ADDRESS MINUS N WHERE N LESS THAN 10 PARENTHESES ARE USED TO INDICATE INDIRECT ADDRESSING IMMEDIATE MODE ADDRESSING IS INDICATED BY SYNTAX ASCII LITERALS,DECIMAL NUMBERS,AND TWO DIGIT HEX NUMBERS INDICATE IMMEDIATE MODE ADDRESSING FORMAT REQUIREMENTS: THE ASSSEMBLER HAS AN INPUT PARSER. LABELS AND CONTROL LINES MUST BEGIN IN COLUMN ONE. A TAB OR SPACE IS USED TO SEPARATE OTHER FIELDS. MULTIPLE TABS OR SPACES MAY BE USED. CONTROL LINES ARE NOT PARSED. CONTROL LINES: *NAME XXXXXXXXX WHERE XXXXXXXXX IS THE PROGRAM NAME *END INDICATES END OF INPUT *LOCATE $XXXX WHERE XXXX INDICATES THE HEX ORIGIN LOCATION FOR ASSEMBLY OF CODE FOLLOWING THIS LINE *CODE INDICATES START OF INSTRUCTION SEQUENCE *LABEL INDICATES START OF LABEL TABLE INSERTS ** COMMENT LINES BEGIN WITH DOUBLE ASTERISKS ; OR WITH A SEMICOLON SYM MONITOR LABELS FOR SEVERAL MONITOR SUBROUTINES AND OTHER IMPORTANT VARIABLES ARE AUTOMATICALLY RECOGNIZED IF THE INPUT FILE NAME ENDS WITH .SYM OR IS LEFT BLANK IN RESPONSE TO THE ASSEMBLER FILE NAME QUESTION. THE LIST OF INCLUDED MONITOR LABELS WILL BE PRINTED OUT WITH THE ASSEMBLED PROGRAM. MULTIPLE DATA BYTES OF THE SAME TYPE MAY BE ENTERED ON THE SAME LINE,EXAMPLES: $00 12 FE A3 2B A8 (HEX) #0 12 124 255 3 (DECIMAL) @MESSAGE TEXT.@ (ASCII) NOTE: ASCII STRINGS ARE ASSEMBLED IN REVERSE ORDER,END WITH @ THE FIRST BYTE OF AN ASSEMBLED ASCII STRING IS THE NUMBER OF BYTES IN THE STRING. IT IS USED WITH THE PRINT (PRI) MACRO, AS IN THE FOLLOWING EXAMPLE: LABEL5 PRI STRING PRINT MESSAGE STRING .... (INDEX REG Y IS USED BY THE MACRO) .... STRING @THIS LINE WILL BE PRINTED.@ .... IF PRC IS USED INSTEAD OF PRI, THEN CRLF WILL BE PRINTED BEFORE THE STRING IS PRINTED. THE *LABEL COMMAND IS USED TO ENTER EXTERNAL LABELS AS FOLLOWS: *LABEL LABEL1 $8AC3 LBL2 $A00F LABEL3 $0003 LABEL4 $0005 ZERO PAGE ADDRESS EXTERNAL TO PROGRAM *CODE BEGIN LDA LABEL1 GET LABEL1 *END *************************************************************************** *************************************************************************** INSTRUCTIONS FOR USING THE DOWNLOADER A SWITCH BOX MUST BE CONSTRUCTED FOR SWITCHING THE RS232 LINES BETWEEN THE VAX, THE TERMINAL, AND THE 6502 MICROCOMPUTER. THE DOWNLOADER IS SPECIFICALLY FOR THE SYM-1. (1) SET THE SWITCHES FOR COMMUNICATION BETWEEN THE TERMINAL AND THE VAX, WITH THE SYM DISCONNECTED (2) RUN ASSEMBLER, REQUEST THE DOWNLOADER (3) GIVE APPROPRIATE RESPONSES (4) SET THE SWITCHES FOR COMMUNICATION BETWEEN THE VAX AND THE SYM-1 WITH THE TERMINAL LISTENING (ONLY) TO THE SYM-1 OUTPUT (TWO INPUTS WILL BE CONNECTED TO THE SYM OUTPUT) (5) AFTER A FIVE SECOND DELAY, THE DOWNLOAD WILL BEGIN USING THE DEPOSIT COMMAND OF THE SYM-1 (6) AFTER THE DOWNLOAD IS COMPLETED SUCCESSFULLY, THE SYM-1 WILL BEEP AND SCAN THE LED DISPLAY IN THE CLOSED LOOP MODE, ERRORS IN TRANSMISSION ARE DETECTED AND CORRECTIONS ATTEMPTED. SWITCH BOX DIAGRAM INPUT SELECTOR S1 |---------------------------- OUT IN ---------------------------\ | \ o----* SYM VAX o \ | ----------------- IN | | / OUT -------------------*-------------------------o / | | | S2 o | -------------------- | | | | | ---------o / o- *-----| / S3 | / | | ---- | | IN TERM OUT ***************************************************************************** ***************************************************************************** THE ASSEMBLER GENERATES A '.PRT' FILE AS THE LISTING. SOMETIMES IT IS DESIRABLE TO GENERATE A SOURCE CODE FILE FROM THE LISTING FILE. THE ASSEMBLER CONTAINS A ROUTINE TO ACCOMPLISH THAT FEAT. JUST RUN THE ASSEMBLER AND ANSWER THE APPROPRIATE QUESTIONS. ***************************************************************************** *****************************************************************************