From 22b77e28d9dff4601d8ad937abc19ccf0747c1d0 Mon Sep 17 00:00:00 2001 From: Michaelangel007 Date: Sat, 28 Oct 2017 00:02:10 -0700 Subject: [PATCH] Ver 28 - G = goto xy, SPC = mark begin/end --- bin/dhgr.byte | Bin 1000 -> 1570 bytes hgrbyte.dsk | Bin 143360 -> 143360 bytes screenshots/dhgrbyte.png | Bin 13853 -> 65548 bytes src/dhgr.byte.s | 741 ++++++++++++++++++++++++++++++--------- 4 files changed, 585 insertions(+), 156 deletions(-) diff --git a/bin/dhgr.byte b/bin/dhgr.byte index 50638db9763bd010b68369cbe65d07fccbdddbda..ec49d83aa485842868f083410f6d8a968fa8d97d 100644 GIT binary patch delta 1280 zcmYjPT}&KR6kdj1_HX8t8lY=i^jgc$5HQrXc15ABMhojy5el@W#eJc|>WfAnEXLi& z9olSm=n`Id(M%?thS|9705!)E4~2{&TENyCo@flsYAjM@XT5i~5539U`+et} z``vHOy(?ykE?0JY|W_uO&NHs(%%_DFODPr$=gh_nKmC$xgbT{5)eO7D{b&cbMz-nRW*7YXZth$Wv9h!5G)bcpn)`z0^#HCP#$QfLC#oX8Sfv=>rgD{tWn4J}7(|WIw;@WB zM8FCPjShlzE{o+2WX_t{c-n+9RTN1Q6Jx~03^6grrR|cpR|F0Vl#nxuh|2k_3ht96 zig!qHf}l7?$~IC|ii_k7n~&dWShP%D25fBQg0|)!n5KgcOix<7V?xlya^qikmX@HdRA)GDDwJm0r9jw;{;%pb_TeQaI9Qa*YI{`GQFutQ3su z!#>l-SvMAoCMH5uZ-HAdr~;@0rQ)Q7#6yiewTJra{RjKsbfCAuiMHNU-2QqVb0_9v zHs{aga7tj*>SJnkvs&G%R(Gg1LYIm|zFkDX|I~(@7}-Fp!UwAGzKU9yp}qMPF2j8T z8E6NyFgkJLhPX&(!@^h=li48NAy|wPJU{j8tqH>q-(SBrJ~kQ^_q@D!-~Lw)I7Kps zKFMcKWySEcgRvA_ZFbsxq}TJ&$4#zxxEBt+xVx;Yyy~@zqo|T~e^veZOAVc;YwE8R tl(9$mx%RY`)Rn!#lJEZS_wN3-w7Bs6u4i}tI5{;nANwVF>vrnz{{g?86oCK$ delta 650 zcmYLGT}V?=9M^s6?m23~rZbUFS=(;h$sSir+bC?i4bd`+R(4;^SwYZ4L=QQ^i4Wb{ zxGxn5mrEBq_K>i*#o$CfxFIp=rNk)h1AX(QnR9cU5>4C!SQ1zMei&>%Jhz_MoW2m-;TbW3nmR44Sb7Zq?}yEHWY;T zBT56kik< zi0-P2b0+O>(xBZ_A!-L0qCTiy*~5AXt#GxZlCos9jr+lk-F%^lcWH>$s25)%KX@wU z3tO1IB}RLtkVp^mP~rg+Ze^7=mMEz(Letxr&`AZo${RV3n^haL4&Va%dDF}07%bwq9^vVq7Zq9HX9ig~-IdL~azopzuI^r8Llur%3|pxj5f8erb! zo<}YA*9U9Lf44TtTu9{W1l!%<^B8jT(nH~7cW?BXr{|5sA$W)UgTAXlA?#)M=a28-)>glMag+Ilh2{4vON$@2 Gw*LTJaryxO diff --git a/hgrbyte.dsk b/hgrbyte.dsk index 9e57e0c5c6d4161df7e909fb3e81d31eec86ebf1..d2ebc49e7fba33d8579e34af114d90af6d67c116 100644 GIT binary patch delta 1362 zcmYk4e@t6d6vtm5E&cf}Yynocp;vwkN{V5!DWb69)Iohy1_L(Ou!&&;`j1Bc*f6$> zJXo4O?9zYuNAvQegjek-uxTWcJ+cgF8Kg>dzCH@P?8bMCq4 z-upSnxukP0>4ND=s+5t8q;Bm_4V9Hl)n`*w4)q(QKb>7njSL!&uR8D-OfO7n6c(R? zKW8L?1v4F&B59EL;x_y#gLjxf1l8hK9$FLygvU&h2_Hh@g@pEPVr?R36aQp_SaL3A zQAg7PVI$x3@TvdJlxq7J_G zG;>x7N7f_-V!*LB0G?i3IP$kc>f@&oJoXPR<}8pXehTp+WcS7V?d=|8yJvU1t4hbk zf;(M$nv3~Fv2+>J`pD3qRJd?nUGfeC`wTV+)UstG9>T@0bZ@d+% zEytGG^E-exaEfmuRN;(Uwq=#}q2{Ab5#7bkvg!0L`A8P*OEK&<|II=;&}yJu-U+w+(ej z8{HMCL!s*69Ih}(TDbPxdeo_~?-?%Fp{45Jk6_Aj@G9(f#XFbTX1y~V8;$$~;wKTG zA4bw%Ji<8NhOSWgzpRmcu__gG$61y&uzwlYG$Y$$WIr-`3uAAYEDX2B{exXbT*7#} zW0{!+;i5ZtXHjHb(pQeHqe`erIU`bb$;pl|-tkzu4m@guPvHo4G2WO}mr@WZ*r_{LtvNYr+CqsrliACMzY}B3hUtdT#vJ8>7_s z-(9^jGCUL%_CH^I;NS}{mI!2cKU}xGn@9%B9!8h0HyBOYqiyZ)e^6z6lYRDZc1~{d zzJizYj^TWZ{WI$;&y_cwDJ;8^oNGCDz_uTnwiSAz(gp*kGOd;reG!zDe()0P*e$9k zEnTPzLgRSf*eIl%81E+=`3^X~F delta 727 zcmYLHUr19?9KPpHbi3!88ct_2I%GHpGZy(^4b!36Huf;f{;-AJ7i&EQJw$&VyuxNe z-5Tv-6$qDGH#+vL*PsP-MpQXqz4Xs-*-6Q@Av!8k!Q{F ztT}Bpf!0iw>2Aq>6SrjI&ed_;VQzu5gzHd6W<==veJs{)LqQQ$yi-bvd~l#8)*5SX zri$9e@WAe=NR&$iU4u#&Nx8znk?IeF>eNseIEC6Pr_5H10L9Wr_w0^0Hk-@c?dfX1 z=ymzsY%l)$xiCLB`=f!pA0MCoI5Rc*d2J)<1-4E*>J)XuX%YlsST&E`7EuN+4dzy* z2Z!MOI;e4D2c}nwnV9<{Im;~W?1==we4GlB6RhyK-=7XiRx)1>kRT&ud z1?WPrV3b}-XGatK)#B8{2&idNIHK$$3Qv?Gq9L`-7j+-m8?%|FfTdVVoQ}O0!80!a z{H;5*-|aqAaelCTOW(+PX&WWZGFxvxF^4OWSHxdvQ@VkkK&(=PzcM<%OP@39pj0;k zw%&TALOjZ(JVWdPMY@2Z0$LV=n*z2n%Mqpoj_tzp(nl-8AYVrrzM5lXmeqEt-U`ZsH0N*BRnEPm~_QeoBX4aDw5X(?l=$LA)SG{IVSSV3ap48oH4U zC6Y%A?P4d4=i^(*DxkA4DHrT^$Ao+4`%^KujxD~ix1x_u9igu*VL3PnlcR-`KxJ`j aM)-Bw144Wz1V%tI{jDh30SYgAz^A`Y85>;y diff --git a/screenshots/dhgrbyte.png b/screenshots/dhgrbyte.png index e54cd517276779bfb82de9dd63421ee5cae7f196..20c6299fb3d5685dd4205efd430192280904f524 100644 GIT binary patch literal 65548 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 z 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�Tt}Silb$(IaD0g2m3~$PJeXM`n9^R99 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 x9$8TckAQsqBt_*!s)P*u{y+TK5@i4Y literal 13853 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 diff --git a/src/dhgr.byte.s b/src/dhgr.byte.s index 4bb5eb8..cf9fa92 100644 --- a/src/dhgr.byte.s +++ b/src/dhgr.byte.s @@ -6,7 +6,7 @@ CONFIG_BIOS = 0 ; 1=Use slow ROM for text, 0=Use native code for COUT, HOME ; DHGR Byte Inspector ; Michael Pohoreski ; https://github.com/Michaelangel007/apple2_hgrbyte/ -; Version 27 +; Version 28 ; ; TL:DR; ; IJKL to move @@ -16,7 +16,7 @@ CONFIG_BIOS = 0 ; 1=Use slow ROM for text, 0=Use native code for COUT, HOME ; Keys: ; ; ESC Quit -; G Toggle fullscreen +; RET Toggle fullscreen ; ; i Move cursor up ; j Move cursor left @@ -28,11 +28,13 @@ CONFIG_BIOS = 0 ; 1=Use slow ROM for text, 0=Use native code for COUT, HOME ; K Move cursor right ; L Move cursor down ; +; G Goto specified X,Y location +; ; ^I Move cursor to col 0 ; ^J Move cursor to col 79 ; ^K Move cursor to row 0 ; ^L Move cursor to row 191 -; RET Center cursor +; ^G Center cursor ; ; 0..9 "Append" hex nibble to cursor byte ; A..F @@ -45,7 +47,10 @@ CONFIG_BIOS = 0 ; 1=Use slow ROM for text, 0=Use native code for COUT, HOME ; ^ Toggle bit 5 ; & Toggle bit 6 ; * Toggle bit 7 (high bit) -; SPC Toggle high bit of byte (bit 7) +; +; SPC Toggle bebin/end sprite region +; M Reset region to none +; ; ( Set byte to $FF (Shift-9) ; ) Clear byte to $00 (Shift-0) ; ` Flip all bits @@ -58,15 +63,15 @@ CONFIG_BIOS = 0 ; 1=Use slow ROM for text, 0=Use native code for COUT, HOME ; [ Rotate byte left ; ] Rotate byte right ; -; - Save cursor byte to temporary -; = Set cursor byte from temporary +; - Save byte at cursor to temporary +; = Load byte at cursor from temporary ; ; TODO: -; ? Help screen -; col/2 -; Z = clear aux mem -; X = swap aux/main mem -; M = mark begin/end -- show width,height,x,y +; ; Save sprite region to $6000 +; ' Load sprite region from $6000 +; ? Help screen +; Z clear aux mem +; X swap aux/main mem ; ; These aren't needed ; S = save @@ -80,11 +85,14 @@ BASL = $28 ; 16-bit pointer to start of TEXT row GBASL = $26 ; 16-bit pointer to start of D/HGR scanline GBASH = $27 +; --- Screen Dimensions --- DO CONFIG_DHGR -WIDTH = 80 ; +SCREEN_W = 80 ; ELSE -WIDTH = 40 ; HGR +SCREEN_W = 40 ; HGR FIN +SCREEN_H = 192 + HPOSN = $F411 ; A=row, Y,X=col update GBASL GBASH TABV = $FB5B ; A=row, ALL STA $25, JMP $FC22 @@ -120,8 +128,10 @@ SW_AUXWROFF = $C004 ; $+0 = Write Main $0200..$BFFF, $+1 = Write Aux $0200..$BFF SW_ALTCHAR0 = $C00E ; Mouse text off KEYBOARD = $C000 ; LDA -KEYSTROBE = $C010 -TXTCLR = $C050 ; Mode Graphics +KEYSTROBE = $C010 ; STA + +SW_TXTCLR = $C050 ; Mode Graphics GR/HGR/DHGR +SW_TXTSET = $C051 ; Mode Text MIXCLR = $C052 ; Full screen MIXSET = $C053 ; Split screen PAGE1 = $C054 @@ -129,6 +139,9 @@ HIRES = $C057 ; Mode HGR SW_DHGR = $C05E ; Mode DHGR SW_SHGR = $C05F ; Mode SHGR +SQUEEKER = $C030 ; Who we kidding, this ain't no SID chip son. +F8_Wait = $FCA8 + cursor_row = $E2 ; used by Applesoft HGR.row tempByte = $F6 ; forward bits for pixel print @@ -138,8 +151,22 @@ cursor_org = $FA ; When cursor is saved cursor_tmp = $FB ; Flashing cursor byte cursor_val = $FC ; Current byte under cursor +; Input fields +; **NOTE:** This must match status! +INPUT_X = 2 +INPUT_Y = 7 + +; Struct/Sprite Fields +SPRITE_X = 0 +SPRITE_Y = 1 +SPRITE_W = 2 +SPRITE_H = 3 + FLAG_FULL = $01 ; == $1 -> $C052 MIXCLR ; ; == $0 -> $C053 MIXSET +FLAG_REGION_1 = 2 ; have a valid region 1 x,y +FLAG_REGION_2 = 4 ; have a valid region 2 x,y +FLAG_REG_EVEN = 8 ; SPACE updates which region next flags = $FD ; temp = $FE ; reverse bits for pixel print @@ -153,48 +180,42 @@ MOV_DST = $0042 ; A4L AUXMOVE = $C311 ; C=0 Aux->Main, C=1 Main->Aux MOVE = $FE2C ; Main<->Main, *MUST* set Y=0 prior! +; ======================================================================== + __MAIN = $900 ORG __MAIN DhgrByte - LDA #27 ; Version - copy HGR1 to aux, HGR2 to HGR1 + LDA #28 ; Version - copy HGR1 to aux, HGR2 to HGR1 JSR Init_Exit ; FEATURE: Set to 00 if you don't want to copy AUX $2000 to MAIN $4000 - - BIT PAGE1 ; Page 1 - BIT TXTCLR ; not text, but graphics - BIT MIXSET ; Split screen text/graphics - BIT HIRES ; HGR, no GR - - DO CONFIG_DHGR - STA SW_DHGR ; $C05E DHGR, not HGR - STA SW_SET80COL ; $C00D 80-col on - FIN - BRA _Center ; Funcs that JMP to GetByte before GotKey() ; Funcs that JMP to PutByte after GotKey() _Screen ; Toggle mixed/full screen LDA flags ; A = %????_???? - AND #FLAG_FULL ; A = %0000_000f + AND #FLAG_FULL ; A = %0000_0001 TAX ; f=0 f=1 STA MIXCLR,X ; C052 C053 LDA flags ; FULL MIX EOR #FLAG_FULL ; mode is based on old leading edge STA flags ; not new trailing edge BRA FlashByte -_HighBit - EOR #$80 - BRA PutByte - +; -------------------- +_GotoXY JMP OnGoto +_ResetRegion JMP OnResetRegion +_MarkRegion JMP OnMarkRegion +_SaveSprite JMP OnSaveSprite +_LoadSprite JMP OnLoadSprite +; -------------------- _MoveL DEC cursor_col BPL GetByte _MoveR INC cursor_col LDA cursor_col - CMP #WIDTH + CMP #SCREEN_W BCC GetByte ; intentional fall into _EdgeR -_EdgeR LDA #WIDTH-1 +_EdgeR LDA #SCREEN_W-1 DB $2C ; BIT $ABS skip next instruction _EdgeL LDA #0 STA cursor_col @@ -208,16 +229,16 @@ _MoveD INC cursor_row LDA cursor_row CMP #192 BCC GetByte ; intentional fall into -_EdgeD LDA #$BF +_EdgeD LDA #192-1 DB $2C ; BIT $ABS skip next instruction _EdgeU LDA #00 STA cursor_row ADC #1 BNE GetByte ; always _Center - LDA #WIDTH/2 + LDA #SCREEN_W/2 STA cursor_col - LDA #192/2 + LDA #SCREEN_H/2 STA cursor_row ; intentional fall into GetByte GetByte ; Cursor position changed @@ -240,7 +261,7 @@ GetByte ; Cursor position changed PutByte STA cursor_val ; current value STA cursor_tmp ; flashing cursor - +Status JSR DrawStatus ; STA SW_STORE80 FlashByte @@ -357,21 +378,303 @@ _LoadByte CLC BCC GotoPutByte ; always Nibble - LDY #3 -CursorSHL - ASL cursor_val - DEY - BPL CursorSHL + LDA cursor_val + JSR NibbleInput + LDA temp + STA cursor_val + CLC + BCC GotoPutByte ; always + +; Shift temp left by 4 bits and append hex input +; ---------- +NibbleInput + ASL + ASL + ASL + ASL + STA temp LDA lastkey - CMP #$41 + CMP #'A' ; < A ? BCC Digit SBC #7 ; $41 - 6 - (C=1) = $3A Digit AND #$0F ; Key to Hex CLC - ADC cursor_val - BCC GotoPutByte ; always + ADC temp +OldCursor ; --- FROM BELOW --- + RTS + +; ------------------------------------------------------------------------ + +FLASH_TIME = $18 ; $1000 rate to flash cursor + +UpdateInputCursor + DEC gGotoTimer1 + BNE OldCursor + DEC gGotoTimer2 + BNE OldCursor + LDY #FLASH_TIME + STY gGotoTimer2 +NewCursor + INC gState + LDA gState + AND #1 + STA gState + BNE DisplayInput +DisplayCursor + LDX gGotoField + INX + STX CH80 ; Inlined HTAB + LDA gCursor + JMP COUT +DisplayInput + LDA gGotoField ; neededs since called from GotoFieldY + STA CH80 ; Inline HTAB + LDA temp + JMP PRBYTE +; *** NOTE: OldCursor --- moved ABOVE --- + + +; ---------- +OnGoto + LDA #20 + JSR VTAB_COL0 + + LDX cursor_col + LDY cursor_row + + STX temp + + LDA #INPUT_X ; default to X column + STA gGotoField + + LDA #1 + STA gState + + STY gGotoNextY +UpdateX + STX gGotoNextX +ResetTimer + LDY #1 ; Force timer + STY gGotoTimer1 ; to time out + STY gGotoTimer2 ; and show digits + +GotoWaitKey + JSR UpdateInputCursor + + LDA KEYBOARD + BPL GotoWaitKey + STA KEYSTROBE + AND #$7F + STA lastkey + +; SPC = Move to next field, or accept if at Y +; CR = Accept X or Accept X & Y +; ESC = Cancel X or Y + CMP gKeyGotoNextField ; SPC + BEQ GotoInputNextField + CMP gKeyGotoAccept ; RET + BEQ GotoInputAccept + CMP gKeyGotoCancel ; ESC + BEQ GotoInputCancel + + CMP #'0' + BCC GotoBadInput ; Bad + CMP #'9'+1 + BCC GotoInputNib ; Good + CMP #'A' + BCC GotoBadInput ; Bad + CMP #'F'+1 + BCC GotoInputNib ; Good + +; ---------- +GotoBadInput + JSR SoftBeep + CLC + BCC GotoWaitKey + +GotoInputNib + LDA temp + JSR NibbleInput + STA temp + + TAX ; X=temp + LDA gGotoField + CMP #INPUT_X + BEQ UpdateX ; jump to init ABOVE + + STX gGotoNextY + CLC + BCC ResetTimer + +; Flash Last nibble entered? +; LDA gGotoField +; TAX +; INX +; TXA +; JSR HTAB +; LDA lastkey +; JSR NibToInvTxt +; JSR COUT + +; --- SPC --- +GotoInputNextField + LDA gGotoField + CMP #INPUT_X + BEQ GotoFieldY + CMP #INPUT_Y + BEQ GotoInputAccept ; Press SPC twice to accept +; --- ***OPTIMIZATION*** Intentional fall into + +GotoFieldY + LDA gGotoNextX + CMP #SCREEN_W + BCS GotoBadInput + + JSR DisplayInput ; In case cursor was displayed + LDA #INPUT_Y + STA gGotoField + LDY gGotoNextY + STY temp + JMP ResetTimer + +; --- RET --- accept X or X,Y input +GotoInputAccept + LDX gGotoNextX ; Need to double check input again + CPX #SCREEN_W ; since user can enter: 80 RET + BCS GotoBadInput + + LDY gGotoNextY + CPY #SCREEN_H + BCS GotoBadInput + + JSR DisplayInput ; In case cursor was displayed + +; LDX gGotoNextY ; OPTIMIZATION: COUT preserves +; LDY gGotoNextY ; OPTIMIZATION: COUT preserves + + STX cursor_col + STY cursor_row + JMP GetByte + +; --- ESC --- +GotoInputCancel + BRA RegionTrampoline1 + +; ------------------------------------------------------------------------ +OnResetRegion + JSR ZeroRegion + STA tSprite1 + SPRITE_X + STA tSprite1 + SPRITE_Y + STA tSprite2 + SPRITE_X + STA tSprite2 + SPRITE_Y + + LDA flags + AND #$FF - {FLAG_REGION_1 + FLAG_REGION_2 + FLAG_REG_EVEN} + STA flags +RegionTrampoline1 + BRA DoneSprite + +ZeroRegion + LDA #0 +SetSprite1WH + STA tSprite1 + SPRITE_W + STA tSprite1 + SPRITE_H + RTS + +;SetSprite1XY +;SetSprite2XY +; RTS + +; --------- +OnMarkRegion + LDA flags + TAX ; push flags + ROR ; FLAG_FULL + ROR ; FLAG_REGION_1 + BCC NoRegion1 + ROR ; FLAG_REGION_2 + BCC NoRegion2 +; Tri-State + ROR ; FLAG_REGION_3 + + TXA ; pop flags + EOR #FLAG_REG_EVEN + STA flags + + BCS NoRegion2 + +NoRegion1 + TXA ; pop flags + ORA #FLAG_REGION_1 + STA flags + LDX cursor_col + LDY cursor_row + STX tSprite1 + SPRITE_X + STY tSprite1 + SPRITE_Y +DoneSprite + JMP Status + +NoRegion2 + TXA ; pop flags + ORA #FLAG_REGION_2 + STA flags + LDX cursor_col + LDY cursor_row + STX tSprite2 + SPRITE_X + STY tSprite2 + SPRITE_Y + +CalcWidth + TXA + SEC + SBC tSprite1 + SPRITE_X + BCS SaveWidth + EOR #$FF +SaveWidth + TAX + INX + STX tSprite1 + SPRITE_W + +CalcHeight + TYA + SEC + SBC tSprite1 + SPRITE_Y + BCS SaveHeight + EOR #$FF +SaveHeight + TAY + INY + STY tSprite1 + SPRITE_H + BRA DoneSprite + +OnSaveSprite + LDA tSprite1 + SPRITE_W + ORA tSprite1 + SPRITE_H + BNE ValidDimensions + JSR SoftBeep + BRA DoneSprite +ValidDimensions + +OnLoadSprite + BRA DoneSprite + +; --- Ripped from Fantavision --- +SoftBeep + LDY #$20 +SoftCycle + LDA #$02 ;+ + JSR F8_Wait + STA SQUEEKER + + LDA #$24 + JSR F8_Wait + STA SQUEEKER + + DEY + BNE SoftCycle ;^ + RTS + ; ------------------------------------------------------------------------ DrawStatus @@ -383,14 +686,12 @@ DrawStatus JSR COUT LDA cursor_col JSR PR_HEX - LDA #' '+$80 - JSR COUT + JSR PrintSpace LDA #'Y'+$80 JSR COUT LDA cursor_row JSR PR_HEX - LDA #' '+$80 - JSR COUT + JSR PrintSpace LDA #'$'+$80 JSR COUT LDA GBASH @@ -407,14 +708,57 @@ DrawStatus LDA cursor_val JSR PRBYTE - LDA #' '+$80 - JSR COUT + JSR PrintSpace LDA cursor_val JSR ReverseByte + JSR PrintSpace + JSR COUT + + LDA flags + AND #FLAG_REGION_1 + BEQ PrintNoRegion1 + + LDA tSprite1 + SPRITE_X + LDX #'X'+$80 + LDY #'1'+$80 + JSR PrintSpriteMeta + LDA tSprite1 + SPRITE_Y + LDX #'Y'+$80 + LDY #'1'+$80 + JSR PrintSpriteMeta + + BRA DoneStatusLine1 + +PrintNoRegion1 + LDX #sTextSprite1 + JSR PrintStringZ + +DoneStatusLine1 + JSR PrintStatusLine2 - JSR PrintStatusLine3 - JMP PrintStatusLine4 + JMP PrintStatusLine3 + +; IN: +; A = Val +; X = 'X' or 'Y' +; Y = '1' or '2' +; -------------------- +PrintSpriteMeta + STA temp + TXA + JSR COUT + TYA + JSR COUT + LDA #':'+$80 + JSR COUT + LDA temp +; JSR PR_HEX + JSR PRBYTE +PrintSpace + LDA #' '+$80 + JMP COUT ; --- Status Line 2 --- PrintStatusLine2 @@ -427,8 +771,7 @@ PrintStatusLine2 LDA cursor_col LSR JSR PR_HEX - LDA #' '+$80 - JSR COUT + JSR PrintSpace LDA cursor_col LSR @@ -452,11 +795,97 @@ HaveMemType LDA cursor_org JSR PrintInverseByte -; JSR PRBYTE - LDA #' '+$80 - JSR COUT + JSR PrintSpace LDA cursor_org -; intentional fall into ReverseByte + JSR ReverseByte + + JSR PrintSpace + JSR COUT + + LDA flags + AND #FLAG_REGION_2 + BEQ PrintNoRegion2 + + LDA tSprite2 + SPRITE_X + LDX #'X'+$80 + LDY #'2'+$80 + JSR PrintSpriteMeta + LDA tSprite2 + SPRITE_Y + LDX #'Y'+$80 + LDY #'2'+$80 + JMP PrintSpriteMeta + +PrintNoRegion2 + LDX #sTextSprite2 + JMP PrintStringZ +DoneStatusLine3 + + +; --- Status Line 3 --- +PrintStatusLine3 + LDA #22 + JSR VTAB_COL0 + LDA #20 + JSR HTAB + + LDX #sTextFooter3 + JSR PrintStringZ + + LDA tSprite1 + SPRITE_W + LDX #' '+$80 + LDY #'W'+$80 + JSR PrintSpriteMeta + LDA tSprite1 + SPRITE_H + LDX #' '+$80 + LDY #'H'+$80 + JSR PrintSpriteMeta + +; intentionall fall into 4 + +; --- Status Line 4 --- +; Draw pixel grouping +PrintStatusLine4 + LDA #23 + JSR VTAB_COL0 + LDA #29 + JSR HTAB + +; (x & 4) * 8 + LDA cursor_col ; src = sPixelFooter + AND #3 + ASL + ASL + ASL + TAX ; src += 8*col + LDY #8 ; char [4][8] +PrintFooter2 + LDA sPixelFooter,X + JSR COUT + INX + DEY ; len-- + BNE PrintFooter2 + +; --- TODO --- sprite A$6000,L$#### + RTS + + +; IN: +; X=Lo +; Y=Hi +PrintStringZ + STX PrintString2+1 + STY PrintString2+2 + LDX #0 +PrintString2 + LDA $DA1A, X + BEQ PrintString3 + JSR COUT ; 4 line text window, 2nd row + INX + BNE PrintString2 ; (almost) always +PrintString3 + RTS ; ---------- ReverseByte @@ -497,8 +926,7 @@ PrintBitsReverse1 LDA #'$'+$80 JSR COUT PLA ; restore reverse byte - JSR PRBYTE - RTS + JMP PRBYTE PrintInverseByte PHA @@ -508,66 +936,14 @@ PrintInverseByte LSR JSR NibToInvTxt PLA - JSR NibToInvTxt - RTS - - -; --- Status Line 3 --- -PrintStatusLine3 - LDA #22 - JSR VTAB_COL0 - LDA #20 - JSR HTAB - - LDX #sTextFooter3 - JMP PrintStringZ - -; --- Status Line 4 --- -; Draw pixel grouping -PrintStatusLine4 - LDA #23 - JSR VTAB_COL0 - LDA #29 - JSR HTAB - -; (x & 4) * 8 - LDA cursor_col ; src = sPixelFooter - AND #3 - ASL - ASL - ASL - TAX ; src += 8*col - LDY #8 ; char [4][8] -PrintFooter2 - LDA sPixelFooter,X - JSR COUT - INX - DEY ; len-- - BNE PrintFooter2 - RTS - -; IN: -; X=Lo -; Y=Hi -PrintStringZ - STX PrintString2+1 - STY PrintString2+2 - LDX #0 -PrintString2 - LDA $DA1A, X - BEQ PrintString3 - JSR COUT ; 4 line text window, 2nd row - INX - BNE PrintString2 ; (almost) always -PrintString3 - RTS +; *** OPTIMIZATION: intentional fall into *** ; Display nibble as inverse text ; 0 -> '0' $30 ; 9 -> '9' $39 ; A -> ^A $01 ; F -> ^F $06 +; @see NibToAscTxt NibToInvTxt AND #$F ORA #'0'+$00 ; ASCII: +$80 @@ -678,7 +1054,7 @@ PR_HEX LDA #'=' + $80 ; normal JSR COUT PLA -PRBYTE +PRBYTE ; PrintByteHex PHA LSR LSR @@ -686,13 +1062,11 @@ PRBYTE LSR JSR PR_NIB PLA - AND #$0F PR_NIB - ORA #'0' + $80 - CMP #':' + $80 - BCC COUT - ADC #$06 + JSR NibToAscTxt +; A,X,Y preserved COUT + PHY DO CONFIG_DHGR PHX @@ -720,6 +1094,17 @@ Main RTS FIN +; @see NibToInvTxt +; -------------------- +NibToAscTxt + AND #$0F + ORA #'0' + $80 + CMP #':' + $80 + BCC _NibToAscTxtDone + ADC #$06 +_NibToAscTxtDone + RTS + ; ======================================================================== ; Common code -- called by Init, Exit Init_Exit @@ -777,6 +1162,16 @@ OnInit STA SW_SET80COL + BIT PAGE1 ; Page 1 + BIT SW_TXTCLR ; not text, but graphics + BIT MIXSET ; Split screen text/graphics + BIT HIRES ; HGR, no GR + + DO CONFIG_DHGR + STA SW_DHGR ; $C05E DHGR, not HGR + STA SW_SET80COL ; $C00D 80-col on + FIN + BRA DoneCopy ; "Unlinearize" interleaved AUX/MAIN memory @@ -802,6 +1197,7 @@ OnExit STA SW_SET40COL ; $C00C STA SW_DHGR+1 ; $C05F DHGR off ; STA SW_STORE81 ; Enable Page 2 switching + STA SW_TXTCLR+1 DoneCopy FIN @@ -810,7 +1206,6 @@ DoneCopy JSR HOME ELSE JSR ClearText80 - STA TXTCLR+1 FIN LDX #$20 @@ -851,30 +1246,49 @@ DoneDst00 RTS +; === Goto Cursor === +; char cursors[2] +gState DB 0 ; 0=show cursor, 1=show hex input val +gCursor ASC "_" ; \ Alernate showing cursor +;gOutput ASC '?' ; / and input digit + +gGotoNextX DB 0 ; prev cursor_col +gGotoNextY DB 0 ; prev cursor_row +gGotoField DB 0 ; column, INPUT_X, INPUT_Y +gGotoTimer1 DB 0 ; Flash Rate: "0" then "_" +gGotoTimer2 DB 0 ; + +gKeyGotoNextField ASC ' ' ; SPC +gKeyGotoCancel DB '[' & $1F ; ESC +gKeyGotoAccept DB 'M' & $1F ; RET + +; ***NOTE:*** INPUT_X INPUT_Y must match status +; 0123456789A +; X=00 Y=00= +; ^^^ ^^^ +; 2,3 7,8 + ; ======================================================================== -sTextFooter2 +; === Status === ; 1 2 3 ; 0123456789012345678901234567890123456789 ; 1 2 ; 0123456789ABCDEF0123456789ABCDEF01234567 - ; "X=## Y=## $=####:## %%%%%%%%~%%%%%%%%$00" - ; "/=## A/M SAVE:?? %%%%%%%%~%%%%%%%%$00 - ; " 76543210 12345678 + ; "X=## Y=## $=####:## %%%%%%%%~%%%%%%%%$00 X1:## Y1:## + ; "/=## A/M SAVE:?? %%%%%%%%~%%%%%%%%$00 X2:## Y2:## + ; " 76543210 12345678 W :## H :## ; " [11]222- - ASC "SAVE:" - DB $00 +sTextSprite1 ASC "X1:?? Y1:??",00 +sTextSprite2 ASC "X2:?? Y2:??",00 +sTextSprite3 ASC " W:?? H:??",00 + +sTextFooter2 + ASC "SAVE:",00 sTextFooter3 - ASC "76543210 " - INV "12345678" ;1-8 INVERSE -; DB '1' & $3F -; DB '2' & $3F -; DB '3' & $3F -; DB '4' & $3F -; DB '5' & $3F -; DB '6' & $3F -; DB '7' & $3F -; DB '8' & $3F + ASC "76543210 " + INV "12345678" ; 1-8 INVERSE + ASC " " ; padding for sprite W,H DB $00 ; char [2][3] @@ -906,13 +1320,24 @@ sPixelFooter ASC "666[77]-" +; === Sprite/Region === +; X,Y +; W,H +tSprite1 + DB 0, 0 + DB 0, 0 +tSprite2 + DB 0, 0 + DB 0, 0 + + + ; ------------------------------------------------------------------------ ; Keys are searched in reverse order ; Sorted by least used to most used aKeys DB '[' & $1F ; _Exit ESC Quit - ASC 'g' ; _Screen G Toggle fullscreen - ASC 'G' ; _Screen G Toggle fullscreen + DB 'M' & $1F ; _Screen RET Toggle fullscreen DB 'H' & $1F ; _MoveL <- Ctrl-H $08 DB 'U' & $1F ; _MoveR -> Ctrl-U $15 @@ -920,8 +1345,9 @@ aKeys DB 'I' & $1F ; _EdgeU ^I Ctrl-I $09 Move cursor to row 0 DB 'J' & $1F ; _EdgeL ^J Ctrl-J $0A Move cursor to col 0 DB 'K' & $1F ; _EdgeD ^K Ctrl-K $0B Move cursor to row 191 - DB "L" & $1F ; _EdgeR ^L Ctrl-L $0C Move cursor to col 39 - DB "M" & $1F ; _Center Center cursor + DB 'L' & $1F ; _EdgeR ^L Ctrl-L $0C Move cursor to col 39 + DB 'G' & $1F ; _Center Center cursor + ASC 'G' ; _GotoXY Move cursor to specified X Y ASC 'i' ; _moveU Move cursor Up ASC 'j' ; _moveL Move cursor Left @@ -942,11 +1368,12 @@ aKeys ASC '&' ; _Bit6 Toggle bit 6 ASC '*' ; _Bit7 Toggle bit 7 - DO CONFIG_DHGR - ASC ' ' ; _HighBit Toggle high bit of byte (bit 7) is useless in DHGR mode - ELSE - ASC ' ' ; _HighBit Toggle high bit of byte (bit 7) - FIN + ASC ';' ; _SaveSprite + DB "'" & $3F ; _LoadSprite + + ASC 'M' ; _ResetRegion + ASC ' ' ; _MarkRegion Changed from Toggle high bit of byte (bit 7) is useless in DHGR mode + ASC '(' ; _ByteFF Set byte to FF (Shift-9) ASC ')' ; _Byte00 Set byte to 00 (Shift-0) ASC '`' ; _FlipByte Toggle all bits @@ -968,8 +1395,7 @@ nKeys = eKeys - aKeys ; ; *Note*: Must match aKeys order! aFuncLo DB <_Exit -1 ; ESC - DB <_Screen -1 ; g - DB <_Screen -1 ; G + DB <_Screen -1 ; RET DB <_MoveL -1 ; <- DB <_MoveR -1 ; -> @@ -978,7 +1404,8 @@ aFuncLo DB <_EdgeL -1 ; ^J DB <_EdgeD -1 ; ^K DB <_EdgeR -1 ; ^L - DB <_Center -1 ; RET + DB <_Center -1 ; ^G + DB <_GotoXY -1 ; G DB <_MoveU -1 ; 'i' DB <_MoveL -1 ; 'j' @@ -999,11 +1426,13 @@ aFuncLo DB <_Bit6 -1 ; '7' DB <_Bit7 -1 ; '8' - DO CONFIG_DHGR - DB <_HighBit -1 ; SPC - ELSE - DB <_HighBit -1 ; SPC - FIN + DB <_SaveSprite-1 ; ';' + DB <_LoadSprite-1 ; ''' + + DB <_ResetRegion-1 ; 'M' + DB <_MarkRegion -1 ; SPC +; <_HighBit -1 ; SPC + DB <_ByteFF -1 ; '(' DB <_Byte00 -1 ; ')' DB <_FlipByte-1 ; '`'