libx48ng/src/emulator_inner.h
2024-06-05 15:05:50 +02:00

92 lines
3.3 KiB
C

#ifndef _EMULATOR_INNER_H
#define _EMULATOR_INNER_H 1
#include "emulator.h"
#define OUT_FIELD 17
extern device_t device;
extern int set_t1;
extern long sched_adjtime;
extern long schedule_event;
extern bool device_check;
extern bool port1_is_ram;
extern long port1_mask;
extern bool port2_is_ram;
extern long port2_mask;
extern bool adj_time_pending;
#define NB_FIELDS 19
extern int start_fields[ NB_FIELDS ];
extern int end_fields[ NB_FIELDS ];
/***************/
/* emu_timer.c */
/***************/
extern void restart_timer( int timer );
extern word_64 get_timer( int timer );
/*****************/
/* emu_emulate.c */
/*****************/
extern void do_interupt( void );
extern void do_kbd_int( void );
/********************/
/* emu_memory.c */
/********************/
extern void ( *write_nibble )( long addr, int val );
extern int ( *read_nibble_crc )( long addr );
/****************/
/* emu_memory.c */
/****************/
extern void dev_memory_init( void ); /* */
/******************/
/* emu_register.c */
/******************/
extern int get_start( int code );
extern int get_end( int code );
extern void add_p_plus_one( unsigned char* r );
extern void add_register_constant( unsigned char* res, int code, int val );
extern void sub_register_constant( unsigned char* res, int code, int val );
extern void add_register( unsigned char* res, unsigned char* r1, unsigned char* r2, int code );
extern void sub_register( unsigned char* res, unsigned char* r1, unsigned char* r2, int code );
extern void complement_2_register( unsigned char* r, int code );
extern void complement_1_register( unsigned char* r, int code );
extern void inc_register( unsigned char* r, int code );
extern void dec_register( unsigned char* r, int code );
extern void zero_register( unsigned char* r, int code );
extern void or_register( unsigned char* res, unsigned char* r1, unsigned char* r2, int code );
extern void and_register( unsigned char* res, unsigned char* r1, unsigned char* r2, int code );
extern void copy_register( unsigned char* to, unsigned char* from, int code );
extern void exchange_register( unsigned char* r1, unsigned char* r2, int code );
extern void exchange_reg( unsigned char* r, word_20* d, int code );
extern void shift_left_register( unsigned char* r, int code );
extern void shift_left_circ_register( unsigned char* r, int code );
extern void shift_right_register( unsigned char* r, int code );
extern void shift_right_circ_register( unsigned char* r, int code );
extern void shift_right_bit_register( unsigned char* r, int code );
extern int is_zero_register( unsigned char* r, int code );
extern int is_not_zero_register( unsigned char* r, int code );
extern int is_equal_register( unsigned char* r1, unsigned char* r2, int code );
extern int is_not_equal_register( unsigned char* r1, unsigned char* r2, int code );
extern int is_less_register( unsigned char* r1, unsigned char* r2, int code );
extern int is_less_or_equal_register( unsigned char* r1, unsigned char* r2, int code );
extern int is_greater_register( unsigned char* r1, unsigned char* r2, int code );
extern int is_greater_or_equal_register( unsigned char* r1, unsigned char* r2, int code );
/****************/
/* emu_serial.c */
/****************/
extern void serial_baud( int baud );
extern void transmit_char( void );
extern void receive_char( void );
extern int init_serial( void ); /* used in main.c */
#endif /* _EMULATOR_INNER_H */