@nataliapc/mcp-openmsx 1.1.5 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/server.js +110 -23
- package/dist/utils.js +17 -0
- package/package.json +4 -1
- package/resources/audio/toc.json +31 -0
- package/resources/bios/Calling_BIOS_from_MSX-DOS.md +75 -0
- package/resources/bios/MSX2_SUBROM_BIOS_calls.md +734 -0
- package/resources/bios/MSX_BIOS_calls.md +1046 -0
- package/resources/bios/toc.json +24 -0
- package/resources/book--msx2-technical-handbook/Appendix1__BIOS_Listing.md +1464 -0
- package/resources/book--msx2-technical-handbook/Appendix2__Math-Pack.md +427 -0
- package/resources/book--msx2-technical-handbook/Appendix3__Bit_Block_Transfer.md +182 -0
- package/resources/book--msx2-technical-handbook/Appendix4__Work_Area_Listing.md +1637 -0
- package/resources/book--msx2-technical-handbook/Appendix5__VRAM_Map.md +145 -0
- package/resources/book--msx2-technical-handbook/Appendix6__IO_Map.md +128 -0
- package/resources/book--msx2-technical-handbook/Appendix8_10__Control_Codes_and_Escape_Sequences.md +76 -0
- package/resources/book--msx2-technical-handbook/Chapter1__MSX_System_Overview.md +402 -0
- package/resources/book--msx2-technical-handbook/Chapter2__BASIC.md +2148 -0
- package/resources/book--msx2-technical-handbook/Chapter3__MSX-DOS.md +2577 -0
- package/resources/book--msx2-technical-handbook/Chapter4a__VDP_and_Display_Screen.md +2052 -0
- package/resources/book--msx2-technical-handbook/Chapter4b__VDP_and_Display_Screen.md +3311 -0
- package/resources/book--msx2-technical-handbook/Chapter5a__Access_to_Peripherals_through_BIOS.md +2714 -0
- package/resources/book--msx2-technical-handbook/Chapter5b__Access_to_Peripherals_through_BIOS.md +1263 -0
- package/resources/book--msx2-technical-handbook/MSX_Kun_BASIC_Compiler.md +220 -0
- package/resources/book--msx2-technical-handbook/toc.json +82 -0
- package/resources/book--the-msx-red-book/the_msx_red_book.md +10349 -0
- package/resources/book--the-msx-red-book/toc.json +12 -0
- package/resources/msx-dos/MSX-DOS_2_Function_Specifications.md +1366 -0
- package/resources/msx-dos/MSX-DOS_2_Program_Interface_Specification.md +963 -0
- package/resources/msx-dos/toc.json +18 -0
- package/resources/msx-unapi/Ethernet_UNAPI_specification_1.1.md +369 -0
- package/resources/msx-unapi/Introduction_to_MSX-UNAPI.md +132 -0
- package/resources/msx-unapi/MSX_UNAPI_specification_1.1.md +679 -0
- package/resources/msx-unapi/TCP-IP_UNAPI_specification.md +2361 -0
- package/resources/msx-unapi/toc.json +27 -0
- package/resources/others/toc.json +11 -0
- package/resources/processors/Z80_R800_instruction_set.md +482 -0
- package/resources/processors/toc.json +24 -0
- package/resources/processors/z80-undocumented.tex +5617 -0
- package/resources/processors/z80_detailed_instruction_set.md +2025 -0
- package/resources/programming/toc.json +121 -0
- package/resources/system/MSX_IO_ports_overview.md +554 -0
- package/resources/system/toc.json +18 -0
- package/resources/video/V9938_Technical_Data_Book.md +3623 -0
- package/resources/video/V9958_Technical_Data_Book.md +417 -0
- package/resources/video/V9990_Programmers_Manual_Banzai.html +1582 -0
- package/resources/video/VDP_TMS9918A.txt +709 -0
- package/resources/video/toc.json +28 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "The MSX UNAPI specification",
|
|
3
|
+
"description": "MSX-UNAPI is a standard procedure for defining, discovering and using new APIs (Application Program Interfaces) for MSX computers, intended primarly (but not exclusively) to allow hardware manufacturers to provide consistent and standarized APIs. UNAPI is short for 'UNified API definition and discovery procedure'.",
|
|
4
|
+
"external_url": "https://github.com/Konamiman/MSX-UNAPI-specification",
|
|
5
|
+
"toc": [
|
|
6
|
+
{
|
|
7
|
+
"title": "Introduction to MSX-UNAPI",
|
|
8
|
+
"uri": "msxdocs://msx-unapi/Introduction_to_MSX-UNAPI",
|
|
9
|
+
"description": "This document introduces MSX-UNAPI, a standard procedure for defining, discovering and using new APIs (Application Program Interfaces) for MSX computers."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"title": "MSX-UNAPI specification 1.1",
|
|
13
|
+
"uri": "msxdocs://msx-unapi/MSX_UNAPI_specification_1.1",
|
|
14
|
+
"description": "The full core specification document, covering all the details on how to design an API, how to implement it, and how to discover and consume it from a client application."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"title": "Ethernet UNAPI specification",
|
|
18
|
+
"uri": "msxdocs://msx-unapi/Ethernet_UNAPI_specification_1.1",
|
|
19
|
+
"description": "The specification of an API for Ethernet cards. This describes an UNAPI compliant API specification for Ethernet hardware for MSX computers."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"title": "TCP/IP UNAPI specification",
|
|
23
|
+
"uri": "msxdocs://msx-unapi/TCP-IP_UNAPI_specification",
|
|
24
|
+
"description": "This document describes an UNAPI compliant API intended for software that implements a TCP/IP stack, that is, software that provides networking capabilities by using the IP family of protocols. The functionality provided by this API is focused mainly on communicating with other computers by using the TCP and UDP protocols, but there are also some additional routines that allow for example performing domain name resolution by querying DNS servers."
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "More MSX Technical Info",
|
|
3
|
+
"description": "More MSX Technical Info",
|
|
4
|
+
"toc": [
|
|
5
|
+
{
|
|
6
|
+
"title": "MemMan v2.32 TSR Development Kit",
|
|
7
|
+
"uri": "https://map.grauw.nl/resources/tsrdev_en.php",
|
|
8
|
+
"description": "Development kit documentation for MemMan 2.32 TSR (Terminate and Stay Resident) programs on MSX2 systems. Covers new XTsrCall function (61), improved memory allocation with DOS2 RAMdisk support, enhanced Info function (50) for direct entry addresses, enlarged internal stack (240 bytes), and direct function calling methods to improve TSR program performance by bypassing EXTBIO hook overhead."
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
# Z80 / R800 instruction set
|
|
2
|
+
|
|
3
|
+
This is an overview of the Z80 instruction set, including undocumented instructions and the R800 `MULUB` and `MULUW` instructions. Refer to the Z80 user manual for a detailed explanation of the instruction set. For more information on undocument instructions, refer to Sean Young’s extensive [The Undocumented Z80 Documented](msxdocs://processors/z80-undocumented).
|
|
4
|
+
|
|
5
|
+
For Z80 timing calculations on MSX, refer to the Z80+M1 column which includes the M1 waits. For more information, see the [wait cycles](#wait-cycles) section.
|
|
6
|
+
|
|
7
|
+
- [Instruction set](#instruction-set)
|
|
8
|
+
- [Legend](#legend)
|
|
9
|
+
- [Wait cycles](#wait-cycles)
|
|
10
|
+
|
|
11
|
+
## Instruction set
|
|
12
|
+
|
|
13
|
+
| Instruction | Timing Z80 | Timing Z80+M1 | Timing R800 | Timing R800 + wait [¹](#note-1) | Opcode | Size |
|
|
14
|
+
|---|---|---|---|---|---|---|
|
|
15
|
+
|ADC A,(HL)|7|8|2|4|8E|1|
|
|
16
|
+
|ADC A,(IX+o)|19|21|5|7|DD 8E o|3|
|
|
17
|
+
|ADC A,(IY+o)|19|21|5|7|FD 8E o|3|
|
|
18
|
+
|ADC A,n|7|8|2|2|CE n|2|
|
|
19
|
+
|ADC A,r|4|5|1|1|88+r|1|
|
|
20
|
+
|ADC A,IXp|8|10|2|2|DD 88+p|2|
|
|
21
|
+
|ADC A,IYq|8|10|2|2|FD 88+q|2|
|
|
22
|
+
|ADC HL,BC|15|17|2|2|ED 4A|2|
|
|
23
|
+
|ADC HL,DE|15|17|2|2|ED 5A|2|
|
|
24
|
+
|ADC HL,HL|15|17|2|2|ED 6A|2|
|
|
25
|
+
|ADC HL,SP|15|17|2|2|ED 7A|2|
|
|
26
|
+
|ADD A,(HL)|7|8|2|4|86|1|
|
|
27
|
+
|ADD A,(IX+o)|19|21|5|7|DD 86 o|3|
|
|
28
|
+
|ADD A,(IY+o)|19|21|5|7|FD 86 o|3|
|
|
29
|
+
|ADD A,n|7|8|2|2|C6 n|2|
|
|
30
|
+
|ADD A,r|4|5|1|1|80+r|1|
|
|
31
|
+
|ADD A,IXp|8|10|2|2|DD 80+p|2|
|
|
32
|
+
|ADD A,IYq|8|10|2|2|FD 80+q|2|
|
|
33
|
+
|ADD HL,BC|11|12|1|1|09|1|
|
|
34
|
+
|ADD HL,DE|11|12|1|1|19|1|
|
|
35
|
+
|ADD HL,HL|11|12|1|1|29|1|
|
|
36
|
+
|ADD HL,SP|11|12|1|1|39|1|
|
|
37
|
+
|ADD IX,BC|15|17|2|2|DD 09|2|
|
|
38
|
+
|ADD IX,DE|15|17|2|2|DD 19|2|
|
|
39
|
+
|ADD IX,IX|15|17|2|2|DD 29|2|
|
|
40
|
+
|ADD IX,SP|15|17|2|2|DD 39|2|
|
|
41
|
+
|ADD IY,BC|15|17|2|2|FD 09|2|
|
|
42
|
+
|ADD IY,DE|15|17|2|2|FD 19|2|
|
|
43
|
+
|ADD IY,IY|15|17|2|2|FD 29|2|
|
|
44
|
+
|ADD IY,SP|15|17|2|2|FD 39|2|
|
|
45
|
+
|AND (HL)|7|8|2|4|A6|1|
|
|
46
|
+
|AND (IX+o)|19|21|5|7|DD A6 o|3|
|
|
47
|
+
|AND (IY+o)|19|21|5|7|FD A6 o|3|
|
|
48
|
+
|AND n|7|8|2|2|E6 n|2|
|
|
49
|
+
|AND r|4|5|1|1|A0+r|1|
|
|
50
|
+
|AND IXp|8|10|2|2|DD A0+p|2|
|
|
51
|
+
|AND IYq|8|10|2|2|FD A0+q|2|
|
|
52
|
+
|BIT b,(HL)|12|14|3|5|CB 46+8\*b|2|
|
|
53
|
+
|BIT b,(IX+o)|20|22|5|7|DD CB o 46+8\*b|4|
|
|
54
|
+
|BIT b,(IY+o)|20|22|5|7|FD CB o 46+8\*b|4|
|
|
55
|
+
|BIT b,r|8|10|2|2|CB 40+8\*b+r|2|
|
|
56
|
+
|CALL nn|17|18|5|8/7 [²](#note-2)|CD nn nn|3|
|
|
57
|
+
|CALL C,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|DC nn nn|3|
|
|
58
|
+
|CALL M,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|FC nn nn|3|
|
|
59
|
+
|CALL NC,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|D4 nn nn|3|
|
|
60
|
+
|CALL NZ,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|C4 nn nn|3|
|
|
61
|
+
|CALL P,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|F4 nn nn|3|
|
|
62
|
+
|CALL PE,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|EC nn nn|3|
|
|
63
|
+
|CALL PO,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|E4 nn nn|3|
|
|
64
|
+
|CALL Z,nn|17/10|18/11|5/3|8/7/3 [²](#note-2)|CC nn nn|3|
|
|
65
|
+
|CCF|4|5|1|1|3F|1|
|
|
66
|
+
|CP (HL)|7|8|2|4|BE|1|
|
|
67
|
+
|CP (IX+o)|19|21|5|7|DD BE o|3|
|
|
68
|
+
|CP (IY+o)|19|21|5|7|FD BE o|3|
|
|
69
|
+
|CP n|7|8|2|2|FE n|2|
|
|
70
|
+
|CP r|4|5|1|1|B8+r|1|
|
|
71
|
+
|CP IXp|8|10|2|2|DD B8+p|2|
|
|
72
|
+
|CP IYq|8|10|2|2|FD B8+q|2|
|
|
73
|
+
|CPD|16|18|4|6|ED A9|2|
|
|
74
|
+
|CPDR|21/16|23/18|5|?/8|ED B9|2|
|
|
75
|
+
|CPI|16|18|4|6|ED A1|2|
|
|
76
|
+
|CPIR|21/16|23/18|5|?/8|ED B1|2|
|
|
77
|
+
|CPL|4|5|1|1|2F|1|
|
|
78
|
+
|DAA|4|5|1|1|27|1|
|
|
79
|
+
|DEC (HL)|11|12|4|7|35|1|
|
|
80
|
+
|DEC (IX+o)|23|25|7|10|DD 35 o|3|
|
|
81
|
+
|DEC (IY+o)|23|25|7|10|FD 35 o|3|
|
|
82
|
+
|DEC A|4|5|1|1|3D|1|
|
|
83
|
+
|DEC B|4|5|1|1|05|1|
|
|
84
|
+
|DEC BC|6|7|1|1|0B|1|
|
|
85
|
+
|DEC C|4|5|1|1|0D|1|
|
|
86
|
+
|DEC D|4|5|1|1|15|1|
|
|
87
|
+
|DEC DE|6|7|1|1|1B|1|
|
|
88
|
+
|DEC E|4|5|1|1|1D|1|
|
|
89
|
+
|DEC H|4|5|1|1|25|1|
|
|
90
|
+
|DEC HL|6|7|1|1|2B|1|
|
|
91
|
+
|DEC IX|10|12|2|2|DD 2B|2|
|
|
92
|
+
|DEC IY|10|12|2|2|FD 2B|2|
|
|
93
|
+
|DEC IXp|8|10|2|2|DD 05+8\*p|2|
|
|
94
|
+
|DEC IYq|8|10|2|2|FD 05+8\*q|2|
|
|
95
|
+
|DEC L|4|5|1|1|2D|1|
|
|
96
|
+
|DEC SP|6|7|1|1|3B|1|
|
|
97
|
+
|DI|4|5|2|2|F3|1|
|
|
98
|
+
|DJNZ o|13/8|14/9|3/2|3/2|10 o|2|
|
|
99
|
+
|EI|4|5|1|1|FB|1|
|
|
100
|
+
|EX (SP),HL|19|20|5|7|E3|1|
|
|
101
|
+
|EX (SP),IX|23|25|6|8|DD E3|2|
|
|
102
|
+
|EX (SP),IY|23|25|6|8|FD E3|2|
|
|
103
|
+
|EX AF,AF'|4|5|1|1|08|1|
|
|
104
|
+
|EX DE,HL|4|5|1|1|EB|1|
|
|
105
|
+
|EXX|4|5|1|1|D9|1|
|
|
106
|
+
|HALT|4|5|2|2|76|1|
|
|
107
|
+
|IM 0|8|10|3|3|ED 46|2|
|
|
108
|
+
|IM 1|8|10|3|3|ED 56|2|
|
|
109
|
+
|IM 2|8|10|3|3|ED 5E|2|
|
|
110
|
+
|IN A,(C)|12|14|3|10/9 [³](#note-3)|ED 78|2|
|
|
111
|
+
|IN A,(n)|11|12|3|10/9 [³](#note-3)|DB n|2|
|
|
112
|
+
|IN B,(C)|12|14|3|10/9 [³](#note-3)|ED 40|2|
|
|
113
|
+
|IN C,(C)|12|14|3|10/9 [³](#note-3)|ED 48|2|
|
|
114
|
+
|IN D,(C)|12|14|3|10/9 [³](#note-3)|ED 50|2|
|
|
115
|
+
|IN E,(C)|12|14|3|10/9 [³](#note-3)|ED 58|2|
|
|
116
|
+
|IN H,(C)|12|14|3|10/9 [³](#note-3)|ED 60|2|
|
|
117
|
+
|IN L,(C)|12|14|3|10/9 [³](#note-3)|ED 68|2|
|
|
118
|
+
|IN F,(C)|12|14|3|10/9 [³](#note-3)|ED 70|2|
|
|
119
|
+
|INC (HL)|11|12|4|7|34|1|
|
|
120
|
+
|INC (IX+o)|23|25|7|10|DD 34 o|3|
|
|
121
|
+
|INC (IY+o)|23|25|7|10|FD 34 o|3|
|
|
122
|
+
|INC A|4|5|1|1|3C|1|
|
|
123
|
+
|INC B|4|5|1|1|04|1|
|
|
124
|
+
|INC BC|6|7|1|1|03|1|
|
|
125
|
+
|INC C|4|5|1|1|0C|1|
|
|
126
|
+
|INC D|4|5|1|1|14|1|
|
|
127
|
+
|INC DE|6|7|1|1|13|1|
|
|
128
|
+
|INC E|4|5|1|1|1C|1|
|
|
129
|
+
|INC H|4|5|1|1|24|1|
|
|
130
|
+
|INC HL|6|7|1|1|23|1|
|
|
131
|
+
|INC IX|10|12|2|2|DD 23|2|
|
|
132
|
+
|INC IY|10|12|2|2|FD 23|2|
|
|
133
|
+
|INC IXp|8|10|2|2|DD 04+8\*p|2|
|
|
134
|
+
|INC IYq|8|10|2|2|FD 04+8\*q|2|
|
|
135
|
+
|INC L|4|5|1|1|2C|1|
|
|
136
|
+
|INC SP|6|7|1|1|33|1|
|
|
137
|
+
|IND|16|18|4|12/11 [³](#note-3)|ED AA|2|
|
|
138
|
+
|INDR|21/16|23/18|4/3|?/12/11 [³](#note-3)|ED BA|2|
|
|
139
|
+
|INI|16|18|4|12/11 [³](#note-3)|ED A2|2|
|
|
140
|
+
|INIR|21/16|23/18|4/3|?/12/11 [³](#note-3)|ED B2|2|
|
|
141
|
+
|JP nn|10|11|3|5|C3 nn nn|3|
|
|
142
|
+
|JP (HL)|4|5|1|3|E9|1|
|
|
143
|
+
|JP (IX)|8|10|2|4|DD E9|2|
|
|
144
|
+
|JP (IY)|8|10|2|4|FD E9|2|
|
|
145
|
+
|JP C,nn|10|11|3|5/3|DA nn nn|3|
|
|
146
|
+
|JP M,nn|10|11|3|5/3|FA nn nn|3|
|
|
147
|
+
|JP NC,nn|10|11|3|5/3|D2 nn nn|3|
|
|
148
|
+
|JP NZ,nn|10|11|3|5/3|C2 nn nn|3|
|
|
149
|
+
|JP P,nn|10|11|3|5/3|F2 nn nn|3|
|
|
150
|
+
|JP PE,nn|10|11|3|5/3|EA nn nn|3|
|
|
151
|
+
|JP PO,nn|10|11|3|5/3|E2 nn nn|3|
|
|
152
|
+
|JP Z,nn|10|11|3|5/3|CA nn nn|3|
|
|
153
|
+
|JR o|12|13|3|3|18 o|2|
|
|
154
|
+
|JR C,o|12/7|13/8|3/2|3/2|38 o|2|
|
|
155
|
+
|JR NC,o|12/7|13/8|3/2|3/2|30 o|2|
|
|
156
|
+
|JR NZ,o|12/7|13/8|3/2|3/2|20 o|2|
|
|
157
|
+
|JR Z,o|12/7|13/8|3/2|3/2|28 o|2|
|
|
158
|
+
|LD (BC),A|7|8|2|4|02|1|
|
|
159
|
+
|LD (DE),A|7|8|2|4|12|1|
|
|
160
|
+
|LD (HL),n|10|11|3|5|36 n|2|
|
|
161
|
+
|LD (HL),r|7|8|2|4|70+r|1|
|
|
162
|
+
|LD (IX+o),n|19|21|5|7|DD 36 o n|4|
|
|
163
|
+
|LD (IX+o),r|19|21|5|7|DD 70+r o|3|
|
|
164
|
+
|LD (IY+o),n|19|21|5|7|FD 36 o n|4|
|
|
165
|
+
|LD (IY+o),r|19|21|5|7|FD 70+r o|3|
|
|
166
|
+
|LD (nn),A|13|14|4|6|32 nn nn|3|
|
|
167
|
+
|LD (nn),BC|20|22|6|8|ED 43 nn nn|4|
|
|
168
|
+
|LD (nn),DE|20|22|6|8|ED 53 nn nn|4|
|
|
169
|
+
|LD (nn),HL|16|17|5|7|22 nn nn|3|
|
|
170
|
+
|LD (nn),IX|20|22|6|8|DD 22 nn nn|4|
|
|
171
|
+
|LD (nn),IY|20|22|6|8|FD 22 nn nn|4|
|
|
172
|
+
|LD (nn),SP|20|22|6|8|ED 73 nn nn|4|
|
|
173
|
+
|LD A,(BC)|7|8|2|4|0A|1|
|
|
174
|
+
|LD A,(DE)|7|8|2|4|1A|1|
|
|
175
|
+
|LD A,(HL)|7|8|2|4|7E|1|
|
|
176
|
+
|LD A,(IX+o)|19|21|5|7|DD 7E o|3|
|
|
177
|
+
|LD A,(IY+o)|19|21|5|7|FD 7E o|3|
|
|
178
|
+
|LD A,(nn)|13|14|4|6|3A nn nn|3|
|
|
179
|
+
|LD A,r|4|5|1|1|78+r|1|
|
|
180
|
+
|LD A,IXp|8|10|2|2|DD 78+p|2|
|
|
181
|
+
|LD A,IYq|8|10|2|2|FD 78+q|2|
|
|
182
|
+
|LD A,I|9|11|2|2|ED 57|2|
|
|
183
|
+
|LD A,R|9|11|2|2|ED 5F|2|
|
|
184
|
+
|LD B,(HL)|7|8|2|4|46|1|
|
|
185
|
+
|LD B,(IX+o)|19|21|5|7|DD 46 o|3|
|
|
186
|
+
|LD B,(IY+o)|19|21|5|7|FD 46 o|3|
|
|
187
|
+
|LD B,n|7|8|2|2|06 n|2|
|
|
188
|
+
|LD B,r|4|5|1|1|40+r|1|
|
|
189
|
+
|LD B,IXp|8|10|2|2|DD 40+p|2|
|
|
190
|
+
|LD B,IYq|8|10|2|2|FD 40+q|2|
|
|
191
|
+
|LD BC,(nn)|20|22|6|8|ED 4B nn nn|4|
|
|
192
|
+
|LD BC,nn|10|11|3|3|01 nn nn|3|
|
|
193
|
+
|LD C,(HL)|7|8|2|4|4E|1|
|
|
194
|
+
|LD C,(IX+o)|19|21|5|7|DD 4E o|3|
|
|
195
|
+
|LD C,(IY+o)|19|21|5|7|FD 4E o|3|
|
|
196
|
+
|LD C,n|7|8|2|2|0E n|2|
|
|
197
|
+
|LD C,r|4|5|1|1|48+r|1|
|
|
198
|
+
|LD C,IXp|8|10|2|2|DD 48+p|2|
|
|
199
|
+
|LD C,IYq|8|10|2|2|FD 48+q|2|
|
|
200
|
+
|LD D,(HL)|7|8|2|4|56|1|
|
|
201
|
+
|LD D,(IX+o)|19|21|5|7|DD 56 o|3|
|
|
202
|
+
|LD D,(IY+o)|19|21|5|7|FD 56 o|3|
|
|
203
|
+
|LD D,n|7|8|2|2|16 n|2|
|
|
204
|
+
|LD D,r|4|5|1|1|50+r|1|
|
|
205
|
+
|LD D,IXp|8|10|2|2|DD 50+p|2|
|
|
206
|
+
|LD D,IYq|8|10|2|2|FD 50+q|2|
|
|
207
|
+
|LD DE,(nn)|20|22|6|8|ED 5B nn nn|4|
|
|
208
|
+
|LD DE,nn|10|11|3|3|11 nn nn|3|
|
|
209
|
+
|LD E,(HL)|7|8|2|4|5E|1|
|
|
210
|
+
|LD E,(IX+o)|19|21|5|7|DD 5E o|3|
|
|
211
|
+
|LD E,(IY+o)|19|21|5|7|FD 5E o|3|
|
|
212
|
+
|LD E,n|7|8|2|2|1E n|2|
|
|
213
|
+
|LD E,r|4|5|1|1|58+r|1|
|
|
214
|
+
|LD E,IXp|8|10|2|2|DD 58+p|2|
|
|
215
|
+
|LD E,IYq|8|10|2|2|FD 58+q|2|
|
|
216
|
+
|LD H,(HL)|7|8|2|4|66|1|
|
|
217
|
+
|LD H,(IX+o)|19|21|5|7|DD 66 o|3|
|
|
218
|
+
|LD H,(IY+o)|19|21|5|7|FD 66 o|3|
|
|
219
|
+
|LD H,n|7|8|2|2|26 n|2|
|
|
220
|
+
|LD H,r|4|5|1|1|60+r|1|
|
|
221
|
+
|LD HL,(nn)|16|17|5|7|2A nn nn|3|
|
|
222
|
+
|LD HL,nn|10|11|3|3|21 nn nn|3|
|
|
223
|
+
|LD I,A|9|11|2|2|ED 47|2|
|
|
224
|
+
|LD IX,(nn)|20|22|6|8|DD 2A nn nn|4|
|
|
225
|
+
|LD IX,nn|14|16|4|4|DD 21 nn nn|4|
|
|
226
|
+
|LD IXh,n|11|13|3|3|DD 26 n|3|
|
|
227
|
+
|LD IXh,p|8|10|2|2|DD 60+p|2|
|
|
228
|
+
|LD IXl,n|11|13|3|3|DD 2E n|3|
|
|
229
|
+
|LD IXl,p|8|10|2|2|DD 68+p|2|
|
|
230
|
+
|LD IY,(nn)|20|22|6|8|FD 2A nn nn|4|
|
|
231
|
+
|LD IY,nn|14|16|4|4|FD 21 nn nn|4|
|
|
232
|
+
|LD IYh,n|11|13|3|3|FD 26 n|3|
|
|
233
|
+
|LD IYh,q|8|10|2|2|FD 60+q|2|
|
|
234
|
+
|LD IYl,n|11|13|3|3|FD 2E n|3|
|
|
235
|
+
|LD IYl,q|8|10|2|2|FD 68+q|2|
|
|
236
|
+
|LD L,(HL)|7|8|2|4|6E|1|
|
|
237
|
+
|LD L,(IX+o)|19|21|5|7|DD 6E o|3|
|
|
238
|
+
|LD L,(IY+o)|19|21|5|7|FD 6E o|3|
|
|
239
|
+
|LD L,n|7|8|2|2|2E n|2|
|
|
240
|
+
|LD L,r|4|5|1|1|68+r|1|
|
|
241
|
+
|LD R,A|9|11|2|2|ED 4F|2|
|
|
242
|
+
|LD SP,(nn)|20|22|6|8|ED 7B nn nn|4|
|
|
243
|
+
|LD SP,HL|6|7|1|1|F9|1|
|
|
244
|
+
|LD SP,IX|10|12|2|2|DD F9|2|
|
|
245
|
+
|LD SP,IY|10|12|2|2|FD F9|2|
|
|
246
|
+
|LD SP,nn|10|11|3|3|31 nn nn|3|
|
|
247
|
+
|LDD|16|18|4|7|ED A8|2|
|
|
248
|
+
|LDDR|21/16|23/18|4|?/7|ED B8|2|
|
|
249
|
+
|LDI|16|18|4|7|ED A0|2|
|
|
250
|
+
|LDIR|21/16|23/18|4|?/7|ED B0|2|
|
|
251
|
+
|MULUB A,r|||14|14|ED C1+8\*r|2|
|
|
252
|
+
|MULUW HL,BC|||36|36|ED C3|2|
|
|
253
|
+
|MULUW HL,SP|||36|36|ED F3|2|
|
|
254
|
+
|NEG|8|10|2|2|ED 44|2|
|
|
255
|
+
|NOP|4|5|1|1|00|1|
|
|
256
|
+
|OR (HL)|7|8|2|4|B6|1|
|
|
257
|
+
|OR (IX+o)|19|21|5|7|DD B6 o|3|
|
|
258
|
+
|OR (IY+o)|19|21|5|7|FD B6 o|3|
|
|
259
|
+
|OR n|7|8|2|2|F6 n|2|
|
|
260
|
+
|OR r|4|5|1|1|B0+r|1|
|
|
261
|
+
|OR IXp|8|10|2|2|DD B0+p|2|
|
|
262
|
+
|OR IYq|8|10|2|2|FD B0+q|2|
|
|
263
|
+
|OTDR|21/16|23/18|4/3|?/12/11 [³](#note-3)|ED BB|2|
|
|
264
|
+
|OTIR|21/16|23/18|4/3|?/12/11 [³](#note-3)|ED B3|2|
|
|
265
|
+
|OUT (C),A|12|14|3|10/9 [³](#note-3)|ED 79|2|
|
|
266
|
+
|OUT (C),B|12|14|3|10/9 [³](#note-3)|ED 41|2|
|
|
267
|
+
|OUT (C),C|12|14|3|10/9 [³](#note-3)|ED 49|2|
|
|
268
|
+
|OUT (C),D|12|14|3|10/9 [³](#note-3)|ED 51|2|
|
|
269
|
+
|OUT (C),E|12|14|3|10/9 [³](#note-3)|ED 59|2|
|
|
270
|
+
|OUT (C),H|12|14|3|10/9 [³](#note-3)|ED 61|2|
|
|
271
|
+
|OUT (C),L|12|14|3|10/9 [³](#note-3)|ED 69|2|
|
|
272
|
+
|OUT (n),A|11|12|3|10/9 [³](#note-3)|D3 n|2|
|
|
273
|
+
|OUTD|16|18|4|12/11 [³](#note-3)|ED AB|2|
|
|
274
|
+
|OUTI|16|18|4|12/11 [³](#note-3)|ED A3|2|
|
|
275
|
+
|POP AF|10|11|3|5|F1|1|
|
|
276
|
+
|POP BC|10|11|3|5|C1|1|
|
|
277
|
+
|POP DE|10|11|3|5|D1|1|
|
|
278
|
+
|POP HL|10|11|3|5|E1|1|
|
|
279
|
+
|POP IX|14|16|4|6|DD E1|2|
|
|
280
|
+
|POP IY|14|16|4|6|FD E1|2|
|
|
281
|
+
|PUSH AF|11|12|4|6|F5|1|
|
|
282
|
+
|PUSH BC|11|12|4|6|C5|1|
|
|
283
|
+
|PUSH DE|11|12|4|6|D5|1|
|
|
284
|
+
|PUSH HL|11|12|4|6|E5|1|
|
|
285
|
+
|PUSH IX|15|17|5|7|DD E5|2|
|
|
286
|
+
|PUSH IY|15|17|5|7|FD E5|2|
|
|
287
|
+
|RES b,(HL)|15|17|5|8|CB 86+8\*b|2|
|
|
288
|
+
|RES b,(IX+o)|23|25|7|10|DD CB o 86+8\*b|4|
|
|
289
|
+
|RES b,(IY+o)|23|25|7|10|FD CB o 86+8\*b|4|
|
|
290
|
+
|RES b,r|8|10|2|2|CB 80+8\*b+r|2|
|
|
291
|
+
|RET|10|11|3|5|C9|1|
|
|
292
|
+
|RET C|11/5|12/6|3/1|5/1|D8|1|
|
|
293
|
+
|RET M|11/5|12/6|3/1|5/1|F8|1|
|
|
294
|
+
|RET NC|11/5|12/6|3/1|5/1|D0|1|
|
|
295
|
+
|RET NZ|11/5|12/6|3/1|5/1|C0|1|
|
|
296
|
+
|RET P|11/5|12/6|3/1|5/1|F0|1|
|
|
297
|
+
|RET PE|11/5|12/6|3/1|5/1|E8|1|
|
|
298
|
+
|RET PO|11/5|12/6|3/1|5/1|E0|1|
|
|
299
|
+
|RET Z|11/5|12/6|3/1|5/1|C8|1|
|
|
300
|
+
|RETI|14|16|5|7|ED 4D|2|
|
|
301
|
+
|RETN|14|16|5|7|ED 45|2|
|
|
302
|
+
|RL (HL)|15|17|5|8|CB 16|2|
|
|
303
|
+
|RL (IX+o)|23|25|7|10|DD CB o 16|4|
|
|
304
|
+
|RL (IY+o)|23|25|7|10|FD CB o 16|4|
|
|
305
|
+
|RL r|8|10|2|2|CB 10+r|2|
|
|
306
|
+
|RLA|4|5|1|1|17|1|
|
|
307
|
+
|RLC (HL)|15|17|5|8|CB 06|2|
|
|
308
|
+
|RLC (IX+o)|23|25|7|10|DD CB o 06|4|
|
|
309
|
+
|RLC (IY+o)|23|25|7|10|FD CB o 06|4|
|
|
310
|
+
|RLC r|8|10|2|2|CB 00+r|2|
|
|
311
|
+
|RLCA|4|5|1|1|07|1|
|
|
312
|
+
|RLD|18|20|5|8|ED 6F|2|
|
|
313
|
+
|RR (HL)|15|17|5|8|CB 1E|2|
|
|
314
|
+
|RR (IX+o)|23|25|7|10|DD CB o 1E|4|
|
|
315
|
+
|RR (IY+o)|23|25|7|10|FD CB o 1E|4|
|
|
316
|
+
|RR r|8|10|2|2|CB 18+r|2|
|
|
317
|
+
|RRA|4|5|1|1|1F|1|
|
|
318
|
+
|RRC (HL)|15|17|5|8|CB 0E|2|
|
|
319
|
+
|RRC (IX+o)|23|25|7|10|DD CB o 0E|4|
|
|
320
|
+
|RRC (IY+o)|23|25|7|10|FD CB o 0E|4|
|
|
321
|
+
|RRC r|8|10|2|2|CB 08+r|2|
|
|
322
|
+
|RRCA|4|5|1|1|0F|1|
|
|
323
|
+
|RRD|18|20|5|8|ED 67|2|
|
|
324
|
+
|RST 0|11|12|4|6/7 [²](#note-2)|C7|1|
|
|
325
|
+
|RST 8H|11|12|4|6/7 [²](#note-2)|CF|1|
|
|
326
|
+
|RST 10H|11|12|4|6/7 [²](#note-2)|D7|1|
|
|
327
|
+
|RST 18H|11|12|4|6/7 [²](#note-2)|DF|1|
|
|
328
|
+
|RST 20H|11|12|4|6/7 [²](#note-2)|E7|1|
|
|
329
|
+
|RST 28H|11|12|4|6/7 [²](#note-2)|EF|1|
|
|
330
|
+
|RST 30H|11|12|4|6/7 [²](#note-2)|F7|1|
|
|
331
|
+
|RST 38H|11|12|4|6/7 [²](#note-2)|FF|1|
|
|
332
|
+
|SBC A,(HL)|7|8|2|4|9E|1|
|
|
333
|
+
|SBC A,(IX+o)|19|21|5|7|DD 9E o|3|
|
|
334
|
+
|SBC A,(IY+o)|19|21|5|7|FD 9E o|3|
|
|
335
|
+
|SBC A,n|7|8|2|2|DE n|2|
|
|
336
|
+
|SBC A,r|4|5|1|1|98+r|1|
|
|
337
|
+
|SBC A,IXp|8|10|2|2|DD 98+p|2|
|
|
338
|
+
|SBC A,IYq|8|10|2|2|FD 98+q|2|
|
|
339
|
+
|SBC HL,BC|15|17|2|2|ED 42|2|
|
|
340
|
+
|SBC HL,DE|15|17|2|2|ED 52|2|
|
|
341
|
+
|SBC HL,HL|15|17|2|2|ED 62|2|
|
|
342
|
+
|SBC HL,SP|15|17|2|2|ED 72|2|
|
|
343
|
+
|SCF|4|5|1|1|37|1|
|
|
344
|
+
|SET b,(HL)|15|17|5|8|CB C6+8\*b|2|
|
|
345
|
+
|SET b,(IX+o)|23|25|7|10|DD CB o C6+8\*b|4|
|
|
346
|
+
|SET b,(IY+o)|23|25|7|10|FD CB o C6+8\*b|4|
|
|
347
|
+
|SET b,r|8|10|2|2|CB C0+8\*b+r|2|
|
|
348
|
+
|SLA (HL)|15|17|5|8|CB 26|2|
|
|
349
|
+
|SLA (IX+o)|23|25|7|10|DD CB o 26|4|
|
|
350
|
+
|SLA (IY+o)|23|25|7|10|FD CB o 26|4|
|
|
351
|
+
|SLA r|8|10|2|2|CB 20+r|2|
|
|
352
|
+
|SRA (HL)|15|17|5|8|CB 2E|2|
|
|
353
|
+
|SRA (IX+o)|23|25|7|10|DD CB o 2E|4|
|
|
354
|
+
|SRA (IY+o)|23|25|7|10|FD CB o 2E|4|
|
|
355
|
+
|SRA r|8|10|2|2|CB 28+r|2|
|
|
356
|
+
|SRL (HL)|15|17|5|8|CB 3E|2|
|
|
357
|
+
|SRL (IX+o)|23|25|7|10|DD CB o 3E|4|
|
|
358
|
+
|SRL (IY+o)|23|25|7|10|FD CB o 3E|4|
|
|
359
|
+
|SRL r|8|10|2|2|CB 38+r|2|
|
|
360
|
+
|SUB (HL)|7|8|2|4|96|1|
|
|
361
|
+
|SUB (IX+o)|19|21|5|7|DD 96 o|3|
|
|
362
|
+
|SUB (IY+o)|19|21|5|7|FD 96 o|3|
|
|
363
|
+
|SUB n|7|8|2|2|D6 n|2|
|
|
364
|
+
|SUB r|4|5|1|1|90+r|1|
|
|
365
|
+
|SUB IXp|8|10|2|2|DD 90+p|2|
|
|
366
|
+
|SUB IYq|8|10|2|2|FD 90+q|2|
|
|
367
|
+
|XOR (HL)|7|8|2|4|AE|1|
|
|
368
|
+
|XOR (IX+o)|19|21|5|7|DD AE o|3|
|
|
369
|
+
|XOR (IY+o)|19|21|5|7|FD AE o|3|
|
|
370
|
+
|XOR n|7|8|2|2|EE n|2|
|
|
371
|
+
|XOR r|4|5|1|1|A8+r|1|
|
|
372
|
+
|XOR IXp|8|10|2|2|DD A8+p|2|
|
|
373
|
+
|XOR IYq|8|10|2|2|FD A8+q|2|
|
|
374
|
+
|
|
375
|
+
#### Note 1
|
|
376
|
+
R800 timing including waits is based on access to the internal RAM. Note that an additional wait is inserted if the instruction fetch or a 16-bit memory access crosses a 256-byte memory boundary. For more information, see the [R800 waits section](#wait-cycles).
|
|
377
|
+
|
|
378
|
+
#### Note 2
|
|
379
|
+
Testing showed that a `call` followed by a series of `nop`s takes 8 cycles, whereas if it’s followed by a `ret` or `pop af`, combined they take 12 cycles (7 for `call` + 5 for `ret` / `pop af`). This also applies to `rst`. I have no theory about the underlying logic yet.
|
|
380
|
+
|
|
381
|
+
#### Note 3
|
|
382
|
+
As described below, I/O instructions get aligned to the bus clock, so an extra wait is inserted depending on the alignment. This means that between two `out`, you can have a 1-cycle instruction for free.
|
|
383
|
+
|
|
384
|
+
## Legend
|
|
385
|
+
|
|
386
|
+
### b
|
|
387
|
+
3-bit value.
|
|
388
|
+
|
|
389
|
+
### n
|
|
390
|
+
8-bit value.
|
|
391
|
+
|
|
392
|
+
### nn
|
|
393
|
+
16-bit value, little-endian. E.g. the `JP 1234H` opcode is `C3 34 12.`
|
|
394
|
+
|
|
395
|
+
### o
|
|
396
|
+
8-bit offset, 2’s complement.
|
|
397
|
+
|
|
398
|
+
### r
|
|
399
|
+
Register. This can be `A`, `B`, `C`, `D`, `E`, `H` or `L`. Add the following value to the last byte of the opcode:
|
|
400
|
+
|
|
401
|
+
|Register|Register bits value|
|
|
402
|
+
|---|---|
|
|
403
|
+
|A|7|
|
|
404
|
+
|B|0|
|
|
405
|
+
|C|1|
|
|
406
|
+
|D|2|
|
|
407
|
+
|E|3|
|
|
408
|
+
|H|4|
|
|
409
|
+
|L|5|
|
|
410
|
+
|
|
411
|
+
### IXp
|
|
412
|
+
Denotes the high or low part of the IX register: IXh or IXl. Add the following value to the last byte of the opcode:
|
|
413
|
+
|
|
414
|
+
|Register|Register bits value|
|
|
415
|
+
|---|---|
|
|
416
|
+
|IXh|4|
|
|
417
|
+
|IXl|5|
|
|
418
|
+
|
|
419
|
+
### IYq
|
|
420
|
+
Denotes the high or low part of the IY register: IYh or IYl. Add the following value to the last byte of the opcode:
|
|
421
|
+
|
|
422
|
+
|Register|Register bits value|
|
|
423
|
+
|---|---|
|
|
424
|
+
|IYh|4|
|
|
425
|
+
|IYl|5|
|
|
426
|
+
|
|
427
|
+
### p
|
|
428
|
+
Register where H and L have been replaced by IXh and IXl. Add the following value to the last byte of the opcode:
|
|
429
|
+
|
|
430
|
+
|Register|Register bits value|
|
|
431
|
+
|---|---|
|
|
432
|
+
|A|7|
|
|
433
|
+
|B|0|
|
|
434
|
+
|C|1|
|
|
435
|
+
|D|2|
|
|
436
|
+
|E|3|
|
|
437
|
+
|IXh|4|
|
|
438
|
+
|IXl|5|
|
|
439
|
+
|
|
440
|
+
### q
|
|
441
|
+
Register where H and L have been replaced by IYh and IYl. Add the following value to the last byte of the opcode:
|
|
442
|
+
|
|
443
|
+
|Register|Register bits value|
|
|
444
|
+
|---|---|
|
|
445
|
+
|A|7|
|
|
446
|
+
|B|0|
|
|
447
|
+
|C|1|
|
|
448
|
+
|D|2|
|
|
449
|
+
|E|3|
|
|
450
|
+
|IYh|4|
|
|
451
|
+
|IYl|5|
|
|
452
|
+
|
|
453
|
+
## Wait cycles
|
|
454
|
+
|
|
455
|
+
The MSX standard requires so-called M1 wait cycles, meaning that the system adds one additional wait state to every M1 cycle (the first or first two cycles of an instruction). This is an important trait to know about if you want to do speed calculations. The M1 waits are inserted like this:
|
|
456
|
+
|
|
457
|
+
- Every instruction has 1 additional M1 wait
|
|
458
|
+
- Instructions starting with a `CB`, `DD`, `ED`, `FD`, `DD CB` or `DD FD` opcode have 2 additional M1 waits
|
|
459
|
+
|
|
460
|
+
Examples:
|
|
461
|
+
|
|
462
|
+
- `XOR A` has opcode `AF` and is documented as taking 4 T-states. On MSX, it takes 5 (one more).
|
|
463
|
+
- `BIT 0,A` has opcode `CB 47` and is documented as taking 8 T-states. On MSX, it takes 10 (two more).
|
|
464
|
+
- `SRL (IX+0)` has opcode `DD CB 00 3E` and is documented as taking 23 T-states. On MSX, it takes 25 (two more).
|
|
465
|
+
|
|
466
|
+
The instruction timing including M1 wait is listed in the Z80+M1 column.
|
|
467
|
+
|
|
468
|
+
For the R800, it is an even more complex story:
|
|
469
|
+
|
|
470
|
+
- In internal RAM, 0 waits are inserted, or 1 wait if the instruction fetch crosses a 256-byte memory page boundary (“page break”).
|
|
471
|
+
- In internal RAM, 2 waits are inserted for every memory read/write, or 3 if it does both, regardless of whether it is in the same page or not.
|
|
472
|
+
- In internal RAM, 2 waits are inserted for every `jp`.
|
|
473
|
+
- In internal ROM, 3 waits are inserted.
|
|
474
|
+
- In external memory, 4-5 waits are inserted depending on bus clock alignment.
|
|
475
|
+
- For I/O, 6-7 waits are inserted depending on bus clock alignment.
|
|
476
|
+
- For I/O to ports 98H-9BH, ± 54 extra waits are inserted if not enough time has passed since the last access to these ports.
|
|
477
|
+
|
|
478
|
+
Note that the R800 timing is complex and not officially documented, so there may be deviations or errors in the above description. The above findings and values in the R800+wait column of the table are based on research by the openMSX team and verified by Grauw using a different, cycle-accurate measuring method. For more details see the documents in the [openMSX repository](https://github.com/openMSX/openMSX/tree/master/doc/internal).
|
|
479
|
+
|
|
480
|
+
~Grauw
|
|
481
|
+
|
|
482
|
+
© 2025 MSX Assembly Page. MSX is a trademark of MSX Licensing Corporation.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "More MSX Technical Info from http://bifi.msxnet.org/msxnet/tech/",
|
|
3
|
+
"description": "MSX Technical Info from http://bifi.msxnet.org/msxnet/tech/",
|
|
4
|
+
"toc": [
|
|
5
|
+
{
|
|
6
|
+
"title": "Z80 Detailed Instruction Set (Z80 Heaven)",
|
|
7
|
+
"uri": "msxdocs://processors/Z80_detailed_instruction_set",
|
|
8
|
+
"external_url": "http://z80-heaven.wikidot.com/instructions-set",
|
|
9
|
+
"description": "This document is a comprehensive reference for the Z80 processor instruction set, organized alphabetically from ADC to XOR, featuring over 80 different instructions with detailed syntax, allowed operands, flag effects (C, N, S, Z, P/V, H), practical use cases, and clock cycles (T-States) for each variant. Each instruction is documented with specific assembly code examples, describing arithmetic operations (ADD, SUB, ADC, SBC), logical operations (AND, OR, XOR), comparison operations (CP, CPI, CPD), bit manipulation (BIT, SET, RES), flow control (JP, JR, CALL, RET, DJNZ), data transfer (LD, LDD, LDI, PUSH, POP), rotation/shifting (RL, RR, SLA, SRA), and system control (HALT, DI, EI, NOP). Provides precise technical context about registers (A, B, C, D, E, H, L, IX, IY, SP), addressing modes (immediate, direct, indirect, indexed), and the exact semantics of each operation, being especially valuable for generating Z80 assembly code, debugging MSX programs, or explaining processor behavior in retro systems like MSX, Amstrad CPC, or ZX Spectrum."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"title": "Z80 / R800 Instruction Set",
|
|
13
|
+
"uri": "msxdocs://processors/Z80_R800_instruction_set",
|
|
14
|
+
"external_url": "https://map.grauw.nl/resources/z80instr.php",
|
|
15
|
+
"description": "This comprehensive instruction set reference provides a complete tabular listing of all Z80 processor instructions plus R800-specific extensions (MULUB/MULUW multiplication instructions), including documented and undocumented opcodes with precise timing data for MSX systems. It details instruction timing across four scenarios (Z80, Z80+M1 waits, R800, R800+waits), hexadecimal opcodes, instruction sizes, and MSX-specific timing considerations including M1 wait states, memory access patterns, I/O timing, and R800 internal/external memory performance characteristics. Essential for MSX assembly programming, emulator development, performance optimization, cycle-accurate timing calculations, and understanding the behavioral differences between Z80 and R800 processors in MSX environments."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"title": "The Undocumented Z80 Documented (Maintained by Jan Wilmans).",
|
|
19
|
+
"uri": "msxdocs://processors/z80-undocumented",
|
|
20
|
+
"external_url": "http://bifi.msxnet.org/msxnet/tech/",
|
|
21
|
+
"description": "Provides a comprehensive technical reference for Z80 microprocessor instructions, focusing on both officially documented and undocumented instruction sets. It serves as an authoritative guide for Z80 assembly programming, particularly relevant for MSX computer development."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|