Skip to content

Commit 1074a2a

Browse files
committed
update
1 parent c526382 commit 1074a2a

17 files changed

+445
-160
lines changed

.vscode/settings.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"socket.h": "c"
4+
}
5+
}

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ $(OBJECTS8): $(SOURCES8)
3131
@cp socket.lib build/lib8/
3232

3333
test:
34-
@$(CC) -ttelestrat -I src/include -I libs/include test/gethttp.c socket.lib libs/lib8/ch395-8.lib -o gethttp
34+
@$(CC) -ttelestrat -I src/include -I libs/include test/gethttp.c socket.lib libs/lib8/ch395-8.lib libs/lib8/inet.lib -o gethttp
3535

3636
# tool:
3737
# @mkdir -p target/telestrat/ch395cfg/

docs/api/2024.1/assembly/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ <h2 id="socket_send">socket_send</h2>
645645
<small>
646646

647647
Last update:
648-
2024-02-27
648+
2024-02-29
649649

650650
</small>
651651
</div>

docs/api/2024.1/c/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@
450450
<small>
451451

452452
Last update:
453-
2024-02-26
453+
2024-02-29
454454

455455
</small>
456456
</div>

docs/api/assembly/index.html

+124-54
Original file line numberDiff line numberDiff line change
@@ -419,36 +419,22 @@
419419
</li>
420420

421421
<li class="md-nav__item">
422-
<a href="#socket_close" class="md-nav__link">
423-
socket_close
422+
<a href="#connect" class="md-nav__link">
423+
connect
424424
</a>
425425

426426
</li>
427427

428428
<li class="md-nav__item">
429-
<a href="#socket_open_test" class="md-nav__link">
430-
socket_open_test
429+
<a href="#recv" class="md-nav__link">
430+
recv
431431
</a>
432432

433433
</li>
434434

435435
<li class="md-nav__item">
436-
<a href="#socket_recv" class="md-nav__link">
437-
socket_recv
438-
</a>
439-
440-
</li>
441-
442-
<li class="md-nav__item">
443-
<a href="#socket" class="md-nav__link">
444-
socket
445-
</a>
446-
447-
</li>
448-
449-
<li class="md-nav__item">
450-
<a href="#socket_send" class="md-nav__link">
451-
socket_send
436+
<a href="#send" class="md-nav__link">
437+
send
452438
</a>
453439

454440
</li>
@@ -470,6 +456,8 @@
470456

