mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-09-08 21:54:28 +00:00
git-svn-id: http://svn.code.sf.net/p/netboot65/code@198 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
e9ede61899
commit
159c255766
@ -1,46 +0,0 @@
|
|||||||
CC=cl65
|
|
||||||
AS=ca65
|
|
||||||
LD=ld65
|
|
||||||
CFLAGS=-Oirs -t $(TARGET)
|
|
||||||
AFLAGS=
|
|
||||||
|
|
||||||
|
|
||||||
IP65LIB=../ip65/ip65.lib
|
|
||||||
|
|
||||||
IP65TCPLIB=../ip65/ip65_tcp.lib
|
|
||||||
|
|
||||||
C64PNB65LIB=../drivers/c64nb65.lib
|
|
||||||
APPLE2PROGLIB=../drivers/apple2prog.lib
|
|
||||||
|
|
||||||
INCFILES=\
|
|
||||||
../inc/common.i\
|
|
||||||
../inc/commonprint.i\
|
|
||||||
../inc/net.i\
|
|
||||||
|
|
||||||
all: \
|
|
||||||
kipper.dsk \
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
$(CC) -c $(CFLAGS) $<
|
|
||||||
|
|
||||||
%.o: %.s
|
|
||||||
$(AS) $(AFLAGS) $<
|
|
||||||
|
|
||||||
kipper.o: kipper.s ../inc/gopher.i ../inc/telnet.i
|
|
||||||
$(AS) $(AFLAGS) $<
|
|
||||||
|
|
||||||
kipper.pg2: kipper.o $(IP65TCPLIB) $(APPLE2PROGLIB) $(INCFILES) ../cfg/a2bin.cfg
|
|
||||||
$(LD) -C ../cfg/a2bin.cfg -m kipper.map -vm -o kipper.pg2 $(AFLAGS) $< $(IP65TCPLIB) $(APPLE2PROGLIB)
|
|
||||||
|
|
||||||
#%.pg2: %.o $(IP65LIB) $(APPLE2PROGLIB) $(INCFILES) ../cfg/a2bin.cfg
|
|
||||||
# $(LD) -C ../cfg/a2bin.cfg -o $*.pg2 $(AFLAGS) $< $(IP65LIB) $(APPLE2PROGLIB)
|
|
||||||
|
|
||||||
kipper.dsk: kipper.pg2
|
|
||||||
ripxplore.rb --init BeautifulBoot kipper.dsk -a kipper.pg2 -t AppleBinary
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.pg2 *.prg
|
|
||||||
rm -f kipper.dsk
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -f *~
|
|
@ -1,67 +0,0 @@
|
|||||||
;Apple 2 gopher browser
|
|
||||||
;july 2009 - jonno @ jamtronix.com
|
|
||||||
|
|
||||||
.include "../inc/common.i"
|
|
||||||
.include "../inc/commonprint.i"
|
|
||||||
.include "../inc/net.i"
|
|
||||||
.include "../inc/a2keycodes.i"
|
|
||||||
; .include "../inc/c64keycodes.i"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
KEY_NEXT_PAGE=$8E ; ^N
|
|
||||||
KEY_PREV_PAGE=$90; ^P
|
|
||||||
KEY_SHOW_HISTORY=$93; ^S
|
|
||||||
KEY_BACK_IN_HISTORY=$82 ; ^B
|
|
||||||
KEY_NEW_SERVER=$89 ;TAB key
|
|
||||||
|
|
||||||
.include "../inc/gopher.i"
|
|
||||||
|
|
||||||
.import __CODE_LOAD__
|
|
||||||
.import __CODE_SIZE__
|
|
||||||
.import __RODATA_SIZE__
|
|
||||||
.import __DATA_SIZE__
|
|
||||||
|
|
||||||
.import get_key
|
|
||||||
|
|
||||||
.segment "EXEHDR" ;this is what gets put an the start of the file on the Apple 2
|
|
||||||
.addr __CODE_LOAD__-3 ; Start address
|
|
||||||
.word __CODE_SIZE__+__RODATA_SIZE__+__DATA_SIZE__+4 ; Size
|
|
||||||
jmp init
|
|
||||||
|
|
||||||
|
|
||||||
.code
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
jsr cls
|
|
||||||
jsr $c300 ; go to 80 column mode
|
|
||||||
|
|
||||||
|
|
||||||
ldax #title
|
|
||||||
jsr print
|
|
||||||
jsr print_cr
|
|
||||||
init_ip_via_dhcp
|
|
||||||
jsr print_ip_config
|
|
||||||
|
|
||||||
|
|
||||||
ldax #initial_location
|
|
||||||
sta resource_pointer_lo
|
|
||||||
stx resource_pointer_hi
|
|
||||||
ldx #0
|
|
||||||
jsr select_resource_from_current_directory
|
|
||||||
|
|
||||||
exit_gopher:
|
|
||||||
jmp $e000
|
|
||||||
; rts
|
|
||||||
|
|
||||||
.rodata
|
|
||||||
title:
|
|
||||||
.byte " GOPHER ][",13," jonno@jamtronix.com",13,0
|
|
||||||
|
|
||||||
resolving:
|
|
||||||
.byte "RESOLVING ",0
|
|
||||||
|
|
||||||
initial_location:
|
|
||||||
.byte "1gopher.floodgap.com",$09,"/",$09,"gopher.floodgap.com",$09,"70",$0D,$0A,0
|
|
||||||
|
|
@ -1,285 +0,0 @@
|
|||||||
; Kipper
|
|
||||||
;started as a port of c64 telnet to A2 at Mt Keira Fest, July 2009
|
|
||||||
; jonno @ jamtronix.com
|
|
||||||
|
|
||||||
.include "../inc/common.i"
|
|
||||||
.include "../inc/commonprint.i"
|
|
||||||
.include "../inc/net.i"
|
|
||||||
.include "../inc/a2keycodes.i"
|
|
||||||
|
|
||||||
|
|
||||||
.import __CODE_LOAD__
|
|
||||||
.import __CODE_SIZE__
|
|
||||||
.import __RODATA_SIZE__
|
|
||||||
.import __DATA_SIZE__
|
|
||||||
|
|
||||||
.import get_key
|
|
||||||
.import cls
|
|
||||||
|
|
||||||
.import print_a_inverse
|
|
||||||
|
|
||||||
.import telnet_connect
|
|
||||||
.import telnet_local_echo
|
|
||||||
.import telnet_line_mode
|
|
||||||
.import telnet_use_native_charset
|
|
||||||
.import telnet_port
|
|
||||||
.import telnet_ip
|
|
||||||
.import cfg_init
|
|
||||||
|
|
||||||
.import dns_ip
|
|
||||||
.import dns_resolve
|
|
||||||
.import dns_set_hostname
|
|
||||||
.import get_filtered_input
|
|
||||||
.import filter_dns
|
|
||||||
.import filter_number
|
|
||||||
|
|
||||||
KEY_NEXT_PAGE=$8E ; ^N
|
|
||||||
KEY_PREV_PAGE=$90; ^P
|
|
||||||
KEY_SHOW_HISTORY=$93; ^S
|
|
||||||
KEY_BACK_IN_HISTORY=$82 ; ^B
|
|
||||||
KEY_NEW_SERVER=$89 ;TAB key
|
|
||||||
|
|
||||||
.include "../inc/gopher.i"
|
|
||||||
|
|
||||||
.segment "EXEHDR" ;this is what gets put an the start of the file on the Apple 2
|
|
||||||
.addr __CODE_LOAD__-3 ; Start address
|
|
||||||
.word __CODE_SIZE__+__RODATA_SIZE__+__DATA_SIZE__+4 ; Size
|
|
||||||
jmp init
|
|
||||||
|
|
||||||
|
|
||||||
.code
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
jsr cls
|
|
||||||
jsr $c300
|
|
||||||
ldax #title
|
|
||||||
jsr print
|
|
||||||
jsr print_cr
|
|
||||||
init_ip_via_dhcp
|
|
||||||
jsr print_ip_config
|
|
||||||
|
|
||||||
main_loop:
|
|
||||||
ldax #main_menu
|
|
||||||
jsr print
|
|
||||||
|
|
||||||
@command_input:
|
|
||||||
jsr get_key
|
|
||||||
and #$7f ;strip high bit
|
|
||||||
cmp #'T'
|
|
||||||
beq @telnet
|
|
||||||
cmp #'t'
|
|
||||||
beq @telnet
|
|
||||||
|
|
||||||
cmp #'G'
|
|
||||||
beq @gopher
|
|
||||||
cmp #'g'
|
|
||||||
beq @gopher
|
|
||||||
|
|
||||||
cmp #'Q'
|
|
||||||
beq @quit
|
|
||||||
cmp #'q'
|
|
||||||
beq @quit
|
|
||||||
|
|
||||||
jmp @command_input
|
|
||||||
|
|
||||||
@telnet:
|
|
||||||
jmp telnet_main_entry
|
|
||||||
|
|
||||||
@gopher:
|
|
||||||
ldax #gopher_initial_location
|
|
||||||
sta resource_pointer_lo
|
|
||||||
stx resource_pointer_hi
|
|
||||||
; jsr print
|
|
||||||
ldx #0
|
|
||||||
jsr select_resource_from_current_directory
|
|
||||||
jmp main_loop
|
|
||||||
|
|
||||||
@quit:
|
|
||||||
jmp $e000
|
|
||||||
exit_telnet:
|
|
||||||
exit_gopher:
|
|
||||||
jmp main_loop
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
telnet_main_entry:
|
|
||||||
;prompt for a hostname, then resolve to an IP address
|
|
||||||
|
|
||||||
ldax #remote_host
|
|
||||||
jsr print
|
|
||||||
ldax #filter_dns
|
|
||||||
ldy #40
|
|
||||||
jsr get_filtered_input
|
|
||||||
bcc @host_entered
|
|
||||||
;if no host entered, then bail.
|
|
||||||
jmp exit_telnet
|
|
||||||
@host_entered:
|
|
||||||
stax hostname_ptr
|
|
||||||
jsr print_cr
|
|
||||||
ldax #resolving
|
|
||||||
jsr print
|
|
||||||
ldax hostname_ptr
|
|
||||||
jsr print
|
|
||||||
jsr print_cr
|
|
||||||
ldax hostname_ptr
|
|
||||||
jsr dns_set_hostname
|
|
||||||
bcs :+
|
|
||||||
jsr dns_resolve
|
|
||||||
:
|
|
||||||
bcc @resolved_ok
|
|
||||||
print_failed
|
|
||||||
jsr print_cr
|
|
||||||
jsr print_errorcode
|
|
||||||
jmp telnet_main_entry
|
|
||||||
@resolved_ok:
|
|
||||||
ldx #3
|
|
||||||
@copy_telnet_ip_loop:
|
|
||||||
lda dns_ip,x
|
|
||||||
sta telnet_ip,x
|
|
||||||
dex
|
|
||||||
bpl @copy_telnet_ip_loop
|
|
||||||
@get_port:
|
|
||||||
ldax #remote_port
|
|
||||||
jsr print
|
|
||||||
jsr get_port_number
|
|
||||||
bcc @port_entered
|
|
||||||
;if no port entered, then assume port 23
|
|
||||||
ldax #23
|
|
||||||
@port_entered:
|
|
||||||
stax telnet_port
|
|
||||||
jsr print_cr
|
|
||||||
|
|
||||||
ldax #char_mode_prompt
|
|
||||||
jsr print
|
|
||||||
@char_mode_input:
|
|
||||||
jsr get_key
|
|
||||||
and #$7f ;strip high bit
|
|
||||||
cmp #'A'
|
|
||||||
beq @ascii_mode
|
|
||||||
cmp #'a'
|
|
||||||
beq @ascii_mode
|
|
||||||
|
|
||||||
cmp #'N'
|
|
||||||
beq @native_mode
|
|
||||||
cmp #'n'
|
|
||||||
beq @native_mode
|
|
||||||
|
|
||||||
cmp #'l'
|
|
||||||
beq @line_mode
|
|
||||||
cmp #'L'
|
|
||||||
beq @line_mode
|
|
||||||
|
|
||||||
jmp @char_mode_input
|
|
||||||
@ascii_mode:
|
|
||||||
lda #0
|
|
||||||
sta telnet_use_native_charset
|
|
||||||
sta telnet_line_mode
|
|
||||||
lda #1
|
|
||||||
sta telnet_local_echo
|
|
||||||
jmp @after_mode_set
|
|
||||||
@native_mode:
|
|
||||||
lda #1
|
|
||||||
sta telnet_use_native_charset
|
|
||||||
lda #0
|
|
||||||
sta telnet_local_echo
|
|
||||||
sta telnet_line_mode
|
|
||||||
jmp @after_mode_set
|
|
||||||
@line_mode:
|
|
||||||
lda #0
|
|
||||||
sta telnet_use_native_charset
|
|
||||||
lda #1
|
|
||||||
sta telnet_local_echo
|
|
||||||
sta telnet_line_mode
|
|
||||||
|
|
||||||
@after_mode_set:
|
|
||||||
|
|
||||||
jsr cls
|
|
||||||
|
|
||||||
ldax #connecting_in
|
|
||||||
jsr print
|
|
||||||
lda telnet_use_native_charset
|
|
||||||
beq @a_mode
|
|
||||||
ldax #native
|
|
||||||
jmp @c_mode
|
|
||||||
@a_mode:
|
|
||||||
lda telnet_line_mode
|
|
||||||
bne @l_mode
|
|
||||||
ldax #ascii
|
|
||||||
jmp @c_mode
|
|
||||||
@l_mode:
|
|
||||||
ldax #line
|
|
||||||
@c_mode:
|
|
||||||
jsr print
|
|
||||||
ldax #mode
|
|
||||||
jsr print
|
|
||||||
jsr telnet_connect
|
|
||||||
jmp telnet_main_entry
|
|
||||||
|
|
||||||
|
|
||||||
get_port_number:
|
|
||||||
.import mul_8_16
|
|
||||||
.importzp acc16
|
|
||||||
|
|
||||||
ldy #5 ;max chars
|
|
||||||
ldax #filter_number
|
|
||||||
jsr get_filtered_input
|
|
||||||
bcs @no_port_entered
|
|
||||||
|
|
||||||
;AX now points a string containing port number
|
|
||||||
|
|
||||||
stax buffer_ptr
|
|
||||||
lda #0
|
|
||||||
sta port_number
|
|
||||||
sta port_number+1
|
|
||||||
tay
|
|
||||||
@parse_port:
|
|
||||||
lda (buffer_ptr),y
|
|
||||||
cmp #$1F
|
|
||||||
bcc @end_of_port ;any control char should be treated as end of port field
|
|
||||||
ldax port_number
|
|
||||||
stax acc16
|
|
||||||
lda #10
|
|
||||||
jsr mul_8_16
|
|
||||||
ldax acc16
|
|
||||||
stax port_number
|
|
||||||
lda (buffer_ptr),y
|
|
||||||
sec
|
|
||||||
sbc #'0'
|
|
||||||
clc
|
|
||||||
adc port_number
|
|
||||||
sta port_number
|
|
||||||
bcc @no_rollover
|
|
||||||
inc port_number+1
|
|
||||||
@no_rollover:
|
|
||||||
iny
|
|
||||||
bne @parse_port
|
|
||||||
@end_of_port:
|
|
||||||
ldax port_number
|
|
||||||
clc
|
|
||||||
@no_port_entered:
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
.bss
|
|
||||||
hostname_ptr: .res 2
|
|
||||||
port_number: .res 2
|
|
||||||
|
|
||||||
.rodata
|
|
||||||
gopher_initial_location:
|
|
||||||
.byte "1gopher.floodgap.com",$09,"/",$09,"gopher.floodgap.com",$09,"70",$0D,$0A,0
|
|
||||||
main_menu: .byte "COMMAND - T=TELNET, G=GOPHER, Q=QUIT",13,0
|
|
||||||
|
|
||||||
resolving: .byte "RESOLVING ",0
|
|
||||||
connecting_in: .byte "CONNECTING IN ",0
|
|
||||||
ascii: .byte "ASCII",0
|
|
||||||
native: .byte "NATIVE",0
|
|
||||||
line: .byte "LINE",0
|
|
||||||
mode: .byte " MODE",13,0
|
|
||||||
remote_host: .byte "HOSTNAME (LEAVE BLANK TO QUIT)",13,": ",0
|
|
||||||
remote_port: .byte "PORT # (LEAVE BLANK FOR DEFAULT)",13,": ",0
|
|
||||||
char_mode_prompt: .byte "MODE - A=ASCII, N=NATIVE, L=LINE",13,0
|
|
||||||
|
|
||||||
title: .byte "KIPPER ][",13,"jonno@jamtronix.com",13,0
|
|
Loading…
Reference in New Issue
Block a user