move keys function from gui_buttons to keyboard

This commit is contained in:
Gwenhael Le Moine 2024-04-14 21:41:11 +02:00
parent 36e276b902
commit fa7e66e8c0
No known key found for this signature in database
GPG key ID: FDFE3669426707A7
5 changed files with 206 additions and 210 deletions

View file

@ -6,11 +6,12 @@
#include <SDL2/SDL_ttf.h>
#include "config.h"
#include "gui_buttons.h"
#include "keyboard.h"
#include "files.h"
#include "gui.h"
#include "emulator.h"
#include "display.h"
#include "gui_buttons.h"
#define PANEL_FLAG_VISIBLE 0x01

View file

@ -4,7 +4,6 @@
#include "keyboard.h"
#include "gui.h"
#include "gui_buttons.h"
#include "files.h"
const int std_flags = BUTTON_B1RELEASE | BUTTON_B2TOGGLE;
@ -70,105 +69,3 @@ Button calc_buttons[] = {
{49, X_COL( 0 ), Y_LINE( 9 ), 40, UI_K_HEIGHT_2, std_flags, "load file", "", "", "", "", press_LoadFile, release_LoadFile},
};
void press_PLUS( void ) { kbd_key_pressed( 0, 0 ); }
void release_PLUS( void ) { kbd_key_released( 0, 0 ); }
void press_SPC( void ) { kbd_key_pressed( 0, 1 ); }
void release_SPC( void ) { kbd_key_released( 0, 1 ); }
void press_PERIOD( void ) { kbd_key_pressed( 0, 2 ); }
void release_PERIOD( void ) { kbd_key_released( 0, 2 ); }
void press_0( void ) { kbd_key_pressed( 0, 3 ); }
void release_0( void ) { kbd_key_released( 0, 3 ); }
void press_QUOTE( void ) { kbd_key_pressed( 0, 4 ); }
void release_QUOTE( void ) { kbd_key_released( 0, 4 ); }
void press_MINUS( void ) { kbd_key_pressed( 1, 0 ); }
void release_MINUS( void ) { kbd_key_released( 1, 0 ); }
void press_3( void ) { kbd_key_pressed( 1, 1 ); }
void release_3( void ) { kbd_key_released( 1, 1 ); }
void press_2( void ) { kbd_key_pressed( 1, 2 ); }
void release_2( void ) { kbd_key_released( 1, 2 ); }
void press_1( void ) { kbd_key_pressed( 1, 3 ); }
void release_1( void ) { kbd_key_released( 1, 3 ); }
void press_A( void ) { kbd_key_pressed( 1, 4 ); }
void release_A( void ) { kbd_key_released( 1, 4 ); }
void press_RSHIFT( void ) { kbd_key_pressed( 1, 5 ); }
void release_RSHIFT( void ) { kbd_key_released( 1, 5 ); }
void press_MULT( void ) { kbd_key_pressed( 2, 0 ); }
void release_MULT( void ) { kbd_key_released( 2, 0 ); }
void press_6( void ) { kbd_key_pressed( 2, 1 ); }
void release_6( void ) { kbd_key_released( 2, 1 ); }
void press_5( void ) { kbd_key_pressed( 2, 2 ); }
void release_5( void ) { kbd_key_released( 2, 2 ); }
void press_4( void ) { kbd_key_pressed( 2, 3 ); }
void release_4( void ) { kbd_key_released( 2, 3 ); }
void press_MTH( void ) { kbd_key_pressed( 2, 4 ); }
void release_MTH( void ) { kbd_key_released( 2, 4 ); }
void press_LSHIFT( void ) { kbd_key_pressed( 2, 5 ); }
void release_LSHIFT( void ) { kbd_key_released( 2, 5 ); }
void press_DIV( void ) { kbd_key_pressed( 3, 0 ); }
void release_DIV( void ) { kbd_key_released( 3, 0 ); }
void press_9( void ) { kbd_key_pressed( 3, 1 ); }
void release_9( void ) { kbd_key_released( 3, 1 ); }
void press_8( void ) { kbd_key_pressed( 3, 2 ); }
void release_8( void ) { kbd_key_released( 3, 2 ); }
void press_7( void ) { kbd_key_pressed( 3, 3 ); }
void release_7( void ) { kbd_key_released( 3, 3 ); }
void press_SIN( void ) { kbd_key_pressed( 3, 4 ); }
void release_SIN( void ) { kbd_key_released( 3, 4 ); }
void press_ALPHA( void ) { kbd_key_pressed( 3, 5 ); }
void release_ALPHA( void ) { kbd_key_released( 3, 5 ); }
void press_BKSP( void ) { kbd_key_pressed( 4, 0 ); }
void release_BKSP( void ) { kbd_key_released( 4, 0 ); }
void press_DEL( void ) { kbd_key_pressed( 4, 1 ); }
void release_DEL( void ) { kbd_key_released( 4, 1 ); }
void press_EEX( void ) { kbd_key_pressed( 4, 2 ); }
void release_EEX( void ) { kbd_key_released( 4, 2 ); }
void press_NEG( void ) { kbd_key_pressed( 4, 3 ); }
void release_NEG( void ) { kbd_key_released( 4, 3 ); }
void press_ENTER( void ) { kbd_key_pressed( 4, 4 ); }
void release_ENTER( void ) { kbd_key_released( 4, 4 ); }
void press_INV( void ) { kbd_key_pressed( 5, 0 ); }
void release_INV( void ) { kbd_key_released( 5, 0 ); }
void press_POW( void ) { kbd_key_pressed( 5, 1 ); }
void release_POW( void ) { kbd_key_released( 5, 1 ); }
void press_SQRT( void ) { kbd_key_pressed( 5, 2 ); }
void release_SQRT( void ) { kbd_key_released( 5, 2 ); }
void press_TAN( void ) { kbd_key_pressed( 5, 3 ); }
void release_TAN( void ) { kbd_key_released( 5, 3 ); }
void press_COS( void ) { kbd_key_pressed( 5, 4 ); }
void release_COS( void ) { kbd_key_released( 5, 4 ); }
void press_RIGHT( void ) { kbd_key_pressed( 6, 0 ); }
void release_RIGHT( void ) { kbd_key_released( 6, 0 ); }
void press_DOWN( void ) { kbd_key_pressed( 6, 1 ); }
void release_DOWN( void ) { kbd_key_released( 6, 1 ); }
void press_LEFT( void ) { kbd_key_pressed( 6, 2 ); }
void release_LEFT( void ) { kbd_key_released( 6, 2 ); }
void press_EVAL( void ) { kbd_key_pressed( 6, 3 ); }
void release_EVAL( void ) { kbd_key_released( 6, 3 ); }
void press_STO( void ) { kbd_key_pressed( 6, 4 ); }
void release_STO( void ) { kbd_key_released( 6, 4 ); }
void press_NXT( void ) { kbd_key_pressed( 7, 0 ); }
void release_NXT( void ) { kbd_key_released( 7, 0 ); }
void press_UP( void ) { kbd_key_pressed( 7, 1 ); }
void release_UP( void ) { kbd_key_released( 7, 1 ); }
void press_VAR( void ) { kbd_key_pressed( 7, 2 ); }
void release_VAR( void ) { kbd_key_released( 7, 2 ); }
void press_CST( void ) { kbd_key_pressed( 7, 3 ); }
void release_CST( void ) { kbd_key_released( 7, 3 ); }
void press_PRG( void ) { kbd_key_pressed( 7, 4 ); }
void release_PRG( void ) { kbd_key_released( 7, 4 ); }
void press_F( void ) { kbd_key_pressed( 8, 0 ); }
void release_F( void ) { kbd_key_released( 8, 0 ); }
void press_E( void ) { kbd_key_pressed( 8, 1 ); }
void release_E( void ) { kbd_key_released( 8, 1 ); }
void press_D( void ) { kbd_key_pressed( 8, 2 ); }
void release_D( void ) { kbd_key_released( 8, 2 ); }
void press_C( void ) { kbd_key_pressed( 8, 3 ); }
void release_C( void ) { kbd_key_released( 8, 3 ); }
void press_B( void ) { kbd_key_pressed( 8, 4 ); }
void release_B( void ) { kbd_key_released( 8, 4 ); }
void press_ON( void ) { kbd_on_pressed(); }
void release_ON( void ) { kbd_on_released(); }
void press_LoadFile( void ) {}
void release_LoadFile( void ) { load_file_on_stack( "zeldahp.dir" ); }

