***************************************************************************** *** The *** ** H A L F - B R A I N S T E A M ** ** presents ** ** ** ** S U P E R F A S M I C O M ** ** (Amiga -> SNES X-Assembler) ** ** ** *** Program written by: Mr.MADNESS (E. Berti) *** ***************************************************************************** - INTRODUCTION The FAsm is a special tool for all SNES programmers, which allows you to assemble 65816 sources written with your favourite Text Editor [See section 'CED Linking']. The FAsm produces a Super Magicom executable file which can be sent to the Super Magicom through the Parallel Port or loaded from the Magicom Drive (MS-DOS Format). - SOURCE FORMAT The FAsm requires a strictly formatted kind of source; an usual FAsm source line looks like this: Field1 Field2 Field3 <--7--> <3> <--n--> <--n--> Label Ins Operand ;Comment Spaces are not allowed but in the command, you must use TABs to separate fields: [Label] [Ins] [Operand] [Comment] This is an example of a valid source: * Example source * sei rep #$30 lda #$ff ; Repeat loop 255 times. Loop dec a bne Loop rts The assembler is not case sensitive. - OPERAND FORMAT You can use either numbers or symbols in the operands, you can also force their size to bytes, words or twentyfour bits just suffixing ".b" ".w" ".t" to the number or Symbol or let FAsm choose for you (See Special Assembler Directives section). You can insert numbers in hexadecimal (using the '$' character before the number) or decimal format (just typing them as they are). This beta release doesn't support Binary nor Octal formats nor expressions. - SPECIAL ASSEMBLER DIRECTIVES This version of FAsm just implements the following directives: - size : This directive must be at the beginning of each source. This allows you to select the size of the DataFile. The operand is the number of 32Kb banks you want to create. - org
: Allows you to assemble what follows from a specific Famicom memory address. The FAsm simulates the FAmicom Memory map so that you can only originate code in the highest 32Kb of any Bank. That means that the lower 16bits of the address must be greater than $8000. - dc.b [,number ....] : This is used to enter bytes in memory, you can also use strings. - dc.w [,number ....] : The same with words. - dc.l [,number ....] : The same with longwords. - dca.w [,number ....] : This is used to enter word addresses in memory (LO-HI format). - dca.t [,number ....] : The same with 24Bits addresses. - blk.b , : Fill bytes of memory with the value. - blk.w , : The same with words. - blk.l , : The same with longwords. - accu [8|16] : Forces the accumulator size to 8 or 16 bits (Default is 8). - index [8|16] : Forces the index (x,y) size to 8 or 16 bits (Default is 8). - CED LINKING If you've got a Cygnus Editor and the ARexx facility, you can directly assemble the program you are editing just pressing a function key. This pack includes an ARexx script which saves the source to a temporary ram disk file, then runs the FAsm. If an error occurs a requester will pop up on the CED screen showing the error name and the cursor will be positioned on the incriminated line. We suggest you to install: Save_EXE.CED in your REXX: directory 65816_CED_ASM.script in your S: directory 65816_CED_DEL.script in your S: directory To install the AREXX command in the CED, you just have to go in the menu and select 'Special -> Dos/ARexx interface -> Install Dos/ARexx command...' and enter the command "rexx:rx rexx:save_exe.ced". - HOW TO REACH US If you want to get in touch with us for bug reporting (We think there will be many of 'em), suggestions, swapping SNES Infos or just to meet some friends drop us ('Mr.MADNESS' or 'DDT') a mail on: INFINITE DREAMS [HBT World Hq] : +39-[0]2-58105803 (4 Nodes roll over) Signed: Mr.MADNESS & DDT & SHARK