mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-09-01 05:29:18 +00:00
146 lines
2.7 KiB
ArmAsm
146 lines
2.7 KiB
ArmAsm
;#############
|
|
;
|
|
; This program looks for a TNDP server on the network, presents a catalog of volumes on that server, and allows a volume to be attached
|
|
;
|
|
; jonno@jamtronix.com - January 2009
|
|
;
|
|
|
|
.include "../inc/common.i"
|
|
.include "../inc/commonprint.i"
|
|
.include "../inc/net.i"
|
|
.import cls
|
|
|
|
.import exit_to_basic
|
|
|
|
.import copymem
|
|
.importzp copy_src
|
|
.importzp copy_dest
|
|
|
|
.import __STARTUP_LOAD__
|
|
.import __STARTUP_SIZE__
|
|
.import __BSS_LOAD__
|
|
.import __DATA_LOAD__
|
|
.import __DATA_RUN__
|
|
.import __DATA_SIZE__
|
|
.import __RODATA_LOAD__
|
|
.import __RODATA_RUN__
|
|
.import __RODATA_SIZE__
|
|
.import __CODE_LOAD__
|
|
.import __CODE_RUN__
|
|
.import __CODE_SIZE__
|
|
|
|
.segment "PAGE3"
|
|
|
|
disable_language_card: .res 3
|
|
bin_file_jmp: .res 3
|
|
|
|
; ------------------------------------------------------------------------
|
|
|
|
.segment "EXEHDR"
|
|
|
|
.addr __STARTUP_LOAD__ ; Start address
|
|
.word __STARTUP_SIZE__+__CODE_SIZE__+__RODATA_SIZE__+__DATA_SIZE__+4 ; Size
|
|
|
|
; ------------------------------------------------------------------------
|
|
|
|
|
|
.segment "STARTUP"
|
|
|
|
|
|
lda $c089 ;enable language : card read ROM, write RAM, BANK 1
|
|
|
|
;copy the monitor rom on to the language card
|
|
ldax #$f800
|
|
stax copy_src
|
|
stax copy_dest
|
|
ldax #$0800
|
|
jsr startup_copymem
|
|
|
|
|
|
lda $c08b ;enable language : card read RAM, write RAM, BANK 1
|
|
lda $c08b ;this soft switch needs to be read twice
|
|
|
|
|
|
;relocate the CODE segment
|
|
ldax #__CODE_LOAD__
|
|
stax copy_src
|
|
ldax #__CODE_RUN__
|
|
stax copy_dest
|
|
ldax #__CODE_SIZE__
|
|
jsr startup_copymem
|
|
|
|
|
|
;relocate the RODATA segment
|
|
ldax #__RODATA_LOAD__
|
|
stax copy_src
|
|
ldax #__RODATA_RUN__
|
|
stax copy_dest
|
|
ldax #__RODATA_SIZE__
|
|
jsr startup_copymem
|
|
|
|
;relocate the DATA segment
|
|
ldax #__DATA_LOAD__
|
|
stax copy_src
|
|
ldax #__DATA_RUN__
|
|
stax copy_dest
|
|
ldax #__DATA_SIZE__
|
|
jsr startup_copymem
|
|
|
|
jmp init
|
|
|
|
; copy memory
|
|
; set copy_src and copy_dest, length in A/X
|
|
|
|
|
|
end: .res 1
|
|
|
|
startup_copymem:
|
|
sta end
|
|
ldy #0
|
|
|
|
cpx #0
|
|
beq @tail
|
|
|
|
: lda (copy_src),y
|
|
sta (copy_dest),y
|
|
iny
|
|
bne :-
|
|
inc copy_src+1 ;next page
|
|
inc copy_dest+1 ;next page
|
|
dex
|
|
bne :-
|
|
|
|
@tail:
|
|
lda end
|
|
beq @done
|
|
|
|
: lda (copy_src),y
|
|
sta (copy_dest),y
|
|
iny
|
|
cpy end
|
|
bne :-
|
|
|
|
@done:
|
|
rts
|
|
|
|
.code
|
|
|
|
|
|
init:
|
|
|
|
jsr cls
|
|
|
|
ldax #startup_msg
|
|
jsr print
|
|
jsr print_cr
|
|
|
|
jmp exit_to_basic
|
|
|
|
.rodata
|
|
startup_msg: .byte "NETBOOT65 FOR APPLE 2 V0.1",13
|
|
.byte "SEE README.TXT FOR MORE INFO (INCLUDING",13
|
|
.byte "HOW TO RUN SOMETHING MORE INTERESTING)",13
|
|
.byte 0
|
|
|
|
|