Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-01 08:23:13 +02:00
parent ea7bbc3731
commit eb9443dce4
2 changed files with 45 additions and 15 deletions

Binary file not shown.

View File

@ -3,8 +3,7 @@ NEW
.LIST OFF
.OP 65C02
.OR $2000
* .TF bin/httpget
.TF root/httpget
.TF bin/httpget
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
@ -37,6 +36,7 @@ hEncodedBuf .BS 1
hSendBuf .BS 1
ZPSendBufPtr .BS 2
hFile .BS 1
ZPFileName .BS 2
hRespBuf .BS 1
@ -283,7 +283,18 @@ CS.RUN.GET jsr CS.RUN.ENCODE
jsr CS.RUN.REQUEST
bcs .99
jsr CS.RUN.RESPONSE
>LDYA ZPFileName
beq .1
>PUSHYA
>PUSHBI O.CREATE+O.WRONLY+O.TRUNC
>PUSHBI 0 TYPE
>PUSHWI 0 AUXTYPE
>SYSCALL FOpen
bcs .9
sta hFile
.1 jsr CS.RUN.RESPONSE
bcs .99
.9 lda #0
@ -416,19 +427,20 @@ CS.RUN.REQUEST jsr Init.TimeOut
>LDYAI 1024
>SYSCALL GetMem
bcs .9
>STYA ZPSendBufPtr
stx hSendBuf
>PUSHYA
>PUSHW HTTP.GET
>PUSHW L.HTTP.GET
>PUSHW ZPEncodedBufPtr
>PUSHW ZPHostPtr
>PUSHBI 4
>SYSCALL SPrintF
bcs .90
>PUSHYA
>PUSHYA Byte count
>PUSHW ZPSendBufPtr
lda hSocket
@ -447,6 +459,9 @@ CS.RUN.RESPONSE jsr Init.TimeOut
.1 >SLEEP
lda #'?'
>SYSCALL putchar
lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .2
@ -455,26 +470,35 @@ CS.RUN.RESPONSE jsr Init.TimeOut
bne .8
lda TimeOut
bne .80
bra .1
bne .1
bra .80
.2 >SYSCALL GetMemPtr
.2 lda #'!'
>SYSCALL putchar
>SYSCALL GetMemPtr
>STYA ZPRespBufPtr
>PUSHW ZPRespBufPtr
lda hFile
bne .3
ldy #S.PS.hStdOut
lda (pPS),y
>SYSCALL FWrite
.3 >SYSCALL FWrite
bcs .9
inc bResponse
bra .1
sec
ror bResponse
bra CS.RUN.RESPONSE
.8 cmp #MLI.E.IO SKT Close ?
bne .9
.80 lda bResponse
beq .99
bpl .99
.81 clc
rts
@ -498,6 +522,7 @@ CS.QUIT lda hSocket
beq .1
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
.1 lda hReqBuf
beq .2
@ -513,7 +538,12 @@ CS.QUIT lda hSocket
>SYSCALL FreeMem
.4 lda hLIBTCPIP
.4 lda hFile
beq .5
>SYSCALL FClose
.5 lda hLIBTCPIP
beq .8
>SYSCALL UnloadLib
@ -562,7 +592,7 @@ HTTP.GET .AS "GET /%s HTTP/1.1"
.AS "Connection: close"
.DA #C.CR,#C.LF
.DA #C.CR,#C.LF
HTTP.GET.LEN .EQ *-HTTP.GET
.DA #0
*--------------------------------------
.DUMMY
.OR 0