NEW PREFIX AUTO 4,1 Enable MASM3 auto line num .LIST OFF .OP 65C02 Target CPU, must match CPU level in header .OR $2000 usualy $2000, but any value > $100 allowed .TF e.g. BIN/MYPROG *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- .DUMMY .OR ZPBIN ZP.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 #16 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, RN 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 segement (0 filled before INIT) *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED *-------------------------------------- MAN SAVE USR/SRC/BIN Save this source file ASM