blob: df4786f4164a08dff70b98e9d4e270f96abbbd8d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
// license:BSD-3-Clause
// copyright-holders:Juergen Buchmueller
/*****************************************************************************
*
* Xerox AltoII display vertical task
*
*****************************************************************************/
#include "emu.h"
#include "alto2cpu.h"
/*
* Copied from ALTOCODE24.MU
*
* ;Display Vertical Task
*
* DVT: MAR← L← DASTART+1;
* CBA← L, L← 0;
* CURDATA← L;
* SLC← L;
* T← MD; CAUSE A VERTICAL FIELD INTERRUPT
* L← NWW OR T;
* MAR← CURLOC; SET UP THE CURSOR
* NWW← L, T← 0-1;
* L← MD XOR T; HARDWARE EXPECTS X COMPLEMENTED
* T← MD, EVENFIELD;
* CURX← L, :DVT1;
*
* DVT1: L← BIAS-T-1, TASK, :DVT2; BIAS THE Y COORDINATE
* DVT11: L← BIAS-T, TASK;
*
* DVT2: YPOS← L, :DVT;
*/
/**
* @brief f1_dvt_block early: disable the display word task
*/
void alto2_cpu_device::f1_early_dvt_block()
{
// m_task_wakeup &= ~(1 << m_task);
LOG((this,LOG_DVT,2," BLOCK %s\n", task_name(m_task)));
}
/**
* @brief called by the CPU when the display vertical task becomes active
*/
void alto2_cpu_device::activate_dvt()
{
m_task_wakeup &= ~(1 << m_task);
}
/**
* @brief initialize display vertical task
*/
void alto2_cpu_device::init_dvt(int task)
{
}
void alto2_cpu_device::exit_dvt()
{
// nothing to do yet
}
void alto2_cpu_device::reset_dvt()
{
// nothing to do yet
}
|