Custom text input
From Retrosoftware
(Difference between revisions)
m (→Custom Text Input - Changed the label 'display' to 'chkLimit' as it was nonsense in this version) |
m (→Custom Text Input - Removed redundant label 'store'.) |
||
| Line 42: | Line 42: | ||
360 CPY #0 | 360 CPY #0 | ||
370 BEQ loop | 370 BEQ loop | ||
| - | 380 | + | 380 JSR osasci |
| - | 390 | + | 390 DEY |
400 JMP loop | 400 JMP loop | ||
410.chkLimit | 410.chkLimit | ||
| Line 49: | Line 49: | ||
430 BEQ loop | 430 BEQ loop | ||
440 JSR osasci | 440 JSR osasci | ||
| - | 450 | + | 450 STA buffer%,Y |
| - | + | 460 INY | |
| - | + | 470 JMP loop | |
| - | + | 480] | |
| - | + | 490 NEXT | |
| - | + | 500 | |
| - | + | 510 PRINT "Enter text: "; | |
| - | + | 520 A$=FNgetText | |
| - | + | 530 PRINT A$ | |
| - | + | 540 END | |
| - | + | 550 | |
| - | + | 560 DEF FNgetText | |
| - | + | 570 CALL getText | |
| - | + | 580 =$buffer% | |
| - | + | ||
Revision as of 14:47, 28 May 2008
Custom Text Input
This is a custom text input routine that I wrote since the BBC's standard INPUT command handles commas differently from what I needed.
The Code
10 REM Custom text input example 20 REM by Francis G. Loch 30 40 DIM mc% 100 50 DIM buffer% 255 60 osasci=&FFE3 70 osbyte=&FFF4 80 osrdch=&FFE0 90 FOR opt%=0 TO 2 STEP 2 100 P%=mc% 110[ OPT opt% 120.getText 130 LDA #2 140 LDX #0 150 JSR osbyte 160 LDY #0 170.loop 180 JSR osrdch 190 CMP #27 200 BNE chkReturn 210 LDA #13 220 JSR osasci 230 STA buffer% 240 LDA #126 250 JSR osbyte 260 RTS 270.chkReturn 280 CMP #13 290 BNE chkDelete 300 JSR osasci 310 STA buffer%,Y 320 RTS 330.chkDelete 340 CMP #127 350 BNE chkLimit 360 CPY #0 370 BEQ loop 380 JSR osasci 390 DEY 400 JMP loop 410.chkLimit 420 CPY #255 430 BEQ loop 440 JSR osasci 450 STA buffer%,Y 460 INY 470 JMP loop 480] 490 NEXT 500 510 PRINT "Enter text: "; 520 A$=FNgetText 530 PRINT A$ 540 END 550 560 DEF FNgetText 570 CALL getText 580 =$buffer%