Skip to content

Commit af5ea70

Browse files
author
Dion Olsthoorn
committed
M2000 doc updates
Added description of the new symbolic keyboard mapping and how to use the M2000 core without content
1 parent 1727f9d commit af5ea70

File tree

3 files changed

+67
-25
lines changed

3 files changed

+67
-25
lines changed

docs/image/core/m2000/machine.png

-268 KB
Loading
1.24 KB
Loading

docs/library/m2000.md

Lines changed: 67 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## Background
66

7-
The P2000T was Philips' first computer for the home market in the early '80s, before they later switched to manufacturing MSX computers. The P2000T was a Z80-powered machine, running at a clock speed of 2.5 MHz and was built like a tank. It featured an integrated keyboard, power supply, two cartridge slots and a very innovative and fast Mini-Cassette system (MDCR), which was fully automated and used mini tapes that could hold up to 42 kilobytes of data.
7+
The P2000T was Philips' first computer for the home market in the early '80s, before they later switched to manufacturing MSX computers. The P2000T was a Z80-powered home computer, running at a clock speed of 2.5 MHz and it used a Mullard SAA5050 teletext display chip to produce the video picture. The machine was built like a tank and featured an integrated keyboard, power supply, two cartridge slots and a very innovative and fast Mini-Cassette system (MDCR), which was fully automated and used mini tapes that could hold up to 42 kilobytes of data.
88

99
The P2000T was reasonably popular among hobbyists and kids in elementary schools in The Netherlands, as Philips promoted the machine strongly in the science and education sectors. Because of the relatively high introductory price and the fact that its SAA5050 video chip only supported a 40 x 24 character teletext display mode, the P2000T never became the success that Philips hoped for.
1010

@@ -36,11 +36,11 @@ Frontend-level settings or features that the M2000 core respects:
3636
|-------------------|:---------:|
3737
| Restart ||
3838
| Screenshots ||
39-
| Saves | |
39+
| Saves | |
4040
| States ||
4141
| Rewind ||
4242
| Netplay ||
43-
| Core Options | |
43+
| Core Options | |
4444
| RetroAchievements ||
4545
| RetroArch Cheats ||
4646
| Native Cheats ||
@@ -63,27 +63,54 @@ Frontend-level settings or features that the M2000 core respects:
6363

6464
The M2000 core's library name is 'M2000'.
6565

66+
**Frontend's Save directory**
67+
68+
| File | Description |
69+
|-------------|------------------------|
70+
| Default.cas | Writable cassette file, which is only created/attached when starting the M2000 core **without content** |
71+
6672
## Geometry and timing
6773

68-
- The M2000 core's core provided FPS is `50`
69-
- The M2000 core's core provided sample rate is `30000`
70-
- The M2000 core's base width is `240`
71-
- The M2000 core's base height is `240`
72-
- The M2000 core's max width is `240`
73-
- The M2000 core's max height is `240`
74-
- The M2000 core's core provided aspect ratio is `4/3`
74+
- The M2000 core's provided FPS is `50`
75+
- The M2000 core's provided sample rate is `30000`
76+
- The M2000 core's base width is `480`
77+
- The M2000 core's base height is `480`
78+
- The M2000 core's max width is `480`
79+
- The M2000 core's max height is `480`
80+
- The M2000 core's provided aspect ratio is `4/3`
7581

7682
## Usage
7783

78-
When playing P2000T games using the M2000 core, you will notice that **every** P2000T game relies on keyboard input; usually the Space key to fire and the Arrow-keys to navigate, but also for simple J/N (= Yes/No) questions or when entering the number of players.
84+
You can use the M2000 core for playing P2000T cassette games, but you can also use it for programming your own P2000T Basic programs.
85+
86+
### Programming in Basic
87+
88+
When you start the M2000 core **without content**, you will see the "Philips Cassette Basic" screen with the white cursor waiting for your input. Here you can type in your Basic program and load or save your programs. An - initially empty - cassette named `Default.cas` will be attached and stored in the M2000 Save directory.
89+
You can save a program using:
90+
```
91+
csave "program name"
92+
```
93+
... and load it again using:
94+
```
95+
cload "program name"
96+
```
97+
Note that only the first(!) character of each program is used for identification, so e.g. a program named "hello world" can be loaded using `cload "h"`.
98+
To show the index of the cassette, press F3 or Shift + Numeric keypad 1.
99+
100+
#### Game Focus mode
101+
Programming P2000T Basic using the M2000 core requires full keyboard access. This works best when the core is in **'Game Focus'** mode, which allows the M2000 core to take precedence in inputs. The easiest way to automatically enable 'Game Focus' mode for the M2000 core is in **Settings > Input** where you set the option called **Auto Enable 'Game Focus' Mode** to `Detect`. Or correspondingly in retroarch.cfg set `input_auto_game_focus = "2"`. Be aware that the default hotkey for toggling the **Game Focus** mode is the **Scroll Lock** key, which might not be present on your keyboard. If that's the case, you'll need to remap this hotkey to a more suitable key.
102+
103+
### Playing games
104+
105+
The P2000T didn't came with any joystick ports, so every P2000T game relies on keyboard input. Usually the Space key is used to fire and the Arrow-keys to navigate, but other keys are also used to answer simple Yes/No questions or for entering the number of players.
79106

80107
While the P2000T didn't have any joystick ports, there was a third-party company back in the '80s who was selling I/O cartridges to which you could connect up to 2 joysticks. These cartridges basically simulated actual key presses and that is exactly what the Joypad is doing in the M2000 core.
81108

