NEW AUTO 3,1 Enable MASM3 auto line num .LIST OFF .OP 65C02 Target CPU, must = CPU header level .OR $2000 usualy $2000, any value > $100 ok .TF e.g. BIN/MYPROG *--------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I *--------------------------------------- * Zero Page Segment, up to 32 bytes (0 filled before INIT) *--------------------------------------- .DUMMY .OR ZPBIN ZS.START * MyPtr .BS 2 ZS.END .ED *--------------------------------------- * File Header (16 Bytes) *--------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA #0 S.PS.F.EVENT .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *--------------------------------------- * Relocation Table *--------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT * Add any address you want be relocated by loader * Usefull if you have to pass EFFECTIVE address to an API call... * L.MSG.Test .DA Msg.Test .DA 0 *--------------------------------------- * Called once at process creation * Put code for loading LIB here *--------------------------------------- CS.INIT clc rts *--------------------------------------- * Called until exit with CS * if RUN exits with CC, RUN entered again *--------------------------------------- CS.RUN * Put your code here * >LDYA L.MSG.Test Load EFFECTIVE address * >SYSCALL PutS Call API to print a string .8 lda #0 Exit Code = Succes sec QUIT Process rts .9 lda #E.SYN Exit Code = Succes sec QUIT Process rts *--------------------------------------- * Called if option S.PS.F.EVENT enabled in Header * Timer Event : every 10th seconds *--------------------------------------- CS.DOEVENT sec rts *--------------------------------------- * Called once, when RUN exited with CS * Put code for unloading LIB here *--------------------------------------- CS.QUIT clc rts *--------------------------------------- CS.END *--------------------------------------- * Initialized DATA *--------------------------------------- * Put your constant here : * MSG.TEST .AZ "Test Message" *--------------------------------------- * Per Process DATA segment (0 filled before INIT) *--------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED *--------------------------------------- MAN SAVE USR/SRC/BIN Save this source file ASM