copy_20key_20functionality_20with_20get_20and_20inkey
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
copy_20key_20functionality_20with_20get_20and_20inkey [2018/04/16 10:46] – Added syntax highlighting richardrussell | copy_20key_20functionality_20with_20get_20and_20inkey [2024/01/05 00:22] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
=====Copy Key functionality with GET and INKEY===== | =====Copy Key functionality with GET and INKEY===== | ||
- | //by Richard Russell, April 2008// | + | //by Richard Russell, April 2008//\\ |
+ | |||
+ | //BBC BASIC for Windows// and //BBC BASIC for SDL 2.0// emulate | ||
<code bb4w> | <code bb4w> | ||
- | | + | |
- | LOCAL K% | + | LOCAL K% |
- | PRIVATE copyX%, copyY%, copyF% | + | PRIVATE copyX%, copyY%, copyF% |
- | IF copyF% PROCblob : PROCswap | + | IF copyF% PROCblob : PROCswap |
- | REPEAT | + | REPEAT |
- | K% = INKEY(T%) | + | K% = INKEY(T%) |
- | CASE K% OF | + | CASE K% OF |
- | WHEN 9: | + | WHEN 9: |
- | IF copyF% THEN | + | IF copyF% THEN |
- | K% = GET(POS, VPOS) : VDU 9 | + | K% = GET(POS, VPOS) : VDU 9 |
- | ELSE | + | ELSE |
- | copyX% = POS : copyY% = VPOS | + | copyX% = POS : copyY% = VPOS |
- | copyF% = TRUE : PROCblob : K% = -1 | + | copyF% = TRUE : PROCblob : K% = -1 |
- | ENDIF | + | ENDIF |
- | WHEN 136, | + | WHEN 136, |
- | IF copyF% VDU K% AND &7F : K% = -1 | + | IF copyF% VDU K% AND &7F : K% = -1 |
- | WHEN 13, 155: | + | WHEN 13, 155: |
- | IF copyF% THEN | + | IF copyF% THEN |
- | IF K% = 155 K% = -1 | + | IF K% = 155 K% = -1 |
- | copyF% = FALSE : PROCswap : PROCblob | + | copyF% = FALSE : PROCswap : PROCblob |
- | ENDIF | + | ENDIF |
- | ENDCASE | + | ENDCASE |
- | UNTIL K%<> | + | UNTIL K%<> |
- | IF copyF% PROCswap : PROCblob | + | IF copyF% PROCswap : PROCblob |
- | = K% | + | = K% |
- | | + | |
- | LOCAL X%, Y% | + | LOCAL X%, Y% |
- | X% = POS : Y% = VPOS | + | X% = POS : Y% = VPOS |
- | SWAP X%, copyX% : SWAP Y%, copyY% | + | SWAP X%, copyX% : SWAP Y%, copyY% |
- | PRINT TAB(X%, | + | PRINT TAB(X%, |
- | ENDPROC | + | ENDPROC |
- | | + | |
- | LOCAL rc{} | + | LOCAL rc{} |
- | DIM rc{l%, | + | DIM rc{l%, |
- | rc.l% = @vdu%!48 | + | rc.l% = @vdu%!48 |
- | rc.t% = @vdu%!52 | + | rc.t% = @vdu%!52 |
- | rc.r% = rc.l% + @vdu%!216 | + | rc.r% = rc.l% + @vdu%!216 |
- | rc.b% = rc.t% + @vdu%!220 | + | rc.b% = rc.t% + @vdu%!220 |
- | SYS " | + | SYS " |
- | SYS " | + | SYS " |
- | ENDPROC | + | |
+ | </ | ||
+ | |||
+ | In //BBC BASIC for SDL 2.0// replace **PROCblob** with the following code: | ||
+ | |||
+ | <code bb4w> | ||
+ | DEF PROCblob | ||
+ | LOCAL rc{} : PRIVATE B% | ||
+ | IF B% = 0 SYS " | ||
+ | DIM rc{x%, | ||
+ | SYS " | ||
+ | SYS " | ||
+ | rc.x% = @vdu%!48 | ||
+ | rc.w% = @vdu%!216 : rc.h% = @vdu%!220 | ||
+ | SYS " | ||
+ | SYS " | ||
+ | | ||
</ | </ | ||
Line 52: | Line 70: | ||
<code bb4w> | <code bb4w> | ||
- | | + | |
- | LOCAL K% | + | LOCAL K% |
- | REPEAT | + | REPEAT |
- | K% = FNinkeycopy(1) | + | K% = FNinkeycopy(1) |
- | UNTIL K%<> | + | UNTIL K%<> |
- | = K% | + | = K% |
</ | </ |
copy_20key_20functionality_20with_20get_20and_20inkey.1523875611.txt.gz · Last modified: 2024/01/05 00:18 (external edit)