From 4bdb200bf52630ab622fc2480b3ea77725d8f1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 26 Nov 2018 20:54:46 +0100 Subject: [PATCH] Kernel 0.92 --- .Docs/.TEMPLATE.S.txt | 102 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .Docs/.TEMPLATE.S.txt diff --git a/.Docs/.TEMPLATE.S.txt b/.Docs/.TEMPLATE.S.txt new file mode 100644 index 00000000..7de7af4b --- /dev/null +++ b/.Docs/.TEMPLATE.S.txt @@ -0,0 +1,102 @@ +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