419
419
</ li >
420
420
421
421
< 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
424
424
</ a >
425
425
426
426
</ li >
427
427
428
428
< 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
431
431
</ a >
432
432
433
433
</ li >
434
434
435
435
< 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
452
438
</ a >
453
439
454
440
</ li >
470
456
471
457
< div > < h1 id ="assembly "> Assembly</ h1 >
472
458
< h2 id ="bind "> bind</ h2 >
459
+ < p > < strong > < em > Description</ em > </ strong > </ p >
460
+ < p > Bind sockets</ p >
473
461
< p > < strong > < em > Input</ em > </ strong > </ p >
474
462
< ul >
475
463
< li > X Register : Socket id</ li >
@@ -488,70 +476,152 @@ <h2 id="bind">bind</h2>
488
476
< p > Y Register : XX </ p >
489
477
</ li >
490
478
</ ul >
491
- < h2 id ="socket_close " > socket_close </ h2 >
479
+ < h2 id ="connect " > connect </ h2 >
492
480
< p > < strong > < em > Description</ em > </ strong > </ p >
493
- < p > Close socket</ p >
481
+ < p > Perform connect to socket</ p >
494
482
< p > < strong > < em > Input</ em > </ strong > </ p >
495
483
< 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 >
497
488
</ 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 >
500
495
< p > < strong > < em > Description</ em > </ strong > </ p >
501
496
< p > Get socket data</ p >
502
497
< p > < strong > < em > Input</ em > </ strong > </ p >
503
498
< 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 >
506
501
< li > Y Register : High ptr to store the buffer</ li >
507
502
</ 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 >
511
507
< p > < strong > < em > Returns</ em > </ strong > </ p >
512
508
< ul >
513
509
< li >
514
- < p > X Register : The socket id </ p >
510
+ < p > Accumulator : Error type </ p >
515
511
</ li >
516
512
< 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 >
518
517
</ li >
519
518
</ 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 >
528
539
< p > < strong > < em > Description</ em > </ strong > </ p >
529
540
< p > Send data into socket</ p >
530
541
< p > < strong > < em > Input</ em > </ strong > </ p >
531
542
< 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 >
535
546
</ ul >
536
547
< p > < strong > < em > Returns</ em > </ strong > </ p >
537
548
< 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 >
548
618
549
619
< hr >
550
620
< div class ="md-source-file ">
551
621
< small >
552
622
553
623
Last update:
554
- 2024-02-27
624
+ 2024-02-29
555
625
556
626
</ small >
557
627
</ div >
0 commit comments