Updates to Calypsi Client Sample

This commit is contained in:
Peter Weingartner 2024-09-10 14:27:23 -04:00
parent ccbcc7303b
commit 74c953a46b
26 changed files with 925 additions and 918 deletions

View file

@ -21,9 +21,9 @@ ifeq ($(UNIT),F256K)
CFLAGS_FOR_UNIT=-DMODEL=17 -DCPU=255 --code-model large --data-model large
ifeq ($(MEMORY),ROM)
LDFLAGS_FOR_UNIT=C256/f256-flash.scm clib-lc-ld.a --rtattr printf=medium --cstartup=f256
LDFLAGS_FOR_UNIT=C256/f256-flash.scm clib-lc-ld.a --rtattr printf=medium
else
LDFLAGS_FOR_UNIT=C256/f256-ld_lc.scm clib-lc-ld.a --rtattr printf=medium --cstartup=f256
LDFLAGS_FOR_UNIT=C256/f256-ld_lc.scm clib-lc-ld.a --rtattr printf=medium
endif
endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -18,12 +18,12 @@ ifeq ($(UNIT),F256K)
CPU=w65816
C_SRCS_DEBUGGER=$(DEBUGGER)/agent.c $(DEBUGGER)/c256-uart.c $(DEBUGGER)/low_level_WDC65816.s
SRCS_FOR_UNIT=
CFLAGS_FOR_UNIT=-DMODEL=17 -DCPU=255 --code-model large --data-model large --target f256
CFLAGS_FOR_UNIT=-DMODEL=17 -DCPU=255 --code-model large --data-model large
ifeq ($(MEMORY),ROM)
LDFLAGS_FOR_UNIT=clib-lc-ld.a --rtattr printf=medium --cstartup=f256 # C256/f256-flash.scm
LDFLAGS_FOR_UNIT=clib-lc-ld.a --rtattr printf=medium --target=f256 # C256/f256-flash.scm
else
LDFLAGS_FOR_UNIT=f256-plain.scm clib-lc-ld.a --rtattr printf=medium --cstartup=f256
LDFLAGS_FOR_UNIT=f256-plain.scm clib-lc-ld.a --rtattr printf=medium --target=f256
endif
endif
@ -44,7 +44,7 @@ else
LDFLAGS=$(LDFLAGS_FOR_UNIT) --list-file toolbox.map
endif
SRCS = hello.c header.s $(SRCS_FOR_UNIT) # $(C_SRCS_DEBUGGER)
SRCS = hello.c header.s $(SRCS_FOR_UNIT) # $(C_SRCS_DEBUGGER) ram-startup.s
OBJS = $(patsubst %.s,%.o,$(patsubst %.c,%.o,$(SRCS)))
OBJS4RM = $(subst /,\\,$(OBJS))
LIBS = ../../client/src/toolbox.a

View file

