From bcb2ba03ef4da62419fcc1a33ebacbfab09be768 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 17 Jan 2017 23:06:12 -0500 Subject: [PATCH] updated stdio test. --- samples/stdio_test.c | 33 +- samples/stdio_test.lst | 802 ++++++++++++++++++++++------------------- samples/stdio_test.obj | Bin 726 -> 1000 bytes 3 files changed, 469 insertions(+), 366 deletions(-) diff --git a/samples/stdio_test.c b/samples/stdio_test.c index 006728c..1b515c1 100644 --- a/samples/stdio_test.c +++ b/samples/stdio_test.c @@ -3,9 +3,11 @@ void main(void) { - - FILE *fp = fopen("file.txt", "wb"); + FILE *fp; + fputs("hello, world\n", stdout); + + fp = fopen("file.txt", "wb"); fclose(fp); } @@ -24,7 +26,30 @@ size_t read(int fd, void *buffer, size_t count) { } size_t write(int fd, void *buffer, size_t count) { - return -1; + static struct { + unsigned pCount; + unsigned refNum; + void *dataBuffer; + unsigned long requestCount; + unsigned long transferCount; + unsigned cachePriority; + } dcb; + + unsigned tool_error = 0x0043; + + dcb.pCount = 4; + dcb.refNum = fd+1; + dcb.dataBuffer = buffer; + dcb.requestCount = count; + #asm + pea #$2012 + pea #^%%dcb + pea #%%dcb + jsl $e100b0 + sta %%tool_error; + #endasm + if (tool_error) return -1; + return dcb.transferCount; } long lseek(int fd, long offset, int whence) { @@ -45,6 +70,6 @@ int isatty(int fd) { #pragma section udata=heap -char __heap[8092]; +char __heap[8192]; void *heap_start = (void *)__heap; void *heap_end = (void *)&__heap[8092]; diff --git a/samples/stdio_test.lst b/samples/stdio_test.lst index 491d198..492449d 100644 --- a/samples/stdio_test.lst +++ b/samples/stdio_test.lst @@ -1,4 +1,4 @@ - Mon Jan 16 2017 13:57 Page 1 + Tue Jan 17 2017 23:02 Page 1 *************************************** @@ -25,384 +25,462 @@ 16 longi on 17 00:0000: 3B tsc 18 00:0001: 38 sec - 19 00:0002: E9 04 00 sbc #L2 + 19 00:0002: E9 08 00 sbc #L2 20 00:0005: 1B tcs 21 00:0006: 0B phd 22 00:0007: 5B tcd - 23 ; - 24 ; FILE *fp = fopen("file.txt", "wb"); - 25 ; - 26 ; fclose(fp); - 27 00000000 fp_1 set 0 - 28 00:0008: F4 xx xx pea #^L1+9 - 29 00:000B: F4 xx xx pea #>16 + 31 00:0010: 85 03 sta ljQ5We@Goj6Vev;q;O0zw!I-H?#FPzYkLnA*W|8b>uTab&+Lbn#HhZ0tx> zVzNY#koXCVj12h$Y_K_~6=S$N8(OM%;Z675_uaksefHL7cT0e{{7wSggJYmmF_s|K zeLr-x7wfgK_Z*HTjHBB6gC7>G)VHT|DFn!?sBM8t1z`#D3gRYIQ#DgFaWt1o(YCUE z(g4w!D}h|mx_(wejgq@`mZL^7ZvfO%^Hp_Lotd=H1h7`un?62pn5)*V7X;zm_9Tpg zz6}FE@YeK84U-<^g3a7OGr(pRi}#sKtxTj$dw^9jDCA`@TL!8MqYRU>U=Dy`EaZSwJvrW>?N9eiJ~@!O}e`M^UmJ;&L9L|DOm zOuE{*Fv5RR&dprpYHld}zIgtC!&?O~e?mLQ|My`imRb}#)-8X T(Tuuz((^`iB?pGq95($Mbcp@< delta 337 zcmaFCevLICD##^@k%5taCnE!cGQ(vC5MX2GV<;|3$;^*0Ni8nX%TLN;_{zjkP{e6% z@sfo>nmhW-M8ib4>XFim9dTa3iB04rH{;vObiSh+SU@8 zK)u-?n0Y2XtC?)WBrw^ZQFyW_(;C@1@*jXMaF76M0|Dj(A`k`xE5jW5$uF4X>eKQI zQu7!X82{JRr6uR&7pF2XF*E7_Rn^sjWq>?SFb^)72Idx}CZ>RtHiLQPMVTdFoeRL+ zoZ{5fY>@0hFgF>fxCF$#2j-UM