File tree Expand file tree Collapse file tree 9 files changed +58
-26
lines changed
Expand file tree Collapse file tree 9 files changed +58
-26
lines changed Original file line number Diff line number Diff line change 3838 @mkdir -p build/usr/src/kernel/
3939
4040kernel : $(SOURCE )
41+ @mkdir -p tmp/
4142 @echo Rom are built in $(PATH_PACKAGE_ROM )
42- @echo Build kernelsd.rom for Twilighte board
43+ @echo " ########################################################"
44+ @echo " # Build kernelsd.rom for Twilighte board #"
45+ @echo " ########################################################"
4346 @$(AS ) --cpu 6502 -tnone src/functions/strings/xminma.asm -o tmp/xminma.o
4447 @$(AS ) --cpu 6502 -tnone src/functions/bank_mng/search_free_bank.s -o tmp/search_free_bank.o
4548 @$(AS ) --cpu 6502 -tnone src/functions/bank_mng/kernel_free_bank.s -o tmp/kernel_free_bank.o
Original file line number Diff line number Diff line change @@ -6,23 +6,30 @@ ORICUTRON_PATH="/mnt/c/Users/plifp/OneDrive/oric/projets/jedeoric/oricutron_assi
66CA65_INC=/usr/share/cc65/asminc/
77# -DWITH_DEBUG=1
88
9+
10+ build_file () {
11+ local file=" $1 "
12+ local path=" $2 "
13+ # echo Build $file
14+ ca65 --cpu 6502 -tnone $path /$file .s -o tmp/$file .o
15+ RET=$?
16+ if [ $RET != 0 ]
17+ then
18+ echo Error
19+ exit
20+ fi
21+ }
22+
923ca65 --cpu 6502 -tnone src/functions/strings/xminma.asm -o tmp/xminma.o
1024ca65 --cpu 6502 -tnone src/functions/bank_mng/switch_to_kernel_extended.s -o tmp/switch_to_kernel_extended.o
1125ca65 --cpu 6502 -tnone src/functions/bank_mng/kernel_restore_banking_states.s -o tmp/kernel_restore_banking_states.o
1226ca65 --cpu 6502 -tnone src/functions/lib_mng/XBANK_ROUTINE.s -o tmp/xbank_routine.o
1327ca65 --cpu 6502 -tnone src/functions/network/init_network.s -o tmp/init_network.o
1428ca65 --cpu 6502 -tnone src/functions/network/xsocket.s -o tmp/xsocket.o
15- ca65 --cpu 6502 -tnone src/functions/network/close_sockets_by_pid.s -o tmp/close_sockets_by_pid.o
16-
17- RET=$?
18- if [ $RET != 0 ]
19- then
20- echo Error
21- exit
22- fi
29+ build_file " close_sockets_by_pid" " src/functions/network"
30+ build_file " xconnect" " src/functions/network"
31+ build_file " xsend" " src/functions/network"
2332
24- ca65 --cpu 6502 -tnone src/functions/network/xconnect.s -o tmp/xconnect.o
25- ca65 --cpu 6502 -tnone src/functions/network/xsend.s -o tmp/xsend.o
2633ca65 --cpu 6502 -tnone src/functions/network/xclose_socket.s -o tmp/xclose_socket.o
2734
2835RET=$?
Original file line number Diff line number Diff line change 1111.import kernel_process
1212
1313.include "../../kernel8/orixlibs/ch395/usr/include/asm/ch395.inc"
14+ .include "../../kernel8/orixlibs/ksocket/usr/include/asm/socket.inc"
1415.include "../../include/kernel.inc"
1516.include "../../include/process.inc"
1617.include "../../include/network.inc"
2627 sta TR1
2728
2829@restart:
29- lda #<KERNEL_NETWORK_SOCKET_PID
30+ lda #<KERNEL_NETWORK_SOCKET_PID ; D393
3031 ldy #>KERNEL_NETWORK_SOCKET_PID
3132
33+
3234 sta ADDRESS_READ_BETWEEN_BANK_DOUBLON
33- sty ADDRESS_READ_BETWEEN_BANK_DOUBLON + 1
35+ sty ADDRESS_READ_BETWEEN_BANK_DOUBLON + 1
3436
35- ldx TR1
36- ldy # $ 00
37+ ldx # $ 00
38+ ldy TR1 ; Offset of the socket
3739 MEMORY_GET_VALUE_FROM_BANK ; A contains the value
3840
3941 cmp kernel_process + kernel_process_struct::kernel_current_process
4244@compute:
4345 inc TR1
4446 lda TR1
45- cmp # $ 08
47+
48+ cmp #NETWORK_MAX_SOCKET
4649 beq @exit
4750 bne @restart
4851
49-
5052@close_socket:
5153 lda TR1 ; Socket ID
54+
5255 jsr ch395_close_socket_sn
5356
5457 ; Set to 0
Original file line number Diff line number Diff line change 2323.include "../../include/memory.inc"
2424
2525.proc init_network
26+ ; Returns KERNEL_NETWORK_FULLY_STARTED if network is started
2627
2728 lda #<KERNEL_NETWORK_FLAG
2829 ldy #>KERNEL_NETWORK_FLAG
3334 ldx #$00
3435 ldy #$00
3536 MEMORY_GET_VALUE_FROM_BANK ; A contains the value
37+ cmp #KERNEL_NETWORK_FULLY_STARTED
38+ bne @check_all
39+ rts
40+
41+ @check_all:
3642 cmp KERNEL_NETWORK_STATE_NOT_INITIALIZED
3743 bne @ch395_found
3844
4450 rts
4551
4652@ch395_found:
53+ ; FIXME SHould not be done here
4754 lda #<KERNEL_NETWORK_FLAG
4855 ldy #>KERNEL_NETWORK_FLAG
4956
Original file line number Diff line number Diff line change 44.include "../../include/kernel.inc"
55.include "../../include/process.inc"
66.include "../../include/memory.inc"
7+ .include "../../include/network.inc"
78
89.include "telestrat.inc"
910
1011.import KERNEL_NETWORK_SOCKET_LIST
1112.import KERNEL_NETWORK_SOCKET_DOMAIN
1213
14+ .import init_network
1315
1416.export XSOCKET_ROUTINE
1517
3234 ;;@modifyMEM_TR6
3335 ;;@modifyMEM_TR5
3436 ;;@returnsX The socket id
35- ;;@returnsA if != -1 then it returns socket id. -1 is return if all socket are used
37+ ;;@returnsA if != -1 then it returns socket id. -1 is return if all socket are used, or network is not started or unavailable
3638
3739 ; sock = socket(AF_INET, SOCK_STREAM, 0);
3840 ;;@```ca65
5860 stx domain ; domain
5961 sty type ; Save type
6062
63+
64+ ; Checking if network is started
65+ jsr init_network
66+ cmp #KERNEL_NETWORK_FULLY_STARTED
67+ beq @continue
68+ ; Error, return INVALID
69+ lda #INVALID_SOCKET
70+ rts
71+
72+ @continue:
6173 ; Looking for available socket
6274 lda #$00
6375 sta socket
8193 bne @search_free_socket
8294
8395; Error, return INVALID
84-
8596 lda #INVALID_SOCKET
8697 rts
8798
105116 ldy socket ; Get socket id (index)
106117 lda kernel_process + kernel_process_struct::kernel_current_process
107118 ldx #$00 ; BANK
119+
108120 MEMORY_PUT_VALUE_TO_BANK KERNEL_NETWORK_SOCKET_PID ; ADDRESS_READ_BETWEEN_BANK_DOUBLON is already set previously : FIXME
109121
110122 ; Setting CH395
Original file line number Diff line number Diff line change 3232 cmp #128
3333 bne @do_not_destroy_socket
3434
35+
36+
3537 lda #KERNEL_SOCKET_CLOSE_FROM_PID_NETWORK
3638 jsr XNETWORK_START_ROUTINE
3739
Original file line number Diff line number Diff line change 9494 KERNEL_BANK_PROCESS_ID .res 64
9595.endstruct
9696
97-
9897.macro MEMORY_PUT_VALUE_TO_BANK address
9998 ; Put a value into ank
10099 ; X the id of the bank where the value will be written
Original file line number Diff line number Diff line change @@ -188,8 +188,8 @@ start_rom:
188188 lda #$03 ; bank 33 and 34 are reserved (loader/network)
189189 sta BUSY_BANK_TABLE_RAM ; Set BUSY BANK_table
190190 lda #$00
191- sta BUSY_BANK_TABLE_RAM+ 1 ; Set BUSY BANK_table
192- sta BUSY_BANK_TABLE_RAM+ 2 ; Set BUSY BANK_table
191+ sta BUSY_BANK_TABLE_RAM + 1 ; Set BUSY BANK_table
192+ sta BUSY_BANK_TABLE_RAM + 2 ; Set BUSY BANK_table
193193
194194
195195@usb_controler_not_detected:
@@ -342,15 +342,15 @@ don_t_display_signature:
342342 jsr routine_to_define_19
343343
344344 lda #64
345- sta RES+ 1
345+ sta RES + 1
346346
347347 ; Initialize banks states to Empty
348348@L1:
349349 lda #$00 ; value to store
350350 ldx #$00 ; BANK
351351 ldy #$00 ; Offset to write
352352 MEMORY_PUT_VALUE_TO_BANK KERNEL_BANK_MANAGEMENT
353- dec RES+ 1
353+ dec RES + 1
354354 bne @L1
355355
356356 ; Displays cursor
@@ -477,7 +477,7 @@ init_malloc_busy_table:
477477 ldy #>($FFF0 +1 )
478478
479479 sta ADDRESS_READ_BETWEEN_BANK_DOUBLON
480- sty ADDRESS_READ_BETWEEN_BANK_DOUBLON+ 1
480+ sty ADDRESS_READ_BETWEEN_BANK_DOUBLON + 1
481481
482482 ldx #$04
483483 ldy #$00
Original file line number Diff line number Diff line change @@ -35,7 +35,6 @@ start_rom:
3535 jmp XBANK
3636
3737XBANK:
38-
3938 cmp #KERNEL_ALLOCATE_BANK
4039 beq @allocate_bank
4140
You can’t perform that action at this time.
0 commit comments