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)