diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 937f3a42..640e4f15 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 27350bdf..ffdc00c6 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/ETC/HTTPD.CONF.txt b/ETC/HTTPD.CONF.txt new file mode 100644 index 00000000..f69a5164 --- /dev/null +++ b/ETC/HTTPD.CONF.txt @@ -0,0 +1,11 @@ +NEW + AUTO 3,1 +# HTTPD configuration file +ServerName www.example.com:6580 +Listen 6580 +DocumentRoot ${ROOT}/srv/www +# HTTPD mime types +AddType html text/html +AddType png image.png +MAN +TEXT etc/httpd.conf diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index e84d50d1..9d57d217 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -26,7 +26,7 @@ D2Recalibrate >PULLB DrvSlt bcs .9 stz MoveTo - lda #252 + lda #162 sta MoveFrom jsr D2MoveHead.1 @@ -35,19 +35,20 @@ D2Recalibrate >PULLB DrvSlt jsr D2.PhaseOn lda #0 wait 25.6 ms - jsr D2.Wait100msA Trash X + jsr D2.Wait100usecA Trash X +* lda #0 + jsr D2.Wait100usecA Trash X +* lda #0 + jsr D2.Wait100usecA Trash X +* lda #0 + jsr D2.Wait100usecA Trash X + +* lda #0 + jsr D2.PhaseOff lda #0 wait 25.6 ms - jsr D2.Wait100msA Trash X - - lda #0 wait 25.6 ms - jsr D2.Wait100msA Trash X - - lda #0 wait 25.6 ms - jsr D2.Wait100msA Trash X - - jsr D2.PhaseOn.2 - + jsr D2.Wait100usecA Trash X + clc .9 rts */-------------------------------------- @@ -92,69 +93,49 @@ D2MoveHead.1 ldy #0 jsr D2.PhaseOn - lda #104 - jsr D2.Wait100msA Trash X + lda #0 + jsr D2.Wait100usecA Trash X iny bra .1 .8 tya - beq D2.PhaseOff.8 + beq D2.PhaseOn.RTS lda #0 wait 25.6 ms - jsr D2.Wait100msA Trash X + jsr D2.Wait100usecA Trash X lda MoveTo *-------------------------------------- -D2.PhaseOff bit #1 1,3,5,7 ? - beq D2.PhaseOff.2 only half track - -D2.PhaseOff.1 bit IO.D2.Ph0Off SELF MODIFIED -D2.PhaseOff.2 bit IO.D2.Ph0Off SELF MODIFIED - -D2.PhaseOff.8 rts +D2.PhaseOff clc + .HS B0 BCS *-------------------------------------- -D2.PhaseOn bit #1 1,3,5,7 ? - bne .1 only half track +D2.PhaseOn sec + + bit #1 + beq .1 - jsr .7 - bra D2.PhaseOn.2 - -.1 pha - jsr .7 + php + pha + jsr .1 pla inc - jsr .7 - bra D2.PhaseOn.1 - -.7 and #6 mask for 0,2,4,6 - ora Slotn0 Slot $n0 - ora #IO.D2.Ph0On + plp + +.1 and #6 + adc Slotn0 tax - - lda D2.PhaseOn.2+1 - sta D2.PhaseOn.1+1 - - stx D2.PhaseOn.2+1 - - lda D2.PhaseOff.2+1 - sta D2.PhaseOff.1+1 - - dex - stx D2.PhaseOff.2+1 - rts + lda IO.D2.Ph0Off,x + +D2.PhaseOn.RTS rts *-------------------------------------- -D2.PhaseOn.1 bit IO.D2.Ph0On SELF MODIFIED -D2.PhaseOn.2 bit IO.D2.Ph0On SELF MODIFIED - rts -*-------------------------------------- -D2.Wait100msA sec +D2.Wait100usecA sec -.1 ldx #19 +.1 ldx #19 (2) -.2 dex - bne .2 +.2 dex (2) + bne .2 (3) sbc #1 bne .1 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index a0b7f0cb..a3d5f381 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -24,10 +24,6 @@ SKT.Socket.RAW ldy #S.SOCKET SKT.Socket.DGRAM lda #S.IP.PROTOCOL.UDP ldy #S.SOCKET - bra SKT.Socket.DSOCK -SKT.Socket.SEQPACKET - lda #S.IP.PROTOCOL.TCP - ldy #S.SOCKET.TCP SKT.Socket.DSOCK stx FD.DSOCK+S.SOCKET.T save type sta FD.DSOCK+S.SOCKET.PROTO ICMP,UDP,TCP @@ -60,6 +56,8 @@ SKT.Socket.DSOCK txa clc .9 rts + +SKT.Socket.SEQPACKET SKT.Socket.STREAM lda #S.IP.PROTOCOL.TCP ldy #S.SOCKET.TCP @@ -1317,13 +1315,17 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INSEQNUM ldy #S.SOCKET.T lda (ZPPtrSKT),y - cmp #S.SOCKET.T.STREAM + cmp #S.SOCKET.T.SEQPACKET bcc .8 + tax + >LDYAI K.TCP.WSIZE >STYA SKT.Cache+S.SOCKET.TCP.INFREE - >STYA SKT.Cache+S.SOCKET.TCP.OUTFREE - + + cpx #S.SOCKET.T.STREAM + bcc .8 + .DO AUXPIPE=1 >SYSCALL2 NewStkObj .ELSE @@ -1335,6 +1337,9 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INSEQNUM ldy #S.SOCKET.SQ.hInMem sta (ZPPtrSKT),y + >LDYAI K.TCP.WSIZE + >STYA SKT.Cache+S.SOCKET.TCP.OUTFREE + .DO AUXPIPE=1 >SYSCALL2 NewStkObj .ELSE diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index b0898dc1..4162d6fa 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -50,12 +50,17 @@ TCP.IN.JMP.LISTEN bcs .99 jsr TCP.IN.ACKTheSYN + + lda #S.SOCKET.TCP.S.OPENED + jsr SKT.StoreTCB.S + lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK jsr TCP.OUT.SendOptA SYN received, Send SYN.ACK bcs .9 lda #S.SOCKET.TCP.S.SYNRCVD jmp SKT.StoreTCB.S + .9 lda #ERR.SKT.OOS .99 rts *-------------------------------------- diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 2b088808..bf75fbba 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -35,17 +35,17 @@ L59A6 lda XRW.LastUnitUsed jsr XRW.CheckMotorOnX check if previous drive running. beq L59BD branch if stopped. - jsr XRW.Wait100ms + jsr XRW.Wait100usec lda montimeh bne L59A6 L59BD ldx A2L - bit IO.D2.Ph0Off,x make sure all motor phases are off - bit IO.D2.Ph3Off,x - bit IO.D2.Ph2Off,x - bit IO.D2.Ph1Off,x + lda IO.D2.Ph0Off,x make sure all motor phases are off + lda IO.D2.Ph1Off,x + lda IO.D2.Ph2Off,x + lda IO.D2.Ph3Off,x lda IO.D2.ReadMode,x turn off write enable X = slot $S0 nop @@ -127,7 +127,7 @@ L5362 lda IO.D2.DrvSel1,x ldy #7 lda #0 150 ms delay before stepping. -.1 jsr XRW.Wait100msA +.1 jsr XRW.Wait100usecA dey bne .1 @@ -146,7 +146,7 @@ L537C plp was motor on ? * motor was off, wait for it to speed up -L537F jsr XRW.Wait100ms wait 100us for each count in montime +L537F jsr XRW.Wait100usec wait 100us for each count in montime lda montimeh bmi L537F count up to 0000 @@ -181,12 +181,15 @@ L53A4 dec XRW.RetryCnt one less chance. dec XRW.Recalibrate can only recalibrate once. bne hndlerr - lda XRW.CurrentTrack +* lda XRW.CurrentTrack + lda #0 pha save track - clc - adc #8 pretend track is 8 > curtrk +* clc +* adc #12 pretend track is 8 > curtrk + lda #40 + ldy #64 sty XRW.RetryCnt reset retries to 64 max. bra L53CC always. @@ -559,9 +562,10 @@ wnibl sta IO.D2.WLoad,x (5) nibl write * montimel, montimeh are incremented once per 100 usec interval * for motor on timing. *-------------------------------------- -XRW.Wait100ms lda #1 +XRW.Wait100usec lda #1 -XRW.Wait100msA sec (2) +XRW.Wait100usecA + sec (2) .1 ldx #17 (2) @@ -773,66 +777,46 @@ XRW.Seek ldx XRW.UnitIndex stx XRW.CurrentQTrack txa - jsr XRW.PhaseOn - lda #104 - jsr XRW.Wait100msA Trash X + lda #30 + jsr XRW.Wait100usecA Trash X iny bra .1 .8 tya - beq XRW.PhaseOff.RTS + beq XRW.PhaseOn.RTS lda #0 wait 25.6 ms - jsr XRW.Wait100msA Trash X + jsr XRW.Wait100usecA Trash X lda XRW.TargetQTrack *-------------------------------------- -XRW.PhaseOff bit #1 1,3,5,7 ? - beq XRW.PhaseOff.2 only half track - -XRW.PhaseOff.1 bit IO.D2.Ph0Off SELF MODIFIED -XRW.PhaseOff.2 bit IO.D2.Ph0Off SELF MODIFIED - -XRW.PhaseOff.RTS - rts +* A = QTrack *-------------------------------------- -XRW.PhaseOn bit #1 1,3,5,7 ? - bne .1 only half track +XRW.PhaseOff clc + .HS B0 BCS +*-------------------------------------- +XRW.PhaseOn sec + + bit #1 + beq .1 - jsr .7 - bra XRW.PhaseOn.2 - -.1 pha - jsr .7 + php + pha + jsr .1 pla inc - jsr .7 - bra XRW.PhaseOn.1 - -.7 and #6 mask for 0,2,4,6 - ora A2L Slot $n0 - ora #IO.D2.Ph0On + plp + +.1 and #6 + adc A2L tax - - lda XRW.PhaseOn.2+1 - sta XRW.PhaseOn.1+1 - - stx XRW.PhaseOn.2+1 + lda IO.D2.Ph0Off,x - lda XRW.PhaseOff.2+1 - sta XRW.PhaseOff.1+1 - - dex - stx XRW.PhaseOff.2+1 - rts -*-------------------------------------- -XRW.PhaseOn.1 bit IO.D2.Ph0On SELF MODIFIED -XRW.PhaseOn.2 bit IO.D2.Ph0On SELF MODIFIED - rts +XRW.PhaseOn.RTS rts *-------------------------------------- XRW.Trk2Qtrk asl x2 sta .1+1 diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index 9b41f06f..61898146 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -5,11 +5,12 @@ NEW .OR $2000 .TF sbin/httpd *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/ETH.I - .INB INC/LIBTCPIP.I - .INB INC/NET.HTTP.I + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/mli.i + .INB inc/eth.i + .INB inc/libtcpip.i + .INB inc/net.http.i *-------------------------------------- TIMEOUT.MAX .EQ 30 30 sec. CONN.MAX .EQ 16 @@ -17,24 +18,29 @@ CONN.MAX .EQ 16 .DUMMY .OR ZPBIN ZS.START -ZPIPCfgPtr .BS 2 +ZPPtr1 .BS 2 ZPSktPtr .BS 2 -ZPMsgPtr .BS 2 -ZPMsgDataPtr .BS 2 -ZPMsgDataLen .BS 2 -ZPMsgDataCnt .BS 2 - -ArgIndex .BS 1 -hRootdir .BS 1 -ZPRootDirPtr .BS 2 +hFile .BS 1 +hStr .BS 1 ZPStrPtr .BS 2 hSrvSocket .BS 1 -hClntSocket .BS 1 -hMsg .BS 1 -hStr .BS 1 TimeOut .BS 1 +hSrvName .BS 1 +ZPSrvNamePtr .BS 2 +hRootdir .BS 1 +ZPRootDirPtr .BS 2 + +hClntSocket .BS 1 + +hRequest .BS 1 +ZPRequestPtr .BS 2 +ZPnRequestLen .BS 2 + +hReply .BS 1 +ZPReplyPtr .BS 2 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -58,9 +64,16 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP +L.ETCHTTPDCONF .DA ETCHTTPDCONF +L.KEYWORDS .DA KEYWORDS +J.KEYWORDS .DA CS.RUN.CONF.SERVERNAME + .DA CS.RUN.CONF.LISTEN + .DA CS.RUN.CONF.DOCUMENTROOT + .DA CS.RUN.CONF.ADDTYPE L.SA.Local .DA SA.Local L.MSG.TCPWAIT .DA MSG.TCPWAIT L.MSG.TCPIPERR .DA MSG.TCPIPERR +L.MSG.INITCONF .DA MSG.INITCONF L.MSG.INITOK .DA MSG.INITOK L.MSG.SKTERR .DA MSG.SKTERR L.MSG.INCOMING .DA MSG.INCOMING @@ -84,8 +97,8 @@ CS.RUN >LDYA L.MSG.TCPWAIT >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .99 - >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? + >STYA ZPPtr1 + lda (ZPPtr1) Configured ? bmi CS.RUN.INIT lda Timeout @@ -101,7 +114,7 @@ CS.RUN >LDYA L.MSG.TCPWAIT >SYSCALL GetChar bcs CS.RUN.RTS - cmp #$03 + cmp #3 Ctrl-C bne .1 sec @@ -117,35 +130,30 @@ CS.RUN.RTS rts CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 -.1 lda (ZPIPCfgPtr),y +.1 lda (ZPPtr1),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - lda #1 - sta ArgIndex - - >SYSCALL ArgV - bcs CS.RUN.SYN - >SYSCALL atoi - bcs .2 - - >STYA SA.LOCAL+S.SOCKADDR.PORT - inc ArgIndex - -.2 lda ArgIndex - >SYSCALL ArgV - bcs CS.RUN.SYN - - >PUSHYA - >PUSHWI 0 Allocate - >SYSCALL RealPath + >LDYAI 256 + >SYSCALL GetMem bcs CS.RUN.RTS - >STYA ZPRootDirPtr - -CS.RUN.ARGSOK >PUSHBI 0 no protocol + >STYA ZPStrPtr + stx hStr + + >PUSHW L.MSG.INITCONF + >PUSHW L.ETCHTTPDCONF + >PUSHBI 2 + + >SYSCALL PrintF + bcs CS.RUN.RTS + + jsr CS.RUN.CONF + bcs CS.RUN.RTS + + >PUSHBI 0 no protocol lda #S.SOCKET.T.SEQPACKET >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcs CS.RUN.RTS @@ -161,13 +169,6 @@ CS.RUN.ARGSOK >PUSHBI 0 no protocol >LIBCALL hLIBTCPIP,LIBTCPIP.Listen bcs CS.RUN.ERR - >LDYAI 256 - >SYSCALL GetMem - bcs CS.RUN.ERR - - >STYA ZPStrPtr - stx hStr - >PUSHW L.MSG.INITOK >PUSHW SA.LOCAL+S.SOCKADDR.PORT >PUSHW ZPRootDirPtr @@ -186,6 +187,120 @@ CS.RUN.LOOP >SLEEP sec CS.RUN.ERR rts *-------------------------------------- +CS.RUN.CONF >PUSHW L.ETCHTTPDCONF + >PUSHBI O.RDONLY+O.TEXT + >PUSHBI S.FI.T.TXT + >PUSHWZ + >SYSCALL FOpen + bcs .99 + + sta hFile + +.1 >PUSHWI 256 + >PUSHW ZPStrPtr + lda hFile + >SYSCALL fgets + bcs .8 + + tya + beq .1 + + lda (ZPStrPtr) + cmp #'#' + beq .1 + + >LDYA L.KEYWORDS + >STYA ZPPtr1 + + ldx #0 + +.2 ldy #0 + +.3 lda (ZPPtr1),y + cmp (ZPStrPtr),y + bne .4 + + iny + cmp #C.SPACE + bne .3 + + jsr CS.RUN.CONF.JMP + bcc .1 + + bra .97 + +.4 inx + inx + + ldy #0 + +.5 iny + lda (ZPPtr1),y + cmp #C.SPACE + bne .5 + + tya + sec + adc ZPPtr1 + sta ZPPtr1 + bcc .6 + inc ZPPtr1+1 + +.6 lda (ZPPtr1) + bne .2 + +.97 lda #E.SYN + +.98 pha + jsr .8 + pla + sec +.99 rts + +.8 lda hFile + >SYSCALL FClose + rts +*-------------------------------------- +CS.RUN.CONF.JMP tya + clc + adc ZPStrPtr + sta ZPPtr1 + tay + lda #0 + adc ZPStrPtr+1 + sta ZPPtr1+1 + + jmp (J.KEYWORDS,x) + +CS.RUN.CONF.SERVERNAME + >SYSCALL StrDup + bcs .9 + + >STYA ZPSrvNamePtr + stx hSrvName + +.9 rts +CS.RUN.CONF.LISTEN + >SYSCALL atoi + bcs .9 + + >STYA SA.LOCAL+S.SOCKADDR.PORT + +.9 rts +CS.RUN.CONF.DOCUMENTROOT + >PUSHYA + >PUSHWI 0 Allocate + >SYSCALL RealPath + bcs .9 + + >STYA ZPRootDirPtr + stx hRootdir + +.9 rts +CS.RUN.CONF.ADDTYPE + clc + rts +*-------------------------------------- CS.RUN.SERVER lda hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.accept bcs .8 @@ -216,6 +331,7 @@ CS.RUN.SERVER lda hSrvSocket CS.RUN.CLIENT .1 >SLEEP + lda hClntSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcc .2 @@ -223,21 +339,43 @@ CS.RUN.CLIENT beq .1 bra .8 -.2 jsr CS.RUN.MSG.INIT +.2 sta hRequest + >SYSCALL GetMemPtr + >STYA ZPRequestPtr + + ldy #S.IP.TOTAL.LENGTH+1 + lda (ZPRequestPtr),y + sec + sbc #S.TCP-S.IP + eor #$ff + sta ZPnRequestLen + + dey + + lda (ZPRequestPtr),y + sbc /S.TCP-S.IP + eor #$ff + sta ZPnRequestLen+1 + + lda ZPRequestPtr + clc + adc #S.TCP + sta ZPRequestPtr + bcc .3 + + inc ZPRequestPtr+1 -.3 jsr CS.RUN.MSG.GetStr +.3 jsr CS.RUN.REQUEST.GetStr bcs .7 - >PUSHYA - >PUSHW ZPStrPtr - ldy #S.PS.hStdOut - lda (pPS),y - - >SYSCALL fwrite + >LDYA ZPStrPtr + >SYSCALL puts bra .3 - lda hMsg - >SYSCALL FreeMem +* jsr CS.RUN.REPLY.INIT + +* lda hReply +* >SYSCALL FreeMem .7 >PUSHWI HTTP.200OK.len >PUSHW L.HTTP.200OK @@ -250,61 +388,31 @@ CS.RUN.CLIENT clc rts *-------------------------------------- -CS.RUN.MSG.INIT sta hMsg - >SYSCALL GetMemptr - >STYA ZPMsgPtr - pha - tya -* clc - adc #S.TCP - sta ZPMsgDataPtr - - pla - adc /S.TCP - sta ZPMsgDataPtr+1 - - ldy #S.IP.TOTAL.LENGTH+1 - lda (ZPMsgPtr),y - sec - sbc #S.IP - sta ZPMsgDataLen - eor #$ff - sta ZPMsgDataCnt - - dey - lda (ZPMsgPtr),y - sbc /S.IP - sta ZPMsgDataLen+1 - eor #$ff - sta ZPMsgDataCnt+1 - - rts -*-------------------------------------- -CS.RUN.MSG.GetStr +CS.RUN.REQUEST.GetStr ldy #0 -.1 inc ZPMsgDataCnt +.1 inc ZPnRequestLen bne .2 - inc ZPMsgDataCnt+1 + inc ZPnRequestLen+1 beq .9 -.2 lda (ZPMsgDataPtr) - inc ZPMsgDataPtr +.2 lda (ZPRequestPtr) + inc ZPRequestPtr bne .21 - inc ZPMsgDataPtr+1 + inc ZPRequestPtr+1 .21 cmp #C.CR bne .4 - inc ZPMsgDataCnt + inc ZPnRequestLen bne .3 - inc ZPMsgDataCnt+1 + inc ZPnRequestLen+1 beq .9 -.3 lda (ZPMsgDataPtr) - inc ZPMsgDataPtr +.3 lda (ZPRequestPtr) + inc ZPRequestPtr bne .31 - inc ZPMsgDataPtr+1 + inc ZPRequestPtr+1 .31 eor #C.LF bne .9 @@ -320,6 +428,10 @@ CS.RUN.MSG.GetStr .9 sec rts *-------------------------------------- +CS.RUN.REPLY.INIT + + rts +*-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? lda TimeOut @@ -330,11 +442,18 @@ CS.DOEVENT lda (pEvent) rts *-------------------------------------- CS.QUIT lda hSrvSocket - beq .3 + beq .1 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown -.3 lda hLIBTCPIP +.1 lda hStr + beq .2 + + >SYSCALL FreeMem + + +.2 + lda hLIBTCPIP beq .8 >SYSCALL UnloadLib @@ -346,15 +465,24 @@ CS.END *-------------------------------------- hLIBTCPIP .BS 1 LIBTCPIP .AZ "libtcpip" +ETCHTTPDCONF .AZ "${BOOT}etc/httpd.conf" +*-------------------------------------- +KEYWORDS .AS "ServerName " + .AS "Listen " + .AS "DocumentRoot " + .AS "AddType " + .DA #0 +*-------------------------------------- MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing..." MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly." +MSG.INITCONF .AZ "HTTPD:Reading %s file...\r\n" MSG.INITOK .AZ "HTTPD:Listening on port %D, root dir: %s.\r\n" MSG.SKTERR .AZ "HTTPD:Listen Error." MSG.INCOMING .AZ "HTTPD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n" *-------------------------------------- HTTP.200OK .AS "HTTP/1.1 200 OK" .DA #C.CR,#C.LF - .AS "Server: A2osX-HTTPD 0.93" + .AS "Server: A2osX-HTTPD 0.94" .DA #C.CR,#C.LF .AS "Content-Type: text/html" .DA #C.CR,#C.LF @@ -363,7 +491,7 @@ HTTP.200OK .AS "HTTP/1.1 200 OK" .AS "Connection: Close" .DA #C.CR,#C.LF .DA #C.CR,#C.LF - .AS "Hello From A2osX-HTTPD 0.93 !" + .AS "Hello From A2osX-HTTPD 0.94 !" .DA #C.CR,#C.LF HTTP.200OK.len .EQ *-HTTP.200OK *-------------------------------------- @@ -379,5 +507,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/SBIN/HTTPD.S +SAVE usr/src/sbin/httpd.s ASM