@ -1,7 +1,7 @@
(define memories
'(
(memory LoMem
(address (#x0000 . #xbfff))
(address (#xa000 . #xcfff))
(type ANY))
(memory Vector (address (#xffe4 . #xffff)))
(memory Banks
@ -9,7 +9,7 @@
(type ANY)
(section (header #x10000)))
(memory DirectPage
(address (#x00c000 . #x00c0ff))
(address (#x000100 . #x0001ff))
(section (registers ztiny)))
(block stack (size #x1000))

View file

@ -1,72 +0,0 @@
###############################################################################
# #
# Calypsi ISO C compiler for 65816 version 5.5 #
# 03/Sep/2024 22:57:21 #
# Command line: -I. -I./include -DMODEL=17 -DCPU=255 --code-model large #
# --data-model large --target f256 -l -o hello.o hello.c #
# #
###############################################################################
\ 000000 .rtmodel version,"1"
\ 000000 .rtmodel codeModel,"large"
\ 000000 .rtmodel dataModel,"large"
\ 000000 .rtmodel core,"65816"
\ 000000 .rtmodel huge,"0"
\ 000000 .rtmodel target,"f256"
\ 000000 .extern _Dp
\ 000000 .extern _Vfp
\ 000000 .extern strlen
\ 000000 .extern sys_chan_write
0001 #include "../../client/src/include/toolbox.h"
0002
0003 #include <string.h>
0004
0005 int main(int c, char * argv[]) {
\ 000000 .section farcode,text
\ 000000 .public main
\ 000000 main:
\ 000000 d4.. pei dp:.tiny (_Dp+8)
\ 000002 d4.. pei dp:.tiny (_Dp+10)
0006 char * message = "Hello, Foenix Toolbox!\n";
\ 000004 a9.... lda ##.word0 `_StringLiteral_[72,101,108,108,111,44,32,70,111,101,110,105,120,32,84,111,111,108,98,111,120,33,10]`
\ 000007 85.. sta dp:.tiny (_Dp+8)
\ 000009 a9.... lda ##.word2 `_StringLiteral_[72,101,108,108,111,44,32,70,111,101,110,105,120,32,84,111,111,108,98,111,120,33,10]`
\ 00000c 85.. sta dp:.tiny (_Dp+10)
0007 sys_chan_write(0, (uint8_t *)message, strlen(message));
\ 00000e a5.. lda dp:.tiny (_Dp+8)
\ 000010 85.. sta dp:.tiny _Dp
\ 000012 a5.. lda dp:.tiny (_Dp+10)
\ 000014 85.. sta dp:.tiny (_Dp+2)
\ 000016 22...... jsl long:strlen
\ 00001a 48 pha
\ 00001b a5.. lda dp:.tiny (_Dp+10)
\ 00001d 48 pha
\ 00001e a5.. lda dp:.tiny (_Dp+8)
\ 000020 48 pha
\ 000021 a90000 lda ##0
\ 000024 22...... jsl long:sys_chan_write
0008
0009 while (1) ;
\ 000028 68 pla
\ 000029 68 pla
\ 00002a 68 pla
\ 00002b 80fe `?L4`: bra `?L4`
\ 000000 .section cfar,rodata
\ 000000 .pubweak `_StringLiteral_[72,101,108,108,111,44,32,70,111,101,110,105,120,32,84,111,111,108,98,111,120,33,10]`
\ 000000 `_StringLiteral_[72,101,108,108,111,44,32,70,111,101,110,105,120,32,84,111,111,108,98,111,120,33,10]`:
\ 000000 48656c6c .byte 72,101,108,108,111,44,32,70,111,101,110,105,120,32,84,111,111,108,98,111,120,33,10,0
\ 000004 6f2c2046
\ 000008 6f656e69
\ 00000c 7820546f
\ 000010 6f6c626f
\ 000014 78210a00
0010 }
##########################
# #
# Memory sizes (decimal) #
# #
##########################
Executable (Text): 45 bytes
Constant __far : 24 bytes

View file

@ -1,139 +0,0 @@
S02700000000484452202D2047656E6572617465642062792043616C79707369206C6E36353831360A
S31E0000000018FBC238A259209AA900C05BA900006412EB48ABAB221102017D
S31D00000019A902008506A909008504A902008502A90000850022230701AB
S32300000031A900008506A95A008504A901008502A98F008500A20000A90010225B0A011A
S3100000004FA9000022BA02015C31050185
S3070000FFFC0000FD
S31A00010000F8160000000000000000000000000068656C6C6F00C2
S31D0001001548656C6C6F2C20466F656E697820546F6F6C626F78210A00F1
S30600010210DB0B
S306000102116B7A
S30A00010212221002016B40
S30E00010217A602A5002270E0FF6BAE
S31000010220B704850A8888B70485086BBF
S3130001022BA8E220A50A48C220A5083A48986B09
S31400010239A40C8400A40E840218A500690A006BA8
S31800010248A50648A50448A602A5002274E0FFAA68688A6B87
S31B0001025B7A100EA90000AA38E500A88AE502AA986BA500A6026B00
S31B00010271A01000B70C85028888B70C850038A500A00600F70C6B2D
S31E00010287A5008504A5028506A70429FF00D00638A504E5006BE60480EFC4
S31F000102A0AAA90200860038E500500349008010068A223906016BA900006BA8
S325000102BAD408D40AA915008508A90100850AA5088500A50A85022287020148A50A48A508DF
S312000102DA48A900002214E0FF68686880FE54
S325000102E7AF290101C92000B020AF2901010A0AAAA5009F2B0101A5029F2D0101AF29010105
S312000103071A8F290101A900006BA901006BE5
S32500010314D406A40485046406A9000048488A4A900FAA18A30165048301A303650683038A2D
S31500010334F0060604260680E668FA84047A84066BC7
S325000103445A5AAAA900008301E000809005A90B00801D8A4A4A4A4AA8A301A201008400E4B8
S3170001036400B00C1A8301984A8303A8A30180EB7A7A6BA8
S32500010376A5000502D010A9AB018500A90100850222AB06018007A90100226F0B01AA8600F7
S31D00010396A5001010860038A90000E5008F0E0201A9FFFF6BA900006B71
S325000103AED408D40A5A5A5A8301A5008508A502850AA5048305A3058303A3053A8305A90002
S325000103CE00C303B016A5088504A50A8506E608E220A3018704C220A30580DAA602A5007A42
S30E000103EE7A7A7A840A7A84086B92
S325000103F75A8301A301A2060022140301AABF2D0001F035A50448A50248A50048A92D008597
S3250001041700A901008502A307A2060022140301850418A50065048500A00400B7002208E068
S31200010437FFAA6868688A8003A9FFFF7A6B37
S325000104445A8301A301A2060022140301AABF2D0001F035A50448A50248A50048A92D008549
S3250001046400A901008502A307A2060022140301850418A50065048500A00400B7002214E00F
S31200010484FFAA6868688A8003A9FFFF7A6BEA
S32500010491D408D40AD40CD40E5A8301A5008508A502850AA301A301A83AAA640CA50C840CFD
S325000104B1C50CB019A508850CA50A850EE608A704E604E220870CC2208A830180D8A602A55D
S314000104D1007A7A840E7A840C7A840A7A84086B0C
S325000104E0A901008F0702018FDC01011A8FEE01018FC301018FD50101A9F1018FAB0101A972
S3250001050001008FAD0101A9D8018FAF0101A901008FB10101A9BF018FB30101A901008FB54C
S316000105200101A9DD058F0A0201A901008F0C02016BE7
S32500010531D408D40A5A5A8301AF0A02010F0C0201F010AF0C0201850AAF0A02018508222BF4
S325000105510201AF2901013A8303A303100FA301221202017A7A7A840A7A84086B0A0AAABF5C
S31B000105712D0101850ABF2B01018508222B0201A3033A830380D32D
S325000105875AA903008301A3018301A30138E9100050034900803005A9FFFF8031A301A206D1
S325000105A70022140301AABF2D0001D023A92D008500A901008502A301A206002214030185D2
S31B000105C70418A50065048500A00200B7007A6BA3011A830180B4B4
S325000105DDD408D40AA900008500850222760301AFB90101850AAFB701018508A508050AD072
S325000105FD1FAFF5010122A00201AFDC010122A00201AFC3010122A002017A840A7A84086B49
S3210001061DA00400B70822390601A00200B7088502A70885008508A502850A80BFD7
S325000106395A8301A301A2060022140301AABF2D0001F05AA92D008500A901008502A301A283
S32500010659060022140301850418A50065048500A00400B7002254E0FFA22D008600A201005E
S325000106798602A301A2060022140301850418A50065048500A90000A004009700A301A206E8
S317000106990022140301AAA900009F2D0001A900007A6B60
S325000106ABD408D40A5A5AA900008301A5000502F05CA00E00B700850A8888B7008508A301A9
S325000106CB8303A508050AD004A3038043A90200A016003708F01AA5088500A50A85022276DF
S325000106EB03018301A3013004A3038301A3018004A3038301A00200B7088502A7088500A34D
S31D0001070B018303A5008508A502850A80B5A3017A7A7A840A7A84086B9A
S32500010723D408D40AD40CD40EA5048508A506850AA500850CA502850EA50C8500A50E8502E3
S32500010743A500C508A502E50AB04CA00400B70CC8C8170CF01FB70C85068888B70C85048830
S3250001076388B70C8502A70C8500A00800B70C229104018018C8C8B70C8504A00200B70C85E4
S3250001078302A70C8500A9000022AE030118A50C690A00850C80A27A840E7A840C7A840A7A11
S308000107A384086B55
S325000107A6D408D40AD40CD40E5AA500850CA502850EA5048508A506850AA70822440301A8B5
S325000107C6980A0A8301AAA3010A83018A1863018301A60EA50C18690A0018630186028500FD
S325000107E6980A0A8301AAA3010A83018A186301830118A50C690A00850C18A50C6301850CCB
S32500010806A00600B70C85068888B70C8504A5040506F02BA704F027A704AAA708850CE40C65
S32500010826B01CA5048500A5068502C8C8B704850E8888B704850C8504A50E850680CFA50882
S325000108469700A50AC8C89700A500C8C89708A502C8C89708A504A004009708A506C8C897B6
S3250001086608A5040506F00CA508C8C89704A50AC8C897047A7A840E7A840C7A840A7A840863
S306000108866BFF
S32500010887D408D40AD40CD40E5AA8A506AAA50418690F009001E8860A8508A50A29FFFFAA28
S325000108A7A50829F0FF860A850898A20000186504488A6506AA6886068504A50629FFFFAAAD
S325000108C7A50429F0FF860E850CA50C38E50883011867008700A60AA508A0020097008AC8DC
S325000108E7C89700B70085068888B7008504A904008704A8B70085068888B7008504A900805E
S325000109079704A60AA508186904009001E886068504A30138E908008704A904009704A60E6A
S32500010927A50C38E90400B001CAA0060097008AC8C89700B700850A8888B7008508A9040023
S325000109478708A90080070448C8C8B700850A8888B700850868A00200970822A60701A90131
S30B00010967007A5CC40A01DE
S3250001096DD408D40A5A5A5A8303A5008508A502850A228705018305A30510034C470AA90075
S3250001098D008301A901002303C90100D00BA901008301A30183018004A3018301A90200237A
S325000109AD03C90200D00BA902008301A30183018004A3018301A903002303C90300D00BA955
S325000109CD03008301A30183018004A3018301A904002303C90400D00DA90C0003018301A34B
S325000109ED0183018004A3018301A30148A60AA5082250E0FFAA688A8301A3013038A305A2A2
S32500010A0D060022140301AAA901009F2D0001A22D008600A201008602A305A2060022140358
S32500010A2D01850418A50065048500A301A004009700A305800FA9FFFF800AA917008F0E02C7
S31300010A4D01A9FFFF7A7A7A7A840A7A84086B05
S32500010A5BD408D40AD40CD40EA83B38E90A001B988301A500850CA502850EA5048508A50662
S32500010A7B850AA90000870CA290008604A50C8500A50E8502224102018500A9000022AE03F6
S32500010A9B01A901008309A309C90C009029A5088504A50A8506A50C8500A50E8502A301221D
S32500010ABB8708013B18690A001B7A840E7A840C7A840A7A84086B3A0A0A83058303A3050A06
S32500010ADB83051863038303A3090A0A83078305A3070A83071863058305A60EA50C18690A60
S32500010AFB00186305DA4822390201850018A5006307850068FAA0040097008AC8C89700A3B2
S32500010B1B090A0A83058303A3050A83051863038303A3093A0A0A8305AAA3050A83058A1842
S32500010B3B63058305A60EA50C18690A00186305DA4822390201850018A5006307850068FA20
S31900010B5BA0080097008AC8C89700A3091A8303A3034C9F0AA8
S32500010B6FD408D40AD40CD40E5A5A8301A500850CA502850EA00400B70C850010034CB80C2C
S32500010B8FA90200A01600370CD0034CB80CA00600B70CC8C8170CD006A900004CBB0CA00E5C
S32500010BAF00B70CA00600D70CD00FA01000B70CA00800D70CD0034CAD0CA01200B70CA00603
S32500010BCF00D70CF0034CB30CA01400B70CA00800D70CF0034CB30C22710201AAC8C8B70C8B
S32500010BEF85028888B70C85008508A502850A8A8303A3038504A5088500A50A8502A00400F2
S32500010C0FB70C22440401AAE0FFFFD013A01800E220A902170C970CC220A9FFFF4CBB0CA5B9
S32500010C2F088500A50A8502860418A50065048500A303860438E504AAA301F015A5008508D0
S32500010C4FA502850A8A83036404A5048604C50490A0A00600B70CA00E00970CA00800B70C7F
S32500010C6FA01000970CE8CAF035B70C85068888B70C8504C8C8B70C850A8888B70C8508E662
S32500010C8F08A508970CA50AC8C8970CA700E600E2208704C2208A3A8301A301AA80C7227198
S32000010CAF02018008A900008003A9F7FF7A7A7A840E7A840C7A840A7A84086B4A
S32500010CCAD408D40AD40CD40E5A5A5A5AA5008305A5028307A98F008301A901008303A3052D
S32500010CEA0307D0034C190EA307AAA30538E9040086028500A9FF7FA0020037009700A50029
S32500010D0A8504A502850618A50467008504B70485083066A5048508A506850A18A5086704D8
S32500010D2A8508A00A00B704850E8888B704850CA00400B704970CC8C8B704970C8888B70406
S32500010D4AC8C81704F017B704850E8888B704850CA00800B704970CC8C8B704970CA704186F
S32500010D6A67008700A90080A00200370807009708A60AA50883058A8006A5048305A5068370
S32500010D8A07A5008504A502850638A504F7008504B7048508305DA00A0022200201A0040012
S32500010DAAB7049708C8C8B70497088888B704C8C81704F01122200201A00800B7049708C858
S32500010DCAC8B7049708A7001867048704A3078502A3058500A90080A002003700070448A3D5
S32500010DEA098502A3078500689700A606A50483058A8006A5008305A5028307A3078506A301
S32500010E0A058504A3038502A301850022A607017A7A7A7A7A840E7A840C7A840A7A84086B96
S32500010E2AD408D40AD40CD40E3B38E90E001BA5008508A502850AA9000083018303A21600CD
S32500010E4AA888A508050AD0034CBA0F981A83051A1A9B3708F018A5088500A50A850222765D
S32500010E6A0301AAAF0E02018305830B8A80058A830BA305830DAFAB0101C508D008AFAD0120
S32500010E8A01C50AF020AFAF0101C508D008AFB10101C50AF010AFB30101C508D013AFB501B2
S32500010EAA01C50AD00BA30B8305A30D83014CC20FA9AB018500A901008502A00E00B70085FA
S32500010ECA068888B7008504A303A5040506F065A508C504F0034C980FA50AC506F0034C984F
S32500010EEA0FA00C00B700C504D01AC8C8B700C506D012A70488889700A00200B704A00E006B
S32500010F0A97008013A303850EA301850CA704870CA00200B704970CA01000B700C504D014D6
S32500010F2AC8C8B700C506D00CA30188889700A303C8C89700A00400B70822A002018301A34B
S32500010F4A0DD00CA301AAAF0E020183058A8006A30B8305A30D8301A00600B708C8C8170873
S32500010F6AF01C98A01800370829FF00D011A00800B70885028888B708850022CA0C01A508D4
S32500010F8A8500A50A850222CA0C01A3018028A5048301A5068303A00200B704850EA70485C2
S32500010FAA0C8307A50E83098506A30785044CD30E8A8305988301A301A301F00BA3058F0EAA
S32400010FCA0201A9FFFF8003A90000A83B18690E001B987A840E7A840C7A840A7A84086B77
S30F000200002D00010000000000E301DC
S503008874
S70500000000FA

86
samples/hello/macros.h Normal file
View file

@ -0,0 +1,86 @@
#ifndef __MACROS_H
#define __MACROS_H
#ifdef __CALYPSI_ASSEMBLER__
#ifdef __CALYPSI_CODE_MODEL_SMALL__
#define libcode code
call .macro dest
jsr \dest
.endm
return .macro
rts
.endm
jump .macro dest
jmp \dest
.endm
#elif defined(__CALYPSI_CODE_MODEL_COMPACT__)
#define libcode compactcode
call .macro dest
jsr .kbank \dest
.endm
return .macro
rts
.endm
jump .macro dest
jmp .kbank \dest
.endm
#else
#define libcode farcode
call .macro dest
jsl \dest
.endm
return .macro
rtl
.endm
jump .macro dest
jmp long:\dest
.endm
#endif // __CALYPSI_CODE_MODEL_SMALL__
// ----------------------------------------------------------------------
//
// Define code and data model used. This is to add a bit of safety in
// case the way a file is assembled is combined with the wrong run-time.
//
// ----------------------------------------------------------------------
#if defined(__CALYPSI_DATA_MODEL_SMALL__)
.rtmodel dataModel,"small"
#elif defined (__CALYPSI_DATA_MODEL_MEDIUM__)
.rtmodel dataModel,"medium"
#elif defined(__CALYPSI_DATA_MODEL_LARGE__)
.rtmodel dataModel,"large"
#elif defined(__CALYPSI_DATA_MODEL_HUGE__)
.rtmodel dataModel,"huge"
#else
#pragma GCC error "unexpected data model"
#endif
#if defined(__CALYPSI_CODE_MODEL_SMALL__)
.rtmodel codeModel,"small"
#elif defined(__CALYPSI_CODE_MODEL_COMPACT__)
.rtmodel codeModel,"compact"
#elif defined(__CALYPSI_CODE_MODEL_LARGE__)
.rtmodel codeModel,"large"
#else
#pragma GCC error "unexpected code model"
#endif
#endif // __CALYPSI_ASSEMBLER__
#endif // __MACROS_H

134
samples/hello/ram-startup.s Normal file
View file

@ -0,0 +1,134 @@
;;; Startup variant, change attribute value if you make your own
.rtmodel cstartup,"sample"
.rtmodel version, "1"
.rtmodel core, "*"
.section stack
.section cstack
.section heap
.section data_init_table
.extern main, exit
.extern _Dp, _Vfp
.extern _DirectPageStart
#ifndef __CALYPSI_DATA_MODEL_SMALL__
.extern _NearBaseAddress
#endif
#include "macros.h"
;;; ***************************************************************************
;;;
;;; __program_start - actual start point of the program
;;;
;;; Set up CPU stack, initialize sections and call main().
;;; You can override this with your own routine, or tailor it as needed.
;;; The easiest way to make custom initialization is to provide your own
;;; __low_level_init which gets called after stacks have been initialized.
;;;
;;; ***************************************************************************
#ifdef __CALYPSI_CODE_MODEL_COMPACT__
.section code
#elif __CALYPSI_CODE_MODEL_LARGE__
.section farcode, noreorder
#else
.section code, noreorder
#endif
.pubweak __program_start
__program_start:
clc
xce ; native 16-bit mode
rep #0x38 ; 16-bit registers, no decimal mode
ldx ##.sectionEnd stack
txs ; set stack
lda ##_DirectPageStart
tcd ; set direct page
#ifdef __CALYPSI_DATA_MODEL_SMALL__
lda ##0
#else
lda ##.word2 _NearBaseAddress
#endif
stz dp:.tiny(_Vfp+2)
xba ; A upper half = data bank
pha
plb ; pop 8 dummy
plb ; set data bank
#ifdef __CALYPSI_CODE_MODEL_COMPACT__
jmp long:_Trampoline_program_start
.section compactcode, noreorder
_Trampoline_program_start:
#define CODE compactcode
#else
#define CODE code
#endif
call __low_level_init
;;; **** Initialize data sections if needed.
.section CODE, noroot, noreorder
.pubweak __data_initialization_needed
.extern __initialize_sections
__data_initialization_needed:
lda ##.word2 (.sectionEnd data_init_table)
sta dp:.tiny(_Dp+6)
lda ##.word0 (.sectionEnd data_init_table)
sta dp:.tiny(_Dp+4)
lda ##.word2 (.sectionStart data_init_table)
sta dp:.tiny(_Dp+2)
lda ##.word0 (.sectionStart data_init_table)
sta dp:.tiny(_Dp+0)
call __initialize_sections
;;; **** Initialize streams if needed.
.section CODE, noroot, noreorder
.pubweak __call_initialize_global_streams
.extern __initialize_global_streams
__call_initialize_global_streams:
call __initialize_global_streams
;;; **** Initialize heap if needed.
.section CODE, noroot, noreorder
.pubweak __call_heap_initialize
.extern __heap_initialize, __default_heap
__call_heap_initialize:
#ifdef __CALYPSI_DATA_MODEL_SMALL__
lda ##.sectionSize heap
sta dp:.tiny(_Dp+2)
lda ##.sectionStart heap
sta dp:.tiny(_Dp+0)
lda ##__default_heap
#else
lda ##.word2 (.sectionStart heap)
sta dp:.tiny(_Dp+6)
lda ##.word0 (.sectionStart heap)
sta dp:.tiny(_Dp+4)
lda ##.word2 __default_heap
sta dp:.tiny(_Dp+2)
lda ##.word0 __default_heap
sta dp:.tiny(_Dp+0)
ldx ##.word2 (.sectionSize heap)
lda ##.word0 (.sectionSize heap)
#endif
call __heap_initialize
.section CODE, root, noreorder
lda ##0 ; argc = 0
call main
jump exit
;;; ***************************************************************************
;;;
;;; __low_level_init - custom low level initialization
;;;
;;; This default routine just returns doing nothing. You can provide your own
;;; routine, either in C or assembly for doing custom low leve initialization.
;;;
;;; ***************************************************************************
.section libcode
.pubweak __low_level_init
__low_level_init:
return

View file

@ -7,6 +7,6 @@
#define VER_MAJOR 1
#define VER_MINOR 0
#define VER_BUILD 15
#define VER_BUILD 16
#endif