View file

@ -7,105 +7,4 @@
extern Button calc_buttons[];
extern void press_PLUS( void );
extern void release_PLUS( void );
extern void press_SPC( void );
extern void release_SPC( void );
extern void press_PERIOD( void );
extern void release_PERIOD( void );
extern void press_0( void );
extern void release_0( void );
extern void press_QUOTE( void );
extern void release_QUOTE( void );
extern void press_MINUS( void );
extern void release_MINUS( void );
extern void press_3( void );
extern void release_3( void );
extern void press_2( void );
extern void release_2( void );
extern void press_1( void );
extern void release_1( void );
extern void press_A( void );
extern void release_A( void );
extern void press_RSHIFT( void );
extern void release_RSHIFT( void );
extern void press_MULT( void );
extern void release_MULT( void );
extern void press_6( void );
extern void release_6( void );
extern void press_5( void );
extern void release_5( void );
extern void press_4( void );
extern void release_4( void );
extern void press_MTH( void );
extern void release_MTH( void );
extern void press_LSHIFT( void );
extern void release_LSHIFT( void );
extern void press_DIV( void );
extern void release_DIV( void );
extern void press_9( void );
extern void release_9( void );
extern void press_8( void );
extern void release_8( void );
extern void press_7( void );
extern void release_7( void );
extern void press_SIN( void );
extern void release_SIN( void );
extern void press_ALPHA( void );
extern void release_ALPHA( void );
extern void press_BKSP( void );
extern void release_BKSP( void );
extern void press_DEL( void );
extern void release_DEL( void );
extern void press_EEX( void );
extern void release_EEX( void );
extern void press_NEG( void );
extern void release_NEG( void );
extern void press_ENTER( void );
extern void release_ENTER( void );
extern void press_INV( void );
extern void release_INV( void );
extern void press_POW( void );
extern void release_POW( void );
extern void press_SQRT( void );
extern void release_SQRT( void );
extern void press_TAN( void );
extern void release_TAN( void );
extern void press_COS( void );
extern void release_COS( void );
extern void press_RIGHT( void );
extern void release_RIGHT( void );
extern void press_DOWN( void );
extern void release_DOWN( void );
extern void press_LEFT( void );
extern void release_LEFT( void );
extern void press_EVAL( void );
extern void release_EVAL( void );
extern void press_STO( void );
extern void release_STO( void );
extern void press_NXT( void );
extern void release_NXT( void );
extern void press_UP( void );
extern void release_UP( void );
extern void press_VAR( void );
extern void release_VAR( void );
extern void press_CST( void );
extern void release_CST( void );
extern void press_PRG( void );
extern void release_PRG( void );
extern void press_F( void );
extern void release_F( void );
extern void press_E( void );
extern void release_E( void );
extern void press_D( void );
extern void release_D( void );
extern void press_C( void );
extern void release_C( void );
extern void press_B( void );
extern void release_B( void );
extern void press_ON( void );
extern void release_ON( void );
extern void press_LoadFile( void );
extern void release_LoadFile( void );
#endif

