mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-21 10:32:08 +00:00
Imported keydef and screen modules from master
This commit is contained in:
parent
b83b345ca4
commit
665834bc74
37
include/x16/keydef.a02
Normal file
37
include/x16/keydef.a02
Normal file
@ -0,0 +1,37 @@
|
||||
;PETSCII Key Code Definitions for Commander X16
|
||||
|
||||
;NAME Chr Description x16emu
|
||||
KEYBCK EQU $00 ;Backspace [N/A]
|
||||
KEYBRK EQU $03 ;Break (RUN/STOP) **missing**
|
||||
KEYCLR EQU $93 ;Clear (Shift-CLR/HOME) Shift-Home
|
||||
KEYCPY EQU $00 ;Copy [N/A]
|
||||
KEYDEL EQU $14 ;Delete Backspace
|
||||
KEYDN EQU $11 ;Cursor Down Cursor Down
|
||||
KEYESC EQU $1B ;Escape [C128/C65] **missing**
|
||||
KEYFN1 EQU $85 ;F1 (F1/F2) F1
|
||||
KEYFN2 EQU $89 ;F2 (Shift-F1/F2) F2
|
||||
KEYFN3 EQU $86 ;F3 (F3/F4) F3
|
||||
KEYFN4 EQU $8A ;F4 (Shift-F3/F4) F4
|
||||
KEYFN5 EQU $87 ;F5 (F5/F6) F5
|
||||
KEYFN6 EQU $8B ;F6 (Shift-F5/F6) F6
|
||||
KEYFN7 EQU $88 ;F7 (F7/F8) F7
|
||||
KEYFN8 EQU $8C ;F8 (Shift-F7/F8) F8
|
||||
KEYFN9 EQU $89 ;F9 [C65] F9
|
||||
KEYFNA EQU $15 ;F10 [C65] F10
|
||||
KEYFNB EQU $16 ;F11 [C65] F11
|
||||
KEYFNC EQU $17 ;F12 [C65] F12
|
||||
KEYHLP EQU $84 ;Help [C65]
|
||||
KEYHOM EQU $13 ;Home (CLR/HOME) Home
|
||||
KEYINS EQU $94 ;Insert (Shift-INS/DEL) Shift-Backspace
|
||||
KEYLFT EQU $9D ;Cursor Left Cursor Left
|
||||
KEYLNF EQU $00 ;Line Feed [C128]
|
||||
KEYRGT EQU $1D ;Cursor Right Cursor Right
|
||||
KEYRTN EQU $0D ;Return Enter
|
||||
KEYRTS EQU $8D ;Shift-Return Shift-Enter
|
||||
KEYRUN EQU $00 ;Run (Shift-RUN/STOP)
|
||||
KEYRVF EQU $92 ;Reverse Off Ctrl-0
|
||||
KEYRVS EQU $12 ;Reverse On Ctrl-9
|
||||
KEYSPS EQU $A0 ;Shifted Space Shifted Space
|
||||
KEYTAB EQU $09 ;Tab Tab
|
||||
KEYTAS EQU $18 ;Shift-Tab **missing**
|
||||
KEYUP EQU $91 ;Cursor Up Cursor Up
|
36
include/x16/keydef.h02
Normal file
36
include/x16/keydef.h02
Normal file
@ -0,0 +1,36 @@
|
||||
/* PETSCII Key Code Definitions for Commander X16 */
|
||||
|
||||
#define KEYBCK $00 //Backspace
|
||||
#define KEYBRK $03 //Break (RUN/STOP)
|
||||
#define KEYCLR $93 //Clear (Shift-CLR/HOME)
|
||||
#define KEYCPY $00 //Copy
|
||||
#define KEYDEL $14 //Delete
|
||||
#define KEYDN $11 //Cursor Down
|
||||
#define KEYESC $1B //Escape
|
||||
#define KEYFN1 $85 //Function Key 1 (F1/F2)
|
||||
#define KEYFN2 $89 //Function Key 2 (Shift-F1/F2)
|
||||
#define KEYFN3 $86 //Function Key 3 (F3/F4)
|
||||
#define KEYFN4 $8A //Function Key 4 (Shift-F3/F4)
|
||||
#define KEYFN5 $87 //Function Key 5 (F5/F6)
|
||||
#define KEYFN6 $8B //Function Key 6 (Shift-F5/F6)
|
||||
#define KEYFN7 $88 //Function Key 7 (F7/F8)
|
||||
#define KEYFN8 $8C //Function Key 8 (Shift-F7/F8) [HELP on C16]
|
||||
#define KEYFN9 $89 //Function Key 9
|
||||
#define KEYFNA $15 //Function Key 10
|
||||
#define KEYFNB $16 //Function Key 11
|
||||
#define KEYFNC $17 //Function Key 12
|
||||
#define KEYHLP $84 //Help (C65)
|
||||
#define KEYHOM $13 //Home (CLR/HOME)
|
||||
#define KEYINS $94 //Insert (Shift-INS/DEL)
|
||||
#define KEYLFT $9D //Cursor Left
|
||||
#define KEYLNF $00 //Line Feed (N/A)
|
||||
#define KEYRGT $1D //Cursor Right
|
||||
#define KEYRTN $0D //Return
|
||||
#define KEYRTS $8D //Shift-Return
|
||||
#define KEYRUN $00 //Run (Shift-RUN/STOP)
|
||||
#define KEYRVF $92 //Reverse Off
|
||||
#define KEYRVS $12 //Reverse On
|
||||
#define KEYSPS $A0 //Shifted Space
|
||||
#define KEYTAB $09 //Tab
|
||||
#define KEYTAS $18 //Shift-Tab [C65]
|
||||
#define KEYUP $91 //Cursor Up
|
45
include/x16/screen.a02
Normal file
45
include/x16/screen.a02
Normal file
@ -0,0 +1,45 @@
|
||||
;Screen Control Assembly Lanuage Routines for VIC-20
|
||||
|
||||
;SUBROUTINE
|
||||
|
||||
SMTEXT EQU $00 ;Default Text Screen
|
||||
SMWIDE EQU $02 ;Wide Text Screen (Undefined)
|
||||
|
||||
;Set Screen Mode
|
||||
SETSCR: SEC ;Set Carry
|
||||
JSR $FF5F ;Call SCRMOD
|
||||
LDA #0 ;Set Return Value to Zero
|
||||
BCC .RETURN ;If Carry Set
|
||||
DEC ; Return 255 (Error)
|
||||
.RETURN RTS
|
||||
|
||||
;Get Screen Mode
|
||||
GETSCR: CLC ;Clear Carry
|
||||
JMP $FF5F ;Execute SCRMOD
|
||||
RTS
|
||||
|
||||
;Clear the Screen
|
||||
CLRSCR LDA #$93 ;Load CLR/HOME Character
|
||||
JMP PUTCHR ;and Print to Screen
|
||||
|
||||
;Move Cursor To Home Position
|
||||
CRSRHM LDA #$13 ;Load HOME Character
|
||||
JMP PUTCHR ;and Print to Screen
|
||||
|
||||
;Move Cursor to Specified Coordinates
|
||||
SETPOS: .DC $5A ;PHY Copy Row
|
||||
.DC $FA ;PLX to X Register,
|
||||
TAY ;Column to Y Register
|
||||
CLC ;Set Carry
|
||||
JMP $FFF0 ;and Execute Plot
|
||||
|
||||
;Get Cursor Position
|
||||
GETPOS: LDY $D6 ;Load Cursor Row
|
||||
LDA $D3 ;Load Cursor Column
|
||||
RTS
|
||||
|
||||
;Get Screen Size
|
||||
GETSIZ: JSR $FFED ;Call SCREEN Kernal Routine
|
||||
TXA ;Transfer Width to Accumulator
|
||||
RTS
|
||||
|
38
include/x16/screen.h02
Normal file
38
include/x16/screen.h02
Normal file
@ -0,0 +1,38 @@
|
||||
/*****************************************************
|
||||
* Screen Control Functions and Constants for VIC-20 *
|
||||
*****************************************************/
|
||||
|
||||
/* Screen Modes for getscr() and setscr() */
|
||||
#define SMTEXT $00 //Default Text Mode (40x30)
|
||||
#define SMWIDE $02 //Wide Screen Text Mode (80x60)
|
||||
|
||||
/* Clear the Screen */
|
||||
void clrscn();
|
||||
|
||||
/* Move Cursor to Top Left of Screen */
|
||||
void crsrhm();
|
||||
|
||||
/* Get Current Cursor Position *
|
||||
* Returns: cursor column *
|
||||
( cursor row */
|
||||
char getpos();
|
||||
|
||||
/* Get Screen Size *
|
||||
* Returns: width in columns *
|
||||
* height in rows */
|
||||
char getsiz();
|
||||
|
||||
/* Get Screen Mode *
|
||||
* Returns: char mode - Current Screen Mode */
|
||||
char getscr();
|
||||
|
||||
/* Move Cursor to Specified Position *
|
||||
* Args: column - screen column (0 = left) *
|
||||
* row - screen line (0 = top) */
|
||||
void setpos();
|
||||
|
||||
/* Set Screen Mode *
|
||||
* Args: char mode - screen mode *
|
||||
* 0 = default text mode *
|
||||
* Returns: $FF if Mode Invalid */
|
||||
char setscr();
|
Loading…
Reference in New Issue
Block a user