VolksForth/6502/mcs/VForth35/old/serial.scr.fb
2020-07-16 22:54:56 +02:00

1 line
11 KiB
Plaintext

\ loadscreen fuer EMUF i/o er14dez88 1 9 +thru \ 65KEY? GETKEY 25JAN85RE) cas21jan07 | CODE 65KEY? CLC $FB C, $C2 C, $30 C, CLI $43 LDA 1 # AND $0 C, SEI SEC $FB C, push0a jmp end-code | CODE GETKEY ( -- 8b ) CLC $FB C, $C2 C, $30 C, CLI $22 C, $33 C, $E0 C, $00 C, SEI $E2 C, $30 C, SEC $FB C, NOP push0a jmp end-code | CODE CURON ( --) NEXT JMP END-CODE | CODE CUROFF ( --) NEXT JMP END-CODE : 65KEY ( -- 8B) CUROFF BEGIN PAUSE 65KEY? UNTIL GETKEY ; \ DECODE EXPECT KEYBOARD BP28MAY85) cs08aug0508 CONSTANT #BS $0D CONSTANT #CR &27 CONSTANT #ESC : 65DECODE ( ADDR CNT1 KEY -- ADDR CNT2) #BS CASE? IF DUP IF DEL 1- THEN EXIT THEN #CR CASE? IF DUP SPAN ! EXIT THEN >R 2DUP + R@ SWAP C! R> EMIT 1+ ; : 65EXPECT ( ADDR LEN1 -- ) SPAN ! 0 BEGIN DUP SPAN @ U< WHILE KEY DECODE REPEAT 2DROP SPACE ; INPUT: KEYBOARD [ HERE INPUT ! ] 65KEY 65KEY? 65DECODE 65EXPECT [ \ senden? (emit 65emit 25JAN85RE) cas21jan07 : senden? $80 ; Code (emit ( 8b -- ) SP X) LDA CLC $FB C, $C2 C, $30 C, CLI $22 C, $63 C, $E0 C, $00 C, SEI $E2 C, $30 C, SEC $FB C, (drop jmp end-code \ EMIT CR DEL PAGE AT AT? 25JAN85RE) er14dez88 | Variable out 0 out ! | &80 Constant c/row : 65emit ( 8b -- ) BEGIN pause senden? UNTIL 1 out +! (emit ; : 65CR #CR 65emit out @ c/row / 1+ c/row * out ! ; : 65DEL #bs 65emit SPACE #bs 65emit -2 out +! ; : 65PAGE .( page einf. ) out off ; : 65at ( row col -- ) .( at einf. ) swap c/row * + out ! ; : 65AT? ( -- ROW COL ) out @ c/row /mod &24 min swap ; \ er14dez88 : 65type ( adr len -- ) bounds ?DO I c@ emit LOOP ; \ TYPE DISPLAY (BYE BP 28MAY85RE) cas21jan07 OUTPUT: DISPLAY [ HERE OUTPUT ! ] 65EMIT 65CR 65TYPE 65DEL 65PAGE 65AT 65AT? [ | code (bye CLC $FB C, $C2 C, $30 C, CLI $6B C, END-CODE \ B/BLK DRIVE >DRIVE DRVINIT 28MAY85RE) CAS20JAN07 $400 CONSTANT B/BLK \ CAS20JAN07 \ (r/w CAS20JAN07