View file

@ -1,7 +1,7 @@
#include "types.h"
#include "cpu.h"
#include "keyboard.h"
#include "files.h"
bool kbd_on;
static byte kbd_row[ 9 ];
@ -66,7 +66,104 @@ void kbd_key_released( int row, int col )
cpu.keyintp = false;
}
void kbd_on_pressed( void )
void press_PLUS( void ) { kbd_key_pressed( 0, 0 ); }
void release_PLUS( void ) { kbd_key_released( 0, 0 ); }
void press_SPC( void ) { kbd_key_pressed( 0, 1 ); }
void release_SPC( void ) { kbd_key_released( 0, 1 ); }
void press_PERIOD( void ) { kbd_key_pressed( 0, 2 ); }
void release_PERIOD( void ) { kbd_key_released( 0, 2 ); }
void press_0( void ) { kbd_key_pressed( 0, 3 ); }
void release_0( void ) { kbd_key_released( 0, 3 ); }
void press_QUOTE( void ) { kbd_key_pressed( 0, 4 ); }
void release_QUOTE( void ) { kbd_key_released( 0, 4 ); }
void press_MINUS( void ) { kbd_key_pressed( 1, 0 ); }
void release_MINUS( void ) { kbd_key_released( 1, 0 ); }
void press_3( void ) { kbd_key_pressed( 1, 1 ); }
void release_3( void ) { kbd_key_released( 1, 1 ); }
void press_2( void ) { kbd_key_pressed( 1, 2 ); }
void release_2( void ) { kbd_key_released( 1, 2 ); }
void press_1( void ) { kbd_key_pressed( 1, 3 ); }
void release_1( void ) { kbd_key_released( 1, 3 ); }
void press_A( void ) { kbd_key_pressed( 1, 4 ); }
void release_A( void ) { kbd_key_released( 1, 4 ); }
void press_RSHIFT( void ) { kbd_key_pressed( 1, 5 ); }
void release_RSHIFT( void ) { kbd_key_released( 1, 5 ); }
void press_MULT( void ) { kbd_key_pressed( 2, 0 ); }
void release_MULT( void ) { kbd_key_released( 2, 0 ); }
void press_6( void ) { kbd_key_pressed( 2, 1 ); }
void release_6( void ) { kbd_key_released( 2, 1 ); }
void press_5( void ) { kbd_key_pressed( 2, 2 ); }
void release_5( void ) { kbd_key_released( 2, 2 ); }
void press_4( void ) { kbd_key_pressed( 2, 3 ); }
void release_4( void ) { kbd_key_released( 2, 3 ); }
void press_MTH( void ) { kbd_key_pressed( 2, 4 ); }
void release_MTH( void ) { kbd_key_released( 2, 4 ); }
void press_LSHIFT( void ) { kbd_key_pressed( 2, 5 ); }
void release_LSHIFT( void ) { kbd_key_released( 2, 5 ); }
void press_DIV( void ) { kbd_key_pressed( 3, 0 ); }
void release_DIV( void ) { kbd_key_released( 3, 0 ); }
void press_9( void ) { kbd_key_pressed( 3, 1 ); }
void release_9( void ) { kbd_key_released( 3, 1 ); }
void press_8( void ) { kbd_key_pressed( 3, 2 ); }
void release_8( void ) { kbd_key_released( 3, 2 ); }
void press_7( void ) { kbd_key_pressed( 3, 3 ); }
void release_7( void ) { kbd_key_released( 3, 3 ); }
void press_SIN( void ) { kbd_key_pressed( 3, 4 ); }
void release_SIN( void ) { kbd_key_released( 3, 4 ); }
void press_ALPHA( void ) { kbd_key_pressed( 3, 5 ); }
void release_ALPHA( void ) { kbd_key_released( 3, 5 ); }
void press_BKSP( void ) { kbd_key_pressed( 4, 0 ); }
void release_BKSP( void ) { kbd_key_released( 4, 0 ); }
void press_DEL( void ) { kbd_key_pressed( 4, 1 ); }
void release_DEL( void ) { kbd_key_released( 4, 1 ); }
void press_EEX( void ) { kbd_key_pressed( 4, 2 ); }
void release_EEX( void ) { kbd_key_released( 4, 2 ); }
void press_NEG( void ) { kbd_key_pressed( 4, 3 ); }
void release_NEG( void ) { kbd_key_released( 4, 3 ); }
void press_ENTER( void ) { kbd_key_pressed( 4, 4 ); }
void release_ENTER( void ) { kbd_key_released( 4, 4 ); }
void press_INV( void ) { kbd_key_pressed( 5, 0 ); }
void release_INV( void ) { kbd_key_released( 5, 0 ); }
void press_POW( void ) { kbd_key_pressed( 5, 1 ); }
void release_POW( void ) { kbd_key_released( 5, 1 ); }
void press_SQRT( void ) { kbd_key_pressed( 5, 2 ); }
void release_SQRT( void ) { kbd_key_released( 5, 2 ); }
void press_TAN( void ) { kbd_key_pressed( 5, 3 ); }
void release_TAN( void ) { kbd_key_released( 5, 3 ); }
void press_COS( void ) { kbd_key_pressed( 5, 4 ); }
void release_COS( void ) { kbd_key_released( 5, 4 ); }
void press_RIGHT( void ) { kbd_key_pressed( 6, 0 ); }
void release_RIGHT( void ) { kbd_key_released( 6, 0 ); }
void press_DOWN( void ) { kbd_key_pressed( 6, 1 ); }
void release_DOWN( void ) { kbd_key_released( 6, 1 ); }
void press_LEFT( void ) { kbd_key_pressed( 6, 2 ); }
void release_LEFT( void ) { kbd_key_released( 6, 2 ); }
void press_EVAL( void ) { kbd_key_pressed( 6, 3 ); }
void release_EVAL( void ) { kbd_key_released( 6, 3 ); }
void press_STO( void ) { kbd_key_pressed( 6, 4 ); }
void release_STO( void ) { kbd_key_released( 6, 4 ); }
void press_NXT( void ) { kbd_key_pressed( 7, 0 ); }
void release_NXT( void ) { kbd_key_released( 7, 0 ); }
void press_UP( void ) { kbd_key_pressed( 7, 1 ); }
void release_UP( void ) { kbd_key_released( 7, 1 ); }
void press_VAR( void ) { kbd_key_pressed( 7, 2 ); }
void release_VAR( void ) { kbd_key_released( 7, 2 ); }
void press_CST( void ) { kbd_key_pressed( 7, 3 ); }
void release_CST( void ) { kbd_key_released( 7, 3 ); }
void press_PRG( void ) { kbd_key_pressed( 7, 4 ); }
void release_PRG( void ) { kbd_key_released( 7, 4 ); }
void press_F( void ) { kbd_key_pressed( 8, 0 ); }
void release_F( void ) { kbd_key_released( 8, 0 ); }
void press_E( void ) { kbd_key_pressed( 8, 1 ); }
void release_E( void ) { kbd_key_released( 8, 1 ); }
void press_D( void ) { kbd_key_pressed( 8, 2 ); }
void release_D( void ) { kbd_key_released( 8, 2 ); }
void press_C( void ) { kbd_key_pressed( 8, 3 ); }
void release_C( void ) { kbd_key_released( 8, 3 ); }
void press_B( void ) { kbd_key_pressed( 8, 4 ); }
void release_B( void ) { kbd_key_released( 8, 4 ); }
void press_ON( void )
{
bool no_key = !cpu.in[ 3 ];
kbd_on = true;
@ -78,8 +175,11 @@ void kbd_on_pressed( void )
cpu_interrupt();
}
void kbd_on_released( void )
void release_ON( void )
{
kbd_on = false;
cpu.in[ 3 ] &= ~8;
}
void press_LoadFile( void ) {}
void release_LoadFile( void ) { load_file_on_stack( "zeldahp.dir" ); }

