mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-10-31 13:08:40 +00:00
110 lines
1.6 KiB
ArmAsm
110 lines
1.6 KiB
ArmAsm
.include "../inc/common.inc"
|
|
|
|
.export _tftp_download
|
|
.export _tftp_download_to_memory
|
|
.export _tftp_upload
|
|
.export _tftp_upload_from_memory
|
|
|
|
.import tftp_download
|
|
.import tftp_upload
|
|
.import tftp_upload_from_memory
|
|
.import tftp_set_callback_vector
|
|
.import tftp_clear_callbacks
|
|
.import tftp_ip
|
|
.import tftp_load_address
|
|
.import tftp_data_block_length
|
|
.import tftp_current_memloc
|
|
.import tftp_filename
|
|
.import tftp_filesize
|
|
|
|
.import pushax, popax, popeax
|
|
.importzp sreg
|
|
|
|
|
|
.data
|
|
|
|
callback:
|
|
clc
|
|
adc #02 ; skip the 2 byte length at start of buffer
|
|
bcc :+
|
|
inx
|
|
: jsr pushax
|
|
ldax tftp_data_block_length
|
|
jmpvector:
|
|
jmp $ffff
|
|
|
|
|
|
.code
|
|
|
|
_tftp_download:
|
|
stax jmpvector+1
|
|
ldax #callback
|
|
jsr tftp_set_callback_vector
|
|
jsr popax
|
|
stax tftp_filename
|
|
jsr popeax
|
|
stax tftp_ip
|
|
ldax sreg
|
|
stax tftp_ip+2
|
|
jsr tftp_download
|
|
ldx #$00
|
|
txa
|
|
rol
|
|
rts
|
|
|
|
_tftp_download_to_memory:
|
|
stax tftp_load_address
|
|
jsr tftp_clear_callbacks
|
|
jsr popax
|
|
stax tftp_filename
|
|
jsr popeax
|
|
stax tftp_ip
|
|
ldax sreg
|
|
stax tftp_ip+2
|
|
jsr tftp_download
|
|
bcs error
|
|
sec
|
|
lda tftp_current_memloc
|
|
sbc tftp_load_address
|
|
tay
|
|
lda tftp_current_memloc+1
|
|
sbc tftp_load_address+1
|
|
tax
|
|
tya
|
|
rts
|
|
|
|
error:
|
|
ldx #$00
|
|
txa
|
|
rts
|
|
|
|
_tftp_upload:
|
|
jsr tftp_set_callback_vector
|
|
jsr popax
|
|
stax tftp_filename
|
|
jsr popeax
|
|
stax tftp_ip
|
|
ldax sreg
|
|
stax tftp_ip+2
|
|
jsr tftp_upload
|
|
ldx #$00
|
|
txa
|
|
rol
|
|
rts
|
|
|
|
_tftp_upload_from_memory:
|
|
stax tftp_filesize
|
|
jsr popax
|
|
stax tftp_load_address
|
|
jsr popax
|
|
stax tftp_filename
|
|
jsr popeax
|
|
stax tftp_ip
|
|
ldax sreg
|
|
stax tftp_ip+2
|
|
jsr tftp_upload_from_memory
|
|
ldx #$00
|
|
txa
|
|
rol
|
|
rts
|