mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-09-12 02:54:54 +00:00
Converted web server test from KIPPER Cart to "classic" IP65 program.
This commit is contained in:
parent
93c33c71c1
commit
b093d71261
@ -39,6 +39,7 @@ prg: \
|
|||||||
dns.prg \
|
dns.prg \
|
||||||
dottedquad.prg \
|
dottedquad.prg \
|
||||||
geturl_tcp.prg \
|
geturl_tcp.prg \
|
||||||
|
httpd_tcp.prg \
|
||||||
parsequerystring.prg \
|
parsequerystring.prg \
|
||||||
parser_tcp.prg \
|
parser_tcp.prg \
|
||||||
ping_tcp.prg \
|
ping_tcp.prg \
|
||||||
@ -53,6 +54,7 @@ bin: \
|
|||||||
dns.bin \
|
dns.bin \
|
||||||
dottedquad.bin \
|
dottedquad.bin \
|
||||||
geturl_tcp.bin \
|
geturl_tcp.bin \
|
||||||
|
httpd_tcp.bin \
|
||||||
parsequerystring.bin \
|
parsequerystring.bin \
|
||||||
parser_tcp.bin \
|
parser_tcp.bin \
|
||||||
ping_tcp.bin \
|
ping_tcp.bin \
|
||||||
@ -67,6 +69,7 @@ vicprg: \
|
|||||||
dns.vicprg \
|
dns.vicprg \
|
||||||
dottedquad.vicprg \
|
dottedquad.vicprg \
|
||||||
geturl_tcp.vicprg \
|
geturl_tcp.vicprg \
|
||||||
|
httpd_tcp.vicprg \
|
||||||
parsequerystring.vicprg \
|
parsequerystring.vicprg \
|
||||||
parser_tcp.vicprg \
|
parser_tcp.vicprg \
|
||||||
ping_tcp.vicprg \
|
ping_tcp.vicprg \
|
||||||
@ -110,6 +113,7 @@ ip65.d64: prg
|
|||||||
$(C1541) -attach $@ -write dns.prg dns,p
|
$(C1541) -attach $@ -write dns.prg dns,p
|
||||||
$(C1541) -attach $@ -write dottedquad.prg dottedquad,p
|
$(C1541) -attach $@ -write dottedquad.prg dottedquad,p
|
||||||
$(C1541) -attach $@ -write geturl.prg geturl,p
|
$(C1541) -attach $@ -write geturl.prg geturl,p
|
||||||
|
$(C1541) -attach $@ -write httpd.prg httpd,p
|
||||||
$(C1541) -attach $@ -write parser.prg parser,p
|
$(C1541) -attach $@ -write parser.prg parser,p
|
||||||
$(C1541) -attach $@ -write ping.prg ping,p
|
$(C1541) -attach $@ -write ping.prg ping,p
|
||||||
$(C1541) -attach $@ -write sntp.prg sntp,p
|
$(C1541) -attach $@ -write sntp.prg sntp,p
|
||||||
@ -121,6 +125,7 @@ ip65.dsk: bin
|
|||||||
java -jar $(AC) -cc65 $@ dns bin 0 < dns.bin
|
java -jar $(AC) -cc65 $@ dns bin 0 < dns.bin
|
||||||
java -jar $(AC) -cc65 $@ dottedquad bin 0 < dottedquad.bin
|
java -jar $(AC) -cc65 $@ dottedquad bin 0 < dottedquad.bin
|
||||||
java -jar $(AC) -cc65 $@ geturl bin 0 < geturl.bin
|
java -jar $(AC) -cc65 $@ geturl bin 0 < geturl.bin
|
||||||
|
java -jar $(AC) -cc65 $@ httpd bin 0 < httpd.bin
|
||||||
java -jar $(AC) -cc65 $@ parser bin 0 < parser.bin
|
java -jar $(AC) -cc65 $@ parser bin 0 < parser.bin
|
||||||
java -jar $(AC) -cc65 $@ ping bin 0 < ping.bin
|
java -jar $(AC) -cc65 $@ ping bin 0 < ping.bin
|
||||||
java -jar $(AC) -cc65 $@ sntp bin 0 < sntp.bin
|
java -jar $(AC) -cc65 $@ sntp bin 0 < sntp.bin
|
||||||
|
176
test/httpd.s
176
test/httpd.s
@ -1,181 +1,55 @@
|
|||||||
; test the "Kipper Kartridge API"
|
.include "../inc/common.i"
|
||||||
|
.include "../inc/commonprint.i"
|
||||||
|
.include "../inc/net.i"
|
||||||
|
|
||||||
.ifndef KPR_API_VERSION_NUMBER
|
.import exit_to_basic
|
||||||
.define EQU =
|
|
||||||
.include "../inc/kipper_constants.i"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.include "../ip65/copymem.s"
|
.import httpd_start
|
||||||
|
.import http_get_value
|
||||||
; load A/X macro
|
|
||||||
.macro ldax arg
|
|
||||||
.if (.match (.left (1, arg), #)) ; immediate mode
|
|
||||||
lda #<(.right (.tcount (arg)-1, arg))
|
|
||||||
ldx #>(.right (.tcount (arg)-1, arg))
|
|
||||||
.else ; assume absolute or zero page
|
|
||||||
lda arg
|
|
||||||
ldx 1+(arg)
|
|
||||||
.endif
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
; store A/X macro
|
|
||||||
.macro stax arg
|
|
||||||
sta arg
|
|
||||||
stx 1+(arg)
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
print_a = $ffd2
|
|
||||||
|
|
||||||
.macro cout arg
|
|
||||||
lda arg
|
|
||||||
jsr print_a
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
|
|
||||||
.zeropage
|
|
||||||
|
|
||||||
temp_ptr: .res 2
|
|
||||||
|
|
||||||
|
|
||||||
.bss
|
|
||||||
|
|
||||||
kipper_param_buffer: .res $20
|
|
||||||
block_number: .res $0
|
|
||||||
|
|
||||||
|
|
||||||
.segment "STARTUP"
|
.segment "STARTUP"
|
||||||
|
|
||||||
.macro print arg
|
|
||||||
ldax arg
|
|
||||||
ldy #KPR_PRINT_ASCIIZ
|
|
||||||
jsr KPR_DISPATCH_VECTOR
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
.macro print_cr
|
|
||||||
lda #13
|
|
||||||
jsr print_a
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
.macro call arg
|
|
||||||
ldy arg
|
|
||||||
jsr KPR_DISPATCH_VECTOR
|
|
||||||
.endmacro
|
|
||||||
|
|
||||||
; look for KIPPER signature at location pointed at by AX
|
|
||||||
look_for_signature:
|
|
||||||
stax temp_ptr
|
|
||||||
ldy #5
|
|
||||||
@check_one_byte:
|
|
||||||
lda (temp_ptr),y
|
|
||||||
cmp kipper_signature,y
|
|
||||||
bne @bad_match
|
|
||||||
dey
|
|
||||||
bpl@check_one_byte
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
@bad_match:
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
init:
|
|
||||||
ldax #KPR_CART_SIGNATURE ; where signature should be in cartridge
|
|
||||||
jsr look_for_signature
|
|
||||||
bcc @found_kipper_signature
|
|
||||||
jmp kipper_signature_not_found
|
|
||||||
|
|
||||||
@found_kipper_signature:
|
|
||||||
lda #14
|
lda #14
|
||||||
jsr print_a ; switch to lower case
|
jsr print_a ; switch to lower case
|
||||||
|
|
||||||
print #initializing
|
ldax #initializing
|
||||||
|
jsr print
|
||||||
|
init_ip_via_dhcp
|
||||||
|
jsr print_ip_config
|
||||||
|
|
||||||
lda #$4c
|
ldax #listening
|
||||||
sta $4000
|
jsr print
|
||||||
ldax #print_vars
|
|
||||||
stax $4001
|
|
||||||
|
|
||||||
ldy #KPR_INITIALIZE
|
|
||||||
jsr KPR_DISPATCH_VECTOR
|
|
||||||
bcc :+
|
|
||||||
print #failed
|
|
||||||
jsr print_errorcode
|
|
||||||
jmp bad_boot
|
|
||||||
: print #ok
|
|
||||||
print_cr
|
|
||||||
|
|
||||||
call #KPR_PRINT_IP_CONFIG
|
|
||||||
print #listening
|
|
||||||
ldax #httpd_callback
|
ldax #httpd_callback
|
||||||
; ldax #$0000
|
jsr httpd_start
|
||||||
call #KPR_HTTPD_START
|
|
||||||
jsr print_errorcode
|
jmp exit_to_basic
|
||||||
rts
|
|
||||||
|
|
||||||
print_vars:
|
print_vars:
|
||||||
lda #'h'
|
lda #'h'
|
||||||
call #KPR_HTTPD_GET_VAR_VALUE
|
jsr http_get_value
|
||||||
bcs :+
|
bcs :+
|
||||||
call #KPR_PRINT_ASCIIZ
|
jsr print
|
||||||
print #said
|
ldax #said
|
||||||
|
jsr print
|
||||||
lda #'m'
|
lda #'m'
|
||||||
call #KPR_HTTPD_GET_VAR_VALUE
|
jsr http_get_value
|
||||||
bcs :+
|
bcs :+
|
||||||
call #KPR_PRINT_ASCIIZ
|
jsr print
|
||||||
print_cr
|
jsr print_cr
|
||||||
: rts
|
: rts
|
||||||
|
|
||||||
bad_boot:
|
|
||||||
print #press_a_key_to_continue
|
|
||||||
restart:
|
|
||||||
jsr get_key
|
|
||||||
jmp $fce2 ; do a cold start
|
|
||||||
|
|
||||||
print_errorcode:
|
|
||||||
print #error_code
|
|
||||||
call #KPR_GET_LAST_ERROR
|
|
||||||
call #KPR_PRINT_HEX
|
|
||||||
print_cr
|
|
||||||
rts
|
|
||||||
|
|
||||||
; use C64 Kernel ROM function to read a key
|
|
||||||
; inputs: none
|
|
||||||
; outputs: A contains ASCII value of key just pressed
|
|
||||||
get_key:
|
|
||||||
jsr $ffe4
|
|
||||||
cmp #0
|
|
||||||
beq get_key
|
|
||||||
rts
|
|
||||||
|
|
||||||
kipper_signature_not_found:
|
|
||||||
ldy #0
|
|
||||||
: lda kipper_signature_not_found_message,y
|
|
||||||
beq restart
|
|
||||||
jsr print_a
|
|
||||||
iny
|
|
||||||
jmp :-
|
|
||||||
|
|
||||||
httpd_callback:
|
httpd_callback:
|
||||||
jsr print_vars
|
jsr print_vars
|
||||||
ldax #html
|
ldax #html
|
||||||
ldy #2 ; text/html
|
ldy #2 ; text/html
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
.rodata
|
.rodata
|
||||||
|
|
||||||
kipper_signature:
|
|
||||||
.byte "KIPPER" ; API signature
|
|
||||||
error_code:
|
|
||||||
.asciiz "ERROR CODE: $"
|
|
||||||
press_a_key_to_continue:
|
|
||||||
.byte "PRESS A KEY TO CONTINUE",13,0
|
|
||||||
failed:
|
|
||||||
.byte "FAILED ",0
|
|
||||||
ok:
|
|
||||||
.byte "OK ",0
|
|
||||||
kipper_signature_not_found_message:
|
|
||||||
.byte "NO KIPPER API FOUND",13,"PRESS ANY KEY TO RESET",0
|
|
||||||
initializing:
|
initializing:
|
||||||
.byte "INITIALIZING ",0
|
.byte "INITIALIZING ",0
|
||||||
listening:
|
listening:
|
||||||
@ -187,7 +61,7 @@ html:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
; -- LICENSE FOR test_httpd.s --
|
; -- LICENSE FOR httpd.s --
|
||||||
; The contents of this file are subject to the Mozilla Public License
|
; The contents of this file are subject to the Mozilla Public License
|
||||||
; Version 1.1 (the "License"); you may not use this file except in
|
; Version 1.1 (the "License"); you may not use this file except in
|
||||||
; compliance with the License. You may obtain a copy of the License at
|
; compliance with the License. You may obtain a copy of the License at
|
||||||
|
Loading…
Reference in New Issue
Block a user