From 14ff01ac6bab0d0168fd65db59ac8cfcd8ed8b71 Mon Sep 17 00:00:00 2001 From: Christopher Shepherd Date: Mon, 11 May 2015 13:48:27 -0400 Subject: [PATCH] lots of crashy/bugfixes from last commit --- src/SMBDEMO.S | 41 ++++++++++++++++++++++++----------------- src/smbdemo | Bin 37135 -> 37154 bytes 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/SMBDEMO.S b/src/SMBDEMO.S index 08513f5..9cc8184 100644 --- a/src/SMBDEMO.S +++ b/src/SMBDEMO.S @@ -636,8 +636,10 @@ sendloop2 PushWord #0000 pla cmp #2 bne noevent3 - bra CTSClose3 -noevent3 jsr SMB_Negotiate_Poll + +noevent3 PushLong MySMBHandle + jsr SMB_Negotiate_Poll + pla ; get negotiation status bcc sendloop2 login PushLong CTSWinPtr @@ -645,7 +647,7 @@ login PushLong CTSWinPtr PushLong #CTSTextB _SetIText - jmp SMB_staging_brk ; die so we can inspect things + jmp SMB_input_brk ; die so we can inspect things closed PushLong CTSWinPtr PushWord #1350 @@ -1082,6 +1084,7 @@ SMB_dialect asc 02'NT LM 0.12'00 ; the only dialect we're gonna speak * also SMB_max_transmit size should go up to 65535 and use an allocated bank like Marinetti does SMB_staging_brk brk 00 ; jump here to crash somewhere where you can easily inspect the generated SMB datagram SMB_staging ds SMB_max_transmit_size+2 +SMB_input_brk brk 00 SMB_input ds SMB_max_net_read_size ; TODO Memory Manage this eh * @@ -1164,6 +1167,8 @@ SMB_Negotiate_Poll PullLong SMB_sessid ; your smb sessid phx + _TCPIPPoll + PushWord #0000 ; space for result ldy #SMB_sess_ipid-SMB_sess_begin lda [SMB_sessid],y @@ -1188,16 +1193,17 @@ SMB_Negotiate_Poll PushLong #SMB_max_net_read_size PushLong #readbuf _TCPIPReadTCP + pla cmp #terrNOCONNECTION beq nf_trampoline cmp #terrBADIPID beq nf_trampoline - + jsr _SMB_Check ; do basic check to make sure we received SMB data bcs np_trampoline ; if not, wait for them to send again i guess - lda SMB_input+SMB_offset_cmd +` lda SMB_input+SMB_offset_cmd cmp #SMB_neg_protocol bne np_trampoline ; punt if not protocol negotiation reply @@ -1221,35 +1227,35 @@ nf_trampoline jmp nego_failed np_trampoline jmp nego_proceeding nft_far - lda SMB_input+SMB_header_size+2 + lda SMB_input+SMB_header_size+3 and #$01 ldy #SMB_sess_seclvl-SMB_sess_begin sta [SMB_sessid],y ; save session security level (1=user level, 0=share level) - - lda SMB_input+SMB_header_size+3 + + lda SMB_input+SMB_header_size+4 and #$ff ldy #SMB_sess_maxmpx-SMB_sess_begin sta [SMB_sessid],y ; save session MaxMPX - lda SMB_input+SMB_header_size+5 + lda SMB_input+SMB_header_size+6 and #$ff ldy #SMB_sess_maxvcs-SMB_sess_begin sta [SMB_sessid],y ; save session MaxVCS - lda SMB_input+SMB_header_size+7 + lda SMB_input+SMB_header_size+8 ldy #SMB_sess_maxbuffer-SMB_sess_begin sta [SMB_sessid],y ; save session maxbuffer - - lda SMB_input+SMB_header_size+15 + + lda SMB_input+SMB_header_size+16 ldy #SMB_sess_skey-SMB_sess_begin sta [SMB_sessid],y ; save skey - lda SMB_input+SMB_header_size+19 + lda SMB_input+SMB_header_size+20 ldy #SMB_sess_caps-SMB_sess_begin sta [SMB_sessid],y iny iny - lda SMB_input+SMB_header_size+21 + lda SMB_input+SMB_header_size+22 sta [SMB_sessid],y ; save server capabilities ; TODO serverTime @@ -1287,7 +1293,7 @@ challenge_used lda #$0001 getdomain ldy #SMB_sess_domain-SMB_sess_begin ldx #00 -gdloop lda SMB_input+SMB_header_size+50,x +gdloop lda SMB_input+SMB_header_size+45,x and #$ff00 xba cmp #0000 @@ -1323,12 +1329,13 @@ nego_proceeding plx ; our return address * * _SMB_Check - Check to see if TCP received data is SMB -_SMB_Check lda SMB_input +_SMB_Check lda SMB_input+SMB_offset_proto cmp #SMB_proto1 bne check_inv - lda SMB_staging+2 + lda SMB_input+SMB_offset_proto+2 cmp #SMB_proto2 bne check_inv ; starts with 'SMB'\ff + clc rts check_inv sec rts diff --git a/src/smbdemo b/src/smbdemo index 25cbb74d104e95391a7b506b6007a9ee5a0b3d4c..ebde3e4b77a8ab20ac53fb73d63971374de953bf 100644 GIT binary patch delta 2090 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