471457
<div><h1 id="assembly">Assembly</h1>
472458
<h2 id="bind">bind</h2>
459+
<p><strong><em>Description</em></strong></p>
460+
<p>Bind sockets</p>
473461
<p><strong><em>Input</em></strong></p>
474462
<ul>
475463
<li>X Register : Socket id</li>
@@ -488,70 +476,152 @@ <h2 id="bind">bind</h2>
488476
<p>Y Register : XX </p>
489477
</li>
490478
</ul>
491-
<h2 id="socket_close">socket_close</h2>
479+
<h2 id="connect">connect</h2>
492480
<p><strong><em>Description</em></strong></p>
493-
<p>Close socket</p>
481+
<p>Perform connect to socket</p>
494482
<p><strong><em>Input</em></strong></p>
495483
<ul>
496-
<li>X Register : The socket id</li>
484+
<li>Accumulator : Socket id</li>
485+
<li>Y Register : Low ip dest</li>
486+
<li>X Register : High ip dest</li>
487+
<li>RESB : Low/high dest port</li>
497488
</ul>
498-
<h2 id="socket_open_test">socket_open_test</h2>
499-
<h2 id="socket_recv">socket_recv</h2>
489+
<p><strong><em>Modify</em></strong></p>
490+
<ul>
491+
<li>TR0Used to save socket</li>
492+
<li>REStmp</li>
493+
</ul>
494+
<h2 id="recv">recv</h2>
500495
<p><strong><em>Description</em></strong></p>
501496
<p>Get socket data</p>
502497
<p><strong><em>Input</em></strong></p>
503498
<ul>
504-
<li>X Register : Socket id</li>
505-
<li>Accumulator : Low ptr to store the buffer</li>
499+
<li>Accumulator : Socket id</li>
500+
<li>X Register : Low ptr to store the buffer</li>
506501
<li>Y Register : High ptr to store the buffer</li>
507502
</ul>
508-
<h2 id="socket">socket</h2>
509-
<p><strong><em>Description</em></strong></p>
510-
<p>Open a socket</p>
503+
<p><strong><em>Modify</em></strong></p>
504+
<ul>
505+
<li>RES</li>
506+
</ul>
511507
<p><strong><em>Returns</em></strong></p>
512508
<ul>
513509
<li>
514-
<p>X Register : The socket id</p>
510+
<p>Accumulator : Error type</p>
515511
</li>
516512
<li>
517-
<p>Accumulator : if != -1 socket id</p>
513+
<p>X Register : Low length</p>
514+
</li>
515+
<li>
516+
<p>Y Register : High length</p>
518517
</li>
519518
</ul>
520-
<p><strong><em>Example</em></strong></p>
521-
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="c1">; or use Macro (socket.mac) SOCKET domain, type, protocol</span>
522-
<span class="w"> </span><span class="k">lda</span><span class="w"> </span><span class="p">#</span><span class="mh">$00</span>
523-
<span class="w"> </span><span class="k">ldx</span><span class="w"> </span><span class="p">#</span><span class="n">AF_INET</span>
524-
<span class="w"> </span><span class="k">ldy</span><span class="w"> </span><span class="p">#</span><span class="n">SOCK_STREAM</span>
525-
<span class="w"> </span><span class="k">jsr</span><span class="w"> </span><span class="n">socket</span>
526-
</code></pre></div>
527-
<h2 id="socket_send">socket_send</h2>
519+
<p>; Don't use flags
520+
; Get length
521+
jsr popax
522+
sta RES
523+
stx RES+1
524+
; get buf ptr
525+
jsr popax
526+
sta ptr1
527+
stx ptr1
528+
jsr popa ; Get socket id
529+
ldy ptr1
530+
ldx ptr1
531+
;;@brief Send data into socket
532+
;;@inputA Socket id
533+
;;@inputY Low ptr of the buffer
534+
;;@inputX High ptr of the buffer
535+
;;inputMEM_RES Size of the bufer to send
536+
jmp send
537+
endproc</p>
538+
<h2 id="send">send</h2>
528539
<p><strong><em>Description</em></strong></p>
529540
<p>Send data into socket</p>
530541
<p><strong><em>Input</em></strong></p>
531542
<ul>
532-
<li>X Register : Socket id</li>
533-
<li>Accumulator : Low ptr of the buffer</li>
534-
<li>Y Register : High ptr of the buffer</li>
543+
<li>Accumulator : Socket id</li>
544+
<li>Y Register : Low ptr of the buffer</li>
545+
<li>X Register : High ptr of the buffer</li>
535546
</ul>
536547
<p><strong><em>Returns</em></strong></p>
537548
<ul>
538-
<li>
539-
<p>Accumulator : Low byte of the length</p>
540-
</li>
541-
<li>
542-
<p>X Register : High byte of the length</p>
543-
</li>
544-
<li>
545-
<p>Y Register : Error type</p>
546-
</li>
547-
</ul></div>
549+
<li>Accumulator : Error type</li>
550+
</ul>
551+
<p><strong><em>Example</em></strong></p>
552+
<div class="highlight"><pre><span></span><code><span class="c1">; Use SENDTO macro</span>
553+
<span class="w"> </span><span class="n">SENDTO</span><span class="w"> </span><span class="n">current_socket</span><span class="p">,</span><span class="w"> </span><span class="n">str_password</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span>
554+
<span class="w"> </span><span class="k">rts</span>
555+
556+
557+
<span class="p">##</span><span class="w"> </span><span class="n">socket_close</span>
558+
559+
<span class="o">***</span><span class="n">Description</span><span class="o">***</span>
560+
561+
<span class="n">Close</span><span class="w"> </span><span class="n">socket</span>
562+
563+
<span class="o">***</span><span class="n">Input</span><span class="o">***</span>
564+
565+
<span class="o">*</span><span class="w"> </span><span class="n">X</span><span class="w"> </span><span class="n">Register</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">socket</span><span class="w"> </span><span class="n">id</span>
566+
567+
568+
<span class="w"> </span><span class="c1">;;@` lda #$00</span>
569+
<span class="w"> </span><span class="c1">;;@` ldx #AF_INET ; domain</span>
570+
<span class="w"> </span><span class="c1">;;@` ldy #SOCK_STREAM ; type</span>
571+
<span class="w"> </span><span class="c1">;;@` jsr socket</span>
572+
<span class="w"> </span><span class="c1">; Skip protocol</span>
573+
<span class="w"> </span><span class="k">jsr</span><span class="w"> </span><span class="n">popa</span>
574+
<span class="w"> </span><span class="k">sta</span><span class="w"> </span><span class="n">RES</span><span class="o">+</span><span class="mi">1</span><span class="w"> </span><span class="c1">; type</span>
575+
<span class="w"> </span><span class="k">jsr</span><span class="w"> </span><span class="n">popa</span><span class="w"> </span><span class="c1">; domain</span>
576+
<span class="w"> </span><span class="k">tax</span>
577+
<span class="w"> </span><span class="k">lda</span><span class="w"> </span><span class="p">#</span><span class="mh">$00</span>
578+
<span class="w"> </span><span class="k">ldy</span><span class="w"> </span><span class="n">RES</span><span class="o">+</span><span class="mi">1</span>
579+
<span class="w"> </span><span class="k">jsr</span><span class="w"> </span><span class="n">socket</span>
580+
<span class="w"> </span><span class="k">ldx</span><span class="w"> </span><span class="p">#</span><span class="mh">$00</span>
581+
<span class="w"> </span><span class="k">rts</span>
582+
<span class="n">endproc</span>
583+
<span class="p">##</span><span class="w"> </span><span class="n">socket</span>
584+
585+
<span class="o">***</span><span class="n">Description</span><span class="o">***</span>
586+
587+
<span class="n">Open</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">socket</span>
588+
589+
<span class="o">***</span><span class="n">Input</span><span class="o">***</span>
590+
591+
<span class="o">*</span><span class="w"> </span><span class="n">Accumulator</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">protocol</span><span class="w"> </span>
592+
<span class="o">*</span><span class="w"> </span><span class="n">X</span><span class="w"> </span><span class="n">Register</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">domain</span><span class="w"> </span>
593+
<span class="o">*</span><span class="w"> </span><span class="n">Y</span><span class="w"> </span><span class="n">Register</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">type</span><span class="w"> </span>
594+
595+
<span class="o">***</span><span class="n">Modify</span><span class="o">***</span>
596+
597+
<span class="o">*</span><span class="w"> </span><span class="n">RES</span>
598+
599+
<span class="o">***</span><span class="n">Returns</span><span class="o">***</span>
600+
601+
<span class="o">*</span><span class="w"> </span><span class="n">X</span><span class="w"> </span><span class="n">Register</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">socket</span><span class="w"> </span><span class="n">id</span>
602+
603+
<span class="o">*</span><span class="w"> </span><span class="n">Accumulator</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">if</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="n">then</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">returns</span><span class="w"> </span><span class="n">socket</span><span class="w"> </span><span class="n">id.</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="n">is</span><span class="w"> </span><span class="n">return</span><span class="w"> </span><span class="n">if</span><span class="w"> </span><span class="n">all</span><span class="w"> </span><span class="n">socket</span><span class="w"> </span><span class="n">are</span><span class="w"> </span><span class="n">used</span>
604+
605+
606+
<span class="o">***</span><span class="n">Example</span><span class="o">***</span>
607+
608+
<span class="err">```</span><span class="n">ca65</span>
609+
<span class="w"> </span><span class="c1">; or use Macro (socket.mac) SOCKET domain, type, protocol</span>
610+
<span class="w"> </span><span class="n">SOCKET</span><span class="w"> </span><span class="n">AF_INET</span><span class="p">,</span><span class="w"> </span><span class="n">SOCK_STREAM</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span>
611+
</code></pre></div>
612+
<p><strong><em>Example</em></strong></p>
613+
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="k">lda</span><span class="w"> </span><span class="p">#</span><span class="mh">$00</span>
614+
<span class="w"> </span><span class="k">ldx</span><span class="w"> </span><span class="p">#</span><span class="n">AF_INET</span><span class="w"> </span><span class="c1">; domain</span>
615+
<span class="w"> </span><span class="k">ldy</span><span class="w"> </span><span class="p">#</span><span class="n">SOCK_STREAM</span><span class="w"> </span><span class="c1">; type</span>
616+
<span class="w"> </span><span class="k">jsr</span><span class="w"> </span><span class="n">socket</span>
617+
</code></pre></div></div>
548618

549619
<hr>
550620
<div class="md-source-file">
551621
<small>
552622

553623
Last update:
554-
2024-02-27
624+
2024-02-29
555625

556626
</small>
557627
</div>

docs/api/c/index.html

+48-4
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,35 @@
405405

406406

407407

408+
<label class="md-nav__title" for="__toc">
409+
<span class="md-nav__icon md-icon"></span>
410+
Table of contents
411+
</label>
412+
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
413+
414+
<li class="md-nav__item">
415+
<a href="#int-recvunsigned-char-s-void-buf-unsigned-char-len-unsigned-char-flags" class="md-nav__link">
416+
int recv(unsigned char s, void *buf, unsigned char len, unsigned char flags);
417+
</a>
418+
419+
</li>
420+
421+
<li class="md-nav__item">
422+
<a href="#unsigned-int-recvunsigned-char-s-void-buf-unsigned-int-len-unsigned-char-flags" class="md-nav__link">
423+
unsigned int recv(unsigned char s, void *buf, unsigned int len, unsigned char flags);
424+
</a>
425+
426+
</li>
427+
428+
<li class="md-nav__item">
429+
<a href="#unsigned-char-socket-unsigned-char-domain-unsigned-char-__type-unsigned-char-protocol" class="md-nav__link">
430+
unsigned char socket (unsigned char domain, unsigned char __type, unsigned char protocol);
431+
</a>
432+
433+
</li>
434+
435+
</ul>
436+
408437
</nav>
409438
</div>
410439
</div>
@@ -419,18 +448,33 @@
419448

420449

421450
<div><h1 id="c">C</h1>
451+
<p><strong><em>Input</em></strong></p>
452+
<p><strong><em>Input</em></strong></p>
453+
<p><strong><em>Input</em></strong></p>
454+
<p><strong><em>Input</em></strong></p>
455+
<h2 id="int-recvunsigned-char-s-void-buf-unsigned-char-len-unsigned-char-flags">int recv(unsigned char s, void *buf, unsigned char len, unsigned char flags);</h2>
456+
<p><strong><em>Input</em></strong></p>
457+
<p><strong><em>Input</em></strong></p>
458+
<p><strong><em>Input</em></strong></p>
422459
<p>const char str_debug_socket_recv[27] = "[libsocket/socket_recv.s] ";
423460
const char str_debug_socket_recv_waiting_buffer[25] = "Waiting recv buffer ... ";
424-
const char str_debug_socket_recv_received_buffer[30] = "Received recv buffer bytes : ";
425-
const char str_debug_socket_send[27] = "[libsocket/socket_send.s] ";
426-
const char str_debug_socket_send_waiting_send_buffer[38] = "Waiting to have buffer send empty ...";</p></div>
461+
const char str_debug_socket_recv_received_buffer[30] = "Received recv buffer bytes : ";</p>
462+
<h2 id="unsigned-int-recvunsigned-char-s-void-buf-unsigned-int-len-unsigned-char-flags">unsigned int recv(unsigned char s, void *buf, unsigned int len, unsigned char flags);</h2>
463+
<p><strong><em>Description</em></strong></p>
464+
<p>Send data into socket</p>
465+
<p><strong><em>Input</em></strong></p>
466+
<p><strong><em>Input</em></strong></p>
467+
<p><strong><em>Input</em></strong></p>
468+
<p><strong><em>Description</em></strong></p>
469+
<p>Open a socket</p>
470+
<h2 id="unsigned-char-socket-unsigned-char-domain-unsigned-char-__type-unsigned-char-protocol">unsigned char socket (unsigned char domain, unsigned char __type, unsigned char protocol);</h2></div>
427471

428472
<hr>
429473
<div class="md-source-file">
430474
<small>
431475

432476
Last update:
433-
2024-02-26
477+
2024-02-29
434478

435479
</small>
436480
</div>

docs/api/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ <h1>Introduction</h1>
432432
<small>
433433

434434
Last update:
435-
2024-02-26
435+
2024-02-29
436436

437437
</small>
438438
</div>

0 commit comments

Comments
 (0)