From d7f775609d8638bd39699e1ff96d77e0a6f20f5b Mon Sep 17 00:00:00 2001 From: Quinn Dunki Date: Sun, 21 Sep 2014 14:16:12 -0700 Subject: [PATCH] - Fixed a bug whereby string arguments couldn't be first in AppleSoft API calls - Added &TITLE and &SETACT to AppleSoft API --- applesoft.s | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- guidemo.dsk | Bin 143360 -> 143360 bytes views.s | 8 ++++---- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/applesoft.s b/applesoft.s index a61131a..206f0c6 100644 --- a/applesoft.s +++ b/applesoft.s @@ -221,7 +221,9 @@ WGAmpersandIntArgument: ; OUT Y : The argument (MSB) ; Side effects: Clobbers all registers WGAmpersandAddrArgument: + jsr CHRGOT jsr LINGET + ldx LINNUML ldy LINNUMH rts @@ -421,7 +423,7 @@ WGAmpersand_WINDOW: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGAmpersand_CHKBOX ; Create a checkbox -; &CHKBOX(id,x,y) +; &CHKBOX(id,x,y,"title") WGAmpersand_CHKBOX: jsr WGAmpersandBeginArguments @@ -459,7 +461,7 @@ WGAmpersand_CHKBOX: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGAmpersand_BUTTN ; Create a button -; &BUTTN(id,x,y,width,"title") +; &BUTTN(id,x,y,width,lineNum,"title") WGAmpersand_BUTTN: jsr WGAmpersandBeginArguments @@ -574,6 +576,42 @@ WGAmpersand_ACTGosub: jmp WGGosub ; No coming back from an Applesoft GOSUB! +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; WGAmpersand_SETACT +; Sets the callback for the selected view +; &SETACT(lineNum) +WGAmpersand_SETACT: + jsr WGAmpersandBeginArguments + + jsr WGAmpersandAddrArgument + stx PARAM0 + sty PARAM1 + + jsr WGAmpersandEndArguments + + jsr WGViewSetAction + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; WGAmpersand_TITLE +; Sets the title for the selected view +; &TITLE("title") +WGAmpersand_TITLE: + jsr WGAmpersandBeginArguments + + jsr WGAmpersandStrArgument + stx PARAM0 + sty PARAM1 + + jsr WGAmpersandEndArguments + + jsr WGViewSetTitle + jsr WGPaintView + + rts + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGAmpersand_GOSUB ; A custom gosub, because we can. Only for testing at the moment @@ -712,6 +750,12 @@ WGAmpersandCommandTable: .byte "ACT",0,0,0,0,0,0,0,0,0,0,0 .addr WGAmpersand_ACT +.byte "SETACT",0,0,0,0,0,0,0,0 +.addr WGAmpersand_SETACT + +.byte "TITLE",0,0,0,0,0,0,0,0,0 +.addr WGAmpersand_TITLE + .byte TOKEN_GOSUB,0,0,0,0,0,0,0,0,0,0,0,0,0 ; For internal testing of the procedural gosub .addr WGAmpersand_GOSUB diff --git a/guidemo.dsk b/guidemo.dsk index 1d0359539ecf8a1878acc71756f11fdb9d7f641f..af774fffa0c3173a86c630e099419f2e457d4633 100644 GIT binary patch delta 5992 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 IdMr==4_819E&u=k delta 3111 zcmb_eeQZpaKDiR`9*VSSTd#$QTuxi=4 z@58Za%OBJ3lYP%U=iKx0yXSt03l4F?ku0=YtxHSOF6+N+?i!lfSYmNiP@m9_O(hSz zaA{#B-d%VayDbl4OHl=F#}5`=aJR0eHm!ZwMNywnTM04!dC~nn8_!BMB_P?EzHLes zkUI&x?NCd?o;~iQH7sD>Y~mo&l)~=v zlz?h){RT;8VNc%?^g&s5LG%a`*Tl+5cOT(hrc{et;}$?5M^I4m2BoswU@mJXs3n+= zeup1niZ~L%k)%5s)Ey1#j-UfagQg=G5=Vo}j*OKEGb^^6kwe(3lbLB`uCp2O@4=~H zJlF=yWs0?Ubd;x3LjrP&(IEu7%Zi6|1X2U2viPz^wOzKVrD8*B2sO~4nmB~O8B8E@ zajrBqj8vbDxYSEXZsnL>PAtC&w0f^(1CeA`w)%iqNYn~|FJ{0|n-(^SNFWOmvqi%w zW{s0Yt+@^b!%ZjdY`XoVI_htBp_|<(!#NxEYSzjp%<8)%6-KbEFT=9Vt%%vwN+wy?D0!jc8f!oG0)omC z!SDh%L7lUyMNSdyrNN;1MV_q)8?&)7I~#Mb6)|VFGNC9pOEz*CY?kb#^Lix*^!WAT z8`c>009;)~*U;rRj(gpNpL!7jgJ2{_O2qe_*aDkd?n1zo4@%LGa9@%6}WZ6^ZKx|tX8W22k!`_Y5T!?;N< zjvhD3;juoU8-3tSJ~fpH1)zY%V8pX86fj4-;0T%RL&t8wF*DnXlJ|hL7fmI45$Hml z$7(KbQF*BKHQ8E+%|n#o{#!fS567VRu~GZlK@9U>ApZU_b+ZQ%cyy?!l(RJb(N zzmmei$4;#-){4cj^T*kKeBo538S|&7)|;efe4R=DZ2Y0M2hfb3d_by9bfHF1$2w`9 zLUmMS3NEx1HwbBO%YloesYCk5utT!F0}ib(?u* zC}P{tGgYW}Dm=GTIMq=rA5AK~uo8TYLo$bI^mzl~Y7UGv(i zcX7R2$pP~@x{WL1l?*^@mFz&mRRFK8AIgUdl-1G$^1llb#{-nsrtRzHTjxOZD{ z^Y3;!Jgq@!ToNa)wBlc!DZ$@6Q&Xr=%vT)qRFm>6+;nM}>4SJ$wPzx{6v^BNT40K! zg^Rbq!YdDA{)*oP#g~9BN$&5n9IpQTLTOTu)cF6n8FWcG36b`(&e6_DC-l#Zbw>YB z-&p%-N3?ycJ<=ZS7`@vk7{bnu&gd_9bUoh{?Ywon?mg|RuiL*b|J%1$Yy0=^-@EtM a`J(@EWZAcWkiPmheU)Bnn|5EN%l`|^MiasS diff --git a/views.s b/views.s index d33f84a..751be97 100644 --- a/views.s +++ b/views.s @@ -834,9 +834,9 @@ WGViewSetTitle: LDY_ACTIVEVIEW lda PARAM0 - sta WG_VIEWRECORDS+13,y - lda PARAM1 sta WG_VIEWRECORDS+12,y + lda PARAM1 + sta WG_VIEWRECORDS+13,y WGViewSetTitle_done: RESTORE_AXY @@ -854,9 +854,9 @@ WGViewSetAction: LDY_ACTIVEVIEW lda PARAM0 - sta WG_VIEWRECORDS+11,y - lda PARAM1 sta WG_VIEWRECORDS+10,y + lda PARAM1 + sta WG_VIEWRECORDS+11,y WGViewSetAction_done: RESTORE_AY