mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-08-25 04:29:00 +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
|