82109
Playing P2000T games using the M2000 core usually works best in one of these three ways:
83110

84111
1. Using **Keyboard only**
85-
This basically means that you play the P2000T games like most people did back in the day. Do note that because of the positional key mapping, not all keys you type will display the character you expect. However, during game-play you probably won't ever notice this.
86-
This way of playing works best when the core is in **'Game Focus'** mode, which allows the core to take precedence in inputs. The easiest way to automatically enable 'Game Focus' mode for the M2000 core is in **Settings > Input** where you set the option called **Auto Enable 'Game Focus' Mode** to `Detect`. Or correspondingly in retroarch.cfg set `input_auto_game_focus = "2"`. Be aware that the default hotkey for toggling the **Game Focus** mode is the **Scroll Lock** key, which might not be present on your keyboard. If that's the case, you'll need to remap it - for example to the **Tab** key.
112+
This basically means that you play the P2000T games like most people did back in the day.
113+
This way of playing works best when the core is in **'Game Focus'** mode, like explained above.
87114

88115
2. Using both **Keyboard** and **Joypad**
89116
Use the **Keyboard** to answer the game's Yes/No questions and for things like entering the number of players or typing your name for the highscore list. Then switch to the **Joypad** during actual game play.
@@ -93,9 +120,9 @@ This way of playing also works best when the core is in **'Game Focus'** mode.
93120
This requires the use of the On-Screen Key Selector to enter the number of players or to answer Y/N questions. See the description below on how to use the On-Screen Key Selector.
94121
For this way of playing the core doesn't have to be in **'Game Focus'** mode.
95122

96-
### On-Screen Key Selector
123+
#### On-Screen Key Selector
97124

98-
The On-Screen Key Selector lets you simulate key presses using your Joypad controller. This allows you to play almost all P2000T games without the need of an actual keyboard. Next to the regular Joypad mappings (i.e. Navigation keys + Space to fire), most games will ask simple Yes/No questions or allow you to enter your name in a high score list.
125+
The On-Screen Key Selector lets you simulate key presses using your Joypad controller. This allows you to play almost all P2000T games without the need of an actual keyboard. Next to the regular Joypad mappings (for the Navigation keys + Space to fire), most games will ask simple Yes/No questions or allow you to enter your name in a high score list.
99126

100127
The On-Screen Key Selector is activated by holding your Joypad's Left Bumper/Trigger/Shoulder button. Then with the D-pad you can loop through the keys and with the A/B button you then enter the highligted key.
101128

@@ -132,9 +159,24 @@ To be able to use the D-pad for horizontal movement in the emulator, you should
132159

133160
## Keyboard
134161

135-
The M2000 core is using **positional** key mapping, which maps every key from a "real" keyboard to the key which has the same position on a P2000T keyboard. This makes the keyboard more comfortable to use in games that require the keys to be in the correct positions. And also this allows for pressing multiple keys simultaneously.
162+
### Symbolic key mapping
163+
The M2000 core is using **symbolic** key mapping by default, which means that - where possible - keys on the PC keyboard are mapped to corresponding P2000T keys that show the same symbol, so you basically get the key which you pressed.
164+
165+
The special keys < START >, < STOP > and < ZOEK > are mapped as follows:
166+
167+
| RetroKeyboard Inputs | P2000T Keys |
168+
|---------------------------|----------------------|
169+
| F1 | < START > |
170+
| F2 | < STOP > |
171+
| F3 | < ZOEK > |
172+
| Shift + Numpad 1 | < ZOEK > |
173+
| Shift + Numpad 3 | < START > |
174+
| Shift + Numpad Enter | < STOP > |
175+
176+
### Positional key mapping
177+
Optionally, the M2000 core supports **positional** key mapping, which maps every key from a "real" keyboard to the key which has the same position/location on a P2000T keyboard.
136178

137-
Below you can see how the keys on the RetroKeyboard map to keys on the P2000T keyboard:
179+
As the layout of a P2000T keyboard differs from modern keyboards, this might cause some unexpected mappings. So below you can see how the keys on the RetroKeyboard map to positional keys on the P2000T keyboard:
138180

139181
| RetroKeyboard Inputs | P2000T Keys |
140182
|---------------------------|----------------------|
@@ -183,14 +225,14 @@ Below you can see how the keys on the RetroKeyboard map to keys on the P2000T ke
183225
| Down | Down |
184226
| Right | Right |
185227
| Left | Left |
186-
| Keypad 0 .. 9 | 0 .. 9 |
187-
| Keypad Period . | Double Zero 00 |
188-
| Keypad Enter | Period . |
189-
| Keypad Multiply * | Clear Line |
190-
| Shift + Keypad Multiply * | Clear Page |
191-
| Shift + Keypad 1 | < ZOEK > |
192-
| Shift + Keypad 3 | < START > |
193-
| Shift + Keypad Enter | < STOP > |
228+
| Numpad 0 .. 9 | 0 .. 9 |
229+
| Numpad Period . | Double Zero 00 |
230+
| Numpad Enter | Period . |
231+
| Numpad Multiply * | Clear Line |
232+
| Shift + Numpad Multiply * | Clear Page |
233+
| Shift + Numpad 1 | < ZOEK > |
234+
| Shift + Numpad 3 | < START > |
235+
| Shift + Numpad Enter | < STOP > |
194236
| F1 | < START > |
195237
| F2 | < STOP > |
196238
| F3 | < ZOEK > |

0 commit comments

Comments
 (0)