View file

@ -8,7 +8,106 @@ extern bool kbd_on;
extern void kbd_out_changed( void );
extern void kbd_key_pressed( int row, int col );
extern void kbd_key_released( int row, int col );
extern void kbd_on_pressed( void );
extern void kbd_on_released( void );
extern void press_PLUS( void );
extern void release_PLUS( void );
extern void press_SPC( void );
extern void release_SPC( void );
extern void press_PERIOD( void );
extern void release_PERIOD( void );
extern void press_0( void );
extern void release_0( void );
extern void press_QUOTE( void );
extern void release_QUOTE( void );
extern void press_MINUS( void );
extern void release_MINUS( void );
extern void press_3( void );
extern void release_3( void );
extern void press_2( void );
extern void release_2( void );
extern void press_1( void );
extern void release_1( void );
extern void press_A( void );
extern void release_A( void );
extern void press_RSHIFT( void );
extern void release_RSHIFT( void );
extern void press_MULT( void );
extern void release_MULT( void );
extern void press_6( void );
extern void release_6( void );
extern void press_5( void );
extern void release_5( void );
extern void press_4( void );
extern void release_4( void );
extern void press_MTH( void );
extern void release_MTH( void );
extern void press_LSHIFT( void );
extern void release_LSHIFT( void );
extern void press_DIV( void );
extern void release_DIV( void );
extern void press_9( void );
extern void release_9( void );
extern void press_8( void );
extern void release_8( void );
extern void press_7( void );
extern void release_7( void );
extern void press_SIN( void );
extern void release_SIN( void );
extern void press_ALPHA( void );
extern void release_ALPHA( void );
extern void press_BKSP( void );
extern void release_BKSP( void );
extern void press_DEL( void );
extern void release_DEL( void );
extern void press_EEX( void );
extern void release_EEX( void );
extern void press_NEG( void );
extern void release_NEG( void );
extern void press_ENTER( void );
extern void release_ENTER( void );
extern void press_INV( void );
extern void release_INV( void );
extern void press_POW( void );
extern void release_POW( void );
extern void press_SQRT( void );
extern void release_SQRT( void );
extern void press_TAN( void );
extern void release_TAN( void );
extern void press_COS( void );
extern void release_COS( void );
extern void press_RIGHT( void );
extern void release_RIGHT( void );
extern void press_DOWN( void );
extern void release_DOWN( void );
extern void press_LEFT( void );
extern void release_LEFT( void );
extern void press_EVAL( void );
extern void release_EVAL( void );
extern void press_STO( void );
extern void release_STO( void );
extern void press_NXT( void );
extern void release_NXT( void );
extern void press_UP( void );
extern void release_UP( void );
extern void press_VAR( void );
extern void release_VAR( void );
extern void press_CST( void );
extern void release_CST( void );
extern void press_PRG( void );
extern void release_PRG( void );
extern void press_F( void );
extern void release_F( void );
extern void press_E( void );
extern void release_E( void );
extern void press_D( void );
extern void release_D( void );
extern void press_C( void );
extern void release_C( void );
extern void press_B( void );
extern void release_B( void );
extern void press_ON( void );
extern void release_ON( void );
extern void press_LoadFile( void );
extern void release_LoadFile( void );
#endif