diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index e18d45ef..e7ef44bf 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 c7a5ee1e..f9699f05 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 05b9f7d5..9a52715d 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -137,13 +137,13 @@ CS.RUN.LookupName jsr CS.RUN.GOATLK .99 bcs .9 - >LDA.G P.LookupName+$17 - beq .8 - >LDYA L.MSG.DUMP0 >SYSCALL PutS bcs .9 + >LDA.G P.LookupName+$17 + beq .8 + .1 >PUSHW L.MSG.DUMP ldy #0 diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index 03394e93..b4c9bf8b 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -27,7 +27,7 @@ hSocket .BS 1 hReqBuf .BS 1 ZPReqBufPtr .BS 2 ZPReqBufLen .BS 2 -bResponse .BS 1 +bHeader .BS 1 TimeOut .BS 1 bURI .BS 1 @@ -75,6 +75,8 @@ L.MSG.SKTKO .DA MSG.SKTKO L.MSG.CONNECTED .DA MSG.CONNECTED L.MSG.SKTERR .DA MSG.SKTERR L.MSG.IOERR .DA MSG.IOERR +L.MSG.FileLength .DA MSG.FileLength +L.MSG.Progress .DA MSG.Progress L.HTTP.GET .DA HTTP.GET .DA 0 *-------------------------------------- @@ -470,49 +472,25 @@ CS.RUN.RESPONSE jsr Init.TimeOut bcc .2 cmp #E.NODATA - bne .8 + bne .80 lda TimeOut bne .1 - bit bResponse + bit bHeader bmi .1 - bra .8 +.80 jmp .8 .2 jsr CS.RUN.GETRESPONSE - bit bResponse + bit bHeader bmi .6 -.3 ldx #0 - -.4 dex - - lda (ZPRespBufPtr) - inc ZPRespBufPtr - bne .5 - - inc ZPRespBufPtr+1 - -.5 cmp #C.LF - bne .4 - - txa -* sec - adc ZPRespBufLen - sta ZPRespBufLen - - lda ZPRespBufLen+1 - adc #$ff - sta ZPRespBufLen+1 - - inx - inx - bne .3 + jsr CS.RUN.GETHEADER sec - ror bResponse + ror bHeader .6 >PUSHW ZPRespBufLen >PUSHW ZPRespBufPtr @@ -530,9 +508,32 @@ CS.RUN.RESPONSE jsr Init.TimeOut stz hRespBuf >SYSCALL FreeMem + lda ZPRespBufLen + clc + adc Received + sta Received + + lda ZPRespBufLen+1 + adc Received+1 + sta Received+1 + + bcc .70 + + inc Received+2 + bne .70 + + inc Received+3 + +.70 >PUSHW L.MSG.Progress + >PUSHL Received + >PUSHL Length + >PUSHBI 8 + + >SYSCALL PrintF + jmp CS.RUN.RESPONSE -.8 bit bResponse +.8 bit bHeader bpl .99 clc @@ -569,6 +570,76 @@ CS.RUN.GETRESPONSE .8 rts *-------------------------------------- +CS.RUN.GETHEADER +.1 ldy #$ff + +.2 iny + + lda (ZPRespBufPtr),y + eor #C.CR + bne .2 + + sta (ZPRespBufPtr),y + + iny skip CR + iny skip LF + + sty ArgIndex + + >LDYA ZPRespBufPtr + >STYA ZPPtr + + lda ZPRespBufLen + sec + sbc ArgIndex + sta ZPRespBufLen + bcs .3 + + dec ZPRespBufLen+1 + +.3 lda ArgIndex + tay + clc + adc ZPRespBufPtr + sta ZPRespBufPtr + bcc .4 + + inc ZPRespBufPtr+1 + +.4 dey + dey + beq .8 + + ldy #$ff + +.5 iny + lda (ZPPtr),y + cmp HEAD.ContentLength,y + bne .1 + + cmp #C.SPACE + bne .5 + + tya + sec skip SPACE + adc ZPPtr + tay + lda ZPPtr+1 + adc #0 + + >SYSCALL AToL + >PULLL Length + + >PUSHW L.MSG.FileLength + >PUSHL Length + >PUSHBI 4 + >SYSCALL PrintF + jmp .1 + +.8 clc + +.9 rts +*-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? @@ -630,6 +701,8 @@ MSG.SKTKO .AZ "Failed to Open Socket." MSG.CONNECTED .AZ "Connected." MSG.SKTERR .AZ "Socket Error : $%h\r\n" MSG.IOERR .AZ "I/O Error : $%h\r\n" +MSG.FileLength .AZ "File Length : %u Bytes\r\n" +MSG.Progress .AZ "Received %u/%u\r\n" *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 @@ -645,6 +718,8 @@ URI.ToEncode .DA #C.LF,#C.CR,#C.SPACE,#'"' .AS "%-.\^_`{|}~" URI.ToEncode.Cnt .EQ *-URI.ToEncode *-------------------------------------- +HEAD.ContentLength .AZ "Content-Length: " +*-------------------------------------- HTTP.GET .AS "GET /%s HTTP/1.1" .DA #C.CR,#C.LF .AS "User-Agent: A2osX.HTTPGET" @@ -655,10 +730,13 @@ HTTP.GET .AS "GET /%s HTTP/1.1" .DA #C.CR,#C.LF .DA #C.CR,#C.LF .DA #0 +*-------------------------------------- +Received .BS 4 +Length .BS 4 *-------------------------------------- .DUMMY .OR 0 -DS.START +DS.START DS.END .ED *-------------------------------------- MAN diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index a26b6ab2..410f37b9 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -1,7 +1,8 @@ NEW AUTO 3,1 *-------------------------------------- -IO.D2.SeekTime .EQ 85 +IO.D2.SeekTimeF .EQ 90 Track Formatter +IO.D2.SeekTimeB .EQ 60 Boot Block *-------------------------------------- IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0On .EQ $C081 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index fd129c46..84fa92b5 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -50,13 +50,12 @@ S.RECT.Y2 .EQ 6 S.RECT .EQ 8 *-------------------------------------- S.OBJ.T .EQ 0 -S.OBJ.T.SCREEN .EQ 0 -S.OBJ.T.WND .EQ 2 -S.OBJ.T.MENUBAR .EQ 4 -S.OBJ.T.MENU .EQ 6 -S.OBJ.T.MITEM .EQ 8 -S.OBJ.T.BUT .EQ 10 -S.OBJ.T.TEXT .EQ 12 +S.OBJ.T.WND .EQ 0 +S.OBJ.T.MENUBAR .EQ 2 +S.OBJ.T.MENU .EQ 4 +S.OBJ.T.MITEM .EQ 6 +S.OBJ.T.BUT .EQ 8 +S.OBJ.T.TEXT .EQ 10 S.OBJ.F .EQ 1 S.OBJ.S .EQ 2 @@ -150,4 +149,4 @@ S.TEXT.TEXT .EQ S.OBJ+8 * ... *-------------------------------------- MAN -SAVE inc/libgui.i \ No newline at end of file +SAVE inc/libgui.i diff --git a/LIB/LIBBLKDEV.S.BB.txt b/LIB/LIBBLKDEV.S.BB.txt index f6eeb8f5..daf44c7c 100644 --- a/LIB/LIBBLKDEV.S.BB.txt +++ b/LIB/LIBBLKDEV.S.BB.txt @@ -349,6 +349,8 @@ BB.Seek lda BB.HdrTrk get track we're on tax lda IO.D2.Ph0On,y + nop + nop lda IO.D2.Ph0On,x jsr BB.WaitSeekTime @@ -365,7 +367,7 @@ BB.AllPhasesOff ldx BB.Slotn0 bit IO.D2.Ph3Off,x rts *-------------------------------------- -BB.WaitSeekTime lda #IO.D2.SeekTime +BB.WaitSeekTime lda #IO.D2.SeekTimeB .HS 2C BIT ABS BB.Wait25600usec lda #0 diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index a1d962f4..f9e2c1f6 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -42,10 +42,10 @@ D2Recalibrate >PULLB DrvSlt tax lda IO.D2.Ph0On,x - lda #IO.D2.SeekTime + lda #IO.D2.SeekTimeF jsr D2.Wait100usecA - lda #IO.D2.SeekTime + lda #IO.D2.SeekTimeF jsr D2.Wait100usecA tya @@ -74,8 +74,11 @@ D2MoveHead >PULLB MoveTo beq .7 bit IO.D2.Ph0Off,x + nop + nop ldx IO.D2.Ph0Off,y - + nop + nop bcs .2 * Current < Target, must move in @@ -115,17 +118,26 @@ D2MoveHead >PULLB MoveTo tax lda IO.D2.Ph0On,y + nop + nop lda IO.D2.Ph0On,x - - lda #IO.D2.SeekTime + nop + nop + lda #IO.D2.SeekTimeF jsr D2.Wait100usecA bra .1 .7 jsr D2.Wait25600usec lda IO.D2.Ph0Off,y + nop + nop lda IO.D2.Ph0Off,x - + nop + nop + + jsr D2.Wait25600usec + clc .9 rts diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt index ad5efc87..80466826 100644 --- a/LIB/LIBGUI.S.BUT.txt +++ b/LIB/LIBGUI.S.BUT.txt @@ -27,10 +27,13 @@ BUT.New >STYA ZPPtr1 clc rts *-------------------------------------- -BUT.Draw +BUT.Paint *-------------------------------------- +BUT.Close + clc + rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.but diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 24ffe2b8..4b6d53aa 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -13,7 +13,20 @@ MENU.New >STYA ZPPtr1 clc rts *-------------------------------------- -MENU.SysMenu +MENU.Paint +MENU.Close +*-------------------------------------- +MENUBAR.New +MENUBAR.Paint +MENUBAR.Close + +*-------------------------------------- +MENUITEM.New +MENUITEM.Paint +MENUITEM.Close + + clc + rts *-------------------------------------- MENU.MenuEditor .AZ "File" .DA #02 ID diff --git a/LIB/LIBGUI.S.TEXT.txt b/LIB/LIBGUI.S.TEXT.txt new file mode 100644 index 00000000..10ef0209 --- /dev/null +++ b/LIB/LIBGUI.S.TEXT.txt @@ -0,0 +1,14 @@ +NEW + AUTO 3,1 +*-------------------------------------- +TEXT.New +TEXT.Paint + +TEXT.Close + clc + rts +*-------------------------------------- +MAN +SAVE usr/src/lib/libgui.s.text +LOAD usr/src/lib/libgui.s +ASM diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 1b0d07a8..cc4d7495 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -120,6 +120,37 @@ CS.START cld J.Cmds .DA DrawLine .DA DrawText2 *-------------------------------------- +J.OBJ .DA J.WND + .DA J.MENUBAR + .DA J.MENU + .DA J.MENUITEM + .DA J.BUT + .DA J.TEXT +*-------------------------------------- +J.WND .DA WND.New + .DA WND.Paint + .DA WND.Close +*-------------------------------------- +J.MENUBAR .DA MENUBAR.New + .DA MENUBAR.Paint + .DA MENUBAR.Close +*-------------------------------------- +J.MENU .DA MENU.New + .DA MENU.Paint + .DA MENU.Close +*-------------------------------------- +J.MENUITEM .DA MENUITEM.New + .DA MENUITEM.Paint + .DA MENUITEM.Close +*-------------------------------------- +J.BUT .DA BUT.New + .DA BUT.Paint + .DA BUT.Close +*-------------------------------------- +J.TEXT .DA TEXT.New + .DA TEXT.Paint + .DA TEXT.Close +*-------------------------------------- L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.SYSX7 .DA SYSX7 @@ -289,6 +320,7 @@ GetScreenGC >LDYA L.WND.Screen .INB usr/src/lib/libgui.s.menu .INB usr/src/lib/libgui.s.mou .INB usr/src/lib/libgui.s.pat + .INB usr/src/lib/libgui.s.text .INB usr/src/lib/libgui.s.wnd *-------------------------------------- CS.END @@ -335,7 +367,7 @@ MouseClamp .BS 8 CB.Cache .BS S.CB OBJ.Cache .BS S.OBJ *-------------------------------------- -WND.Screen .DA #S.OBJ.T.SCREEN +WND.Screen .DA #S.OBJ.T.WND .BS S.WND-1 *-------------------------------------- WND.Screen.Childs diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index dcbba68d..2f13561f 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -831,17 +831,26 @@ SKT.Recv clc ldy #S.SOCKET.T lda (ZPPtrSKT),y cmp #S.SOCKET.T.SEQPKT - bcc .10 + bcc .10 RAW,DGRAM + bne .99 STREAM + jsr SKT.GetFromQueue SEQPKT + bcc .1 + jsr SKT.CheckTCP bcs .91 + lda #E.NODATA + plp + sec + rts + .10 jsr SKT.GetFromQueue - bcs .90 - - plp if CS, RecvFrom - bcc .9 Exit with CC and A=hFrame + bcs .91 + +.1 plp if CS, RecvFrom + bcc .9 CC, Recv : Exit with CC and A=hFrame pha >SYSCALL2 GetMemPtr @@ -891,11 +900,6 @@ SKT.Recv clc .91 plp sec rts - -.90 lda #E.NODATA - plp - sec - rts */-------------------------------------- * # Send (RAW,DGRAM,SEQPKT) * # SendTo (RAW,DGRAM,SEQPKT) diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 950cf945..ff91ef65 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -192,8 +192,9 @@ TCP.IN.JMP.ESTBLSH .5 lda (ZPFrameInPtr),y eor SKT.Cache+S.SOCKET.TCP.INSEQNUM,x - bne .90 Missed a frame..... - +* bne .90 Missed a frame..... + bne .8 + dey dex bpl .5 @@ -238,18 +239,13 @@ TCP.IN.JMP.ESTBLSH .8 ldy #S.SOCKET.TCP.O lda (ZPPtrSKT),y - beq .80 - - jmp TCP.OUT.SendOptA + bne .91 .80 clc - rts +.99 rts .90 lda #S.TCP.OPTIONS.ACK - jsr TCP.OUT.SendOptA - -.9 sec -.99 rts +.91 jmp TCP.OUT.SendOptA *-------------------------------------- TCP.IN.JMP.LASTACK ldy #S.TCP.OPTIONS only accept ACK packet diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 0ac03cb5..b2d0ce1f 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -1,7 +1,7 @@ NEW AUTO 3,1 *-------------------------------------- -XRWDBG .EQ 1 +XRWDBG .EQ 0 *-------------------------------------- XRW.START cld $D8 to flag language card bank 1 (main) @@ -777,7 +777,11 @@ XRW.Seek ldx XRW.UnitIndex beq .7 bit IO.D2.Ph0Off,x + nop + nop ldx IO.D2.Ph0Off,y + nop + nop bcs .2 @@ -818,14 +822,24 @@ XRW.Seek ldx XRW.UnitIndex tax lda IO.D2.Ph0On,y + nop + nop lda IO.D2.Ph0On,x + nop + nop jsr XRW.WaitSeekTime bra .1 .7 jsr XRW.Wait25600usec + lda IO.D2.Ph0Off,y + nop + nop lda IO.D2.Ph0Off,x + nop + nop + rts *-------------------------------------- XRW.Trk2Qtrk asl x2 diff --git a/SYS/KERNEL.S.FS.txt b/SYS/KERNEL.S.FS.txt index 938cf8cd..d206731a 100644 --- a/SYS/KERNEL.S.FS.txt +++ b/SYS/KERNEL.S.FS.txt @@ -81,7 +81,9 @@ IO.WRITE.REG ldx #MLIWRITE bcs .9 >LDYA K.MLI.PARAMS+6 -.9 rts +.9 +IO.WRITE.REG.RTS + rts *-------------------------------------- IO.CLOSE.REG IO.CLOSE.DIR ldy #S.FD.REG.REF @@ -89,6 +91,7 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF beq .1 sta K.MLI.PARAMS+1 >MLICALL MLICLOSE + bcs IO.WRITE.REG.RTS .1 ldy #S.FD.REG.IOBUF lda (pFD),y diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 457d2420..3cd785d3 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -123,8 +123,10 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # .1 jmp $ffff SELF MODIFIED .8 lda (pFD) #S.FD.T - bne .80 - ldy #S.FD.REG.REF + cmp #S.FD.T.CDEV + bcs .80 + + ldy #S.FD.REG.REF REG or DIR lda (pFD),y sta K.MLI.PARAMS+1