1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 23:52:26 +00:00

Disabled some debugging parts, added some others, marked some things as inline. Ticking over.

This commit is contained in:
Thomas Harte 2016-02-22 23:35:42 -05:00
parent 4b28e7b974
commit 1eea28b692
3 changed files with 12 additions and 13 deletions

View File

@ -184,6 +184,7 @@ unsigned int Machine::perform_bus_operation(CPU6502::BusOperation operation, uin
if(new_screen_mode == 7) new_screen_mode = 4; if(new_screen_mode == 7) new_screen_mode = 4;
if(new_screen_mode != _screen_mode) if(new_screen_mode != _screen_mode)
{ {
printf("To mode %d, %d cycles into field (%d)\n", new_screen_mode, _fieldCycles, _fieldCycles >> 7);
update_display(); update_display();
_screen_mode = new_screen_mode; _screen_mode = new_screen_mode;
switch(_screen_mode) switch(_screen_mode)
@ -491,7 +492,6 @@ inline void Machine::end_pixel_output()
inline void Machine::update_pixels_to_position(int x, int y) inline void Machine::update_pixels_to_position(int x, int y)
{ {
static unsigned int end;
while((display_x < x) || (display_y < y)) while((display_x < x) || (display_y < y))
{ {
if(display_x < first_graphics_cycle) if(display_x < first_graphics_cycle)
@ -502,7 +502,6 @@ inline void Machine::update_pixels_to_position(int x, int y)
{ {
_crt->output_sync(9 * crt_cycles_multiplier); _crt->output_sync(9 * crt_cycles_multiplier);
_crt->output_blank((first_graphics_cycle - 9) * crt_cycles_multiplier); _crt->output_blank((first_graphics_cycle - 9) * crt_cycles_multiplier);
end = _crt->get_field_cycle();
_currentScreenAddress = _startLineAddress; _currentScreenAddress = _startLineAddress;
} }
continue; continue;

View File

@ -138,7 +138,7 @@ void CRT::draw_frame(unsigned int output_width, unsigned int output_height, bool
if(_openGL_state->verticesPerSlice < max_number_of_vertices) if(_openGL_state->verticesPerSlice < max_number_of_vertices)
{ {
_openGL_state->verticesPerSlice = max_number_of_vertices; _openGL_state->verticesPerSlice = max_number_of_vertices;
glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)(max_number_of_vertices * kCRTSizeOfVertex * kCRTNumberOfFrames), NULL, GL_DYNAMIC_DRAW); glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)(max_number_of_vertices * kCRTSizeOfVertex * kCRTNumberOfFrames), NULL, GL_STREAM_DRAW);
for(unsigned int c = 0; c < kCRTNumberOfFrames; c++) for(unsigned int c = 0; c < kCRTNumberOfFrames; c++)
{ {

View File

@ -167,7 +167,7 @@ template <class T> class Processor {
@param program The program to schedule. @param program The program to schedule.
*/ */
void schedule_program(const MicroOp *program) inline void schedule_program(const MicroOp *program)
{ {
_scheduledPrograms[_scheduleProgramsWritePointer] = program; _scheduledPrograms[_scheduleProgramsWritePointer] = program;
_scheduleProgramsWritePointer = (_scheduleProgramsWritePointer+1)&3; _scheduleProgramsWritePointer = (_scheduleProgramsWritePointer+1)&3;
@ -207,7 +207,7 @@ template <class T> class Processor {
@param operation The operation code for which to schedule a program. @param operation The operation code for which to schedule a program.
*/ */
void decode_operation(uint8_t operation) inline void decode_operation(uint8_t operation)
{ {
#define Program(...) {__VA_ARGS__, OperationMoveToNextProgram} #define Program(...) {__VA_ARGS__, OperationMoveToNextProgram}
@ -461,7 +461,7 @@ template <class T> class Processor {
@returns The program representing an RST response. @returns The program representing an RST response.
*/ */
const MicroOp *get_reset_program() { inline const MicroOp *get_reset_program() {
static const MicroOp reset[] = { static const MicroOp reset[] = {
CycleFetchOperand, CycleFetchOperand,
CycleFetchOperand, CycleFetchOperand,
@ -480,7 +480,7 @@ template <class T> class Processor {
@returns The program representing an IRQ response. @returns The program representing an IRQ response.
*/ */
const MicroOp *get_irq_program() { inline const MicroOp *get_irq_program() {
static const MicroOp reset[] = { static const MicroOp reset[] = {
CyclePushPCH, CyclePushPCH,
CyclePushPCL, CyclePushPCL,
@ -1104,7 +1104,7 @@ template <class T> class Processor {
@param active @c true if the line is logically active; @c false otherwise. @param active @c true if the line is logically active; @c false otherwise.
*/ */
void set_ready_line(bool active) inline void set_ready_line(bool active)
{ {
if(active) if(active)
_ready_line_is_enabled = true; _ready_line_is_enabled = true;
@ -1120,7 +1120,7 @@ template <class T> class Processor {
@param active @c true if the line is logically active; @c false otherwise. @param active @c true if the line is logically active; @c false otherwise.
*/ */
void set_reset_line(bool active) inline void set_reset_line(bool active)
{ {
_reset_line_is_enabled = active; _reset_line_is_enabled = active;
} }
@ -1130,7 +1130,7 @@ template <class T> class Processor {
@param active @c true if the line is logically active; @c false otherwise. @param active @c true if the line is logically active; @c false otherwise.
*/ */
void set_irq_line(bool active) inline void set_irq_line(bool active)
{ {
_irq_line_is_enabled = active; _irq_line_is_enabled = active;
} }
@ -1140,7 +1140,7 @@ template <class T> class Processor {
@param active `true` if the line is logically active; `false` otherwise. @param active `true` if the line is logically active; `false` otherwise.
*/ */
void set_nmi_line(bool active) inline void set_nmi_line(bool active)
{ {
// TODO: NMI is edge triggered, not level, and in any case _nmi_line_is_enabled // TODO: NMI is edge triggered, not level, and in any case _nmi_line_is_enabled
// is not honoured elsewhere. So NMI is yet to be implemented. // is not honoured elsewhere. So NMI is yet to be implemented.
@ -1153,7 +1153,7 @@ template <class T> class Processor {
@returns @c true if the 6502 is jammed; @c false otherwise. @returns @c true if the 6502 is jammed; @c false otherwise.
*/ */
bool is_jammed() inline bool is_jammed()
{ {
return _is_jammed; return _is_jammed;
} }
@ -1163,7 +1163,7 @@ template <class T> class Processor {
@param handler The class instance that will be this 6502's jam handler from now on. @param handler The class instance that will be this 6502's jam handler from now on.
*/ */
void set_jam_handler(JamHandler *handler) inline void set_jam_handler(JamHandler *handler)
{ {
_jam_handler = handler; _jam_handler = handler;
} }