Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
DTP's EMulator FIles Runner
===========================
divIDE version
Features:
- All is done in NMI menu.
- Own detection of IDE devices.
- Works with iso9660 (CD-ROM image) directly from CD-ROM device or stored on ZIP
drive, HDD or CompactFlash. Image is automatically detected only if is stored
from beginning of the medium. If image is not stored from the beginning you
have to use "search" function.
- Search for ISO image function. Start of the image can be detected by
sequential medium read. It's not too fast so don't store your images too far
from start of the medium.
- Ability to browse whole directory tree (integrated file browser).
- Search for files in directory by name
- Everything is remembered (actual directory, cursor position, .TAP data etc.).
- Filetype autodetect. Screens by filelen, emulator files by extension.
- View of coloured (6912 B) or monochrome (6144 B) pictures with detection of
border colour.
- Running SNA snapshots (48K and 128K).
- Running Z80 snapshots (versions 1.x, 2.x and 3.x).
- Running MFC snapshots (48K and 128K).
- Tape emulator for TAP files (read only = save is not supported). After you
select TAP file in browser content is presented as "virtual" directory and
you can set "load cursor". If your program reads data with ROM rutines and
there is some active TAP file in DEMFIR (selected) all data is readed from
IDE device. If TAP file is not active, data is readed from standard tape
input (with default ROM routines).
- Tape emulation for TZX files, like TAP above. Only blocks with ID=10h are
taken. Others are shown in browser but skipped during tape emulation.
- POK file read and easy way to turn on and off any cheat (cheat is group of
POKEs applied together).
- Screensaver
- Modular architecture - some parts can be turned off at compile time and there
will be space for some other modules.
NMI menu controls (keys are emphasised):
D = device - device change (master/slave)
M = medium - reread of medium and image detection
R = reset - software reset (JP 0), with 'SYMBOL SHIFT' clears DEMFIR's RAM too
I = init - new devices detection, with 'SYMBOL SHIFT' bypasses detected
device size and set maximum size (128 GB for LBA and c. 8 GB for
CHS). For CHS in addition get default geometry instead of actual
(may help with old or nonstandard hdds).
If build with WITH_WDC and hdd tells invalid actual geometry
(some Western Digital hdds) DEMFIR try initialize CHS
translation. After that instead of device name is text "CHS
translation:" and three numbers (actual CHS). Then you HAVE TO
detect devices AGAIN. If next detection will have the same
result ("CHS translation:" etc.), your hdd is not able remember
new geometry. Then use detection with 'SYMBOL SHIFT', it bypasses
initialization of geometry too and hdd should be usable.
Q = quit - exit from NMI menu, switch to selected VRAM (see 'V' key)
F = find - finds ISO image on any place on medium (can't be performed on real
CD-ROM). Searching for the image starts from actual position +
size of selected image (if any) + offset of Primary Volume
Descriptor (16 sectors of 2 KB). If you wanna start searching
from actual position press key 'F' together with 'SYMBOL SHIFT'.
Searching can be interrupted by key 'SPACE'.
S = sector - with this function you can specify sector where ISO image is
expected or where you want to start searching. For input controls
see "Input controls" :). Number is in hexa, accepts characters
0-9 and A-F (case insensitive). At input end new sector number is
used to read new ISO image (when you get 'No ISO image found'
message, try searching).
V = VRAM - shows actual Video RAM (always 1st after NMI), next press of 'V'
key swaps 1st and 2nd VRAM. If there is no keypress within two
seconds after last keypress, displayed VRAM is set for Quit and
DEMFIR returns to NMI menu. In 48K mode only shows 1st VRAM,
switching doesn't work.
P = paging - disable 128K paging (out 32765,48), only hardware reset enable it.
C = cheat - (only if builded with PokeManager) shows list and state of actual
cheats (readed from .POK file), if there is no actual cheat it
starts manual POKE entry (can be escaped with CS+1).
Enter - starts file browser
File browser controls:
up - move cursor to previous file
down - move cursor to next file
left - skip to begin of the page, if cursor is already on the beginning
skip to previous page
right - skip to end of the page, if cursor is already on the and, skip to
next page
Enter - action = view of the picture (waits for any key), snapshot run,
walk through directories or TAP files (depends on circumstances)
Enter+SS - sets "load cursor" when TAP file is active
Space - exits file browser
Other keys are used for file searching by name. Search is by ASCII and case
sensitive (it's due to limitation of iso9660). For jump to start of directory
search for dot, for jump to end of directory search for "pipe" (SS+S).
Speccyal characters (e.g. numbers below cursors) can be inserted by "dead key"
TRUE VIDEO (CS+3). Its press change border to blue and next key will be used for
search and not in its original meaning. Cursor is moved to first matched
filename in direction of searching. If there is no exact match, cursor is moved
to proximate filename. Search is canceled by any of speccyal keys (e.g.
cursor move).
Input controls:
CS+1 (EDIT) - exit without value store
CS+2 (CAPSL) - whole input clear
CS+4 (INV.V) - insert space behalf cursor
CS+5 ( <- ) - cursor left
CS+6 ( ^ ) - cursor to begin of line
CS+7 ( v ) - cursor to end of line
CS+8 ( -> ) - cursor right
CS+9 (GRAPH) - delete char on the right of cursor (delete)
CS+0 (DEL) - delete char on the left of cursor (backspace)
Enter - exit with value store
Input is in overwrite mode (old char is replaced with new one), for insertion
of chars before existing string use CS+4. If there is an illegal character,
after exit cursor will be placed AFTER it. If there is number out of range,
cursor will be placed after whole number.
When you working with TAP files, cursor goes green (everything is ok), red
(broken TAP file) or yellow (TAP file is ok, but contains too many files and
DEMFIR can't index it => you can't use these unindexed files). This is the same
for TZX. In addition, when cursor goes magenta it's a sign that there is block
which probably cause malfunction of whole TZX file.
When LOADing from TAP/TZX file and "load cursor" come to file end, TAP/TZX file
is automatically "rewinded" to start. Position of "load cursor" can be anytime
determined/changed by file browser.
First line in NMI menu shows (left to right)
- interrupt status (IM1/IM2, EI/DI)
- actual mode (48K/128K)
- active 128K page
- selected VRAM (can't be detected)
Second line shows list of supported formats
- Z80 = Z80 snaps, all versions, enabled by WITH_Z80 in config.a80
- SNA = SNA snaps, enabled by WITH_SNA in config.a80
- MFC = MFC snaps, enabled by WITH_MFC in config.a80
- SCR = picture viewer, enabled by WITH_SCR in config.a80
- POK = PokeManager, enabled by WITH_POK in config.a80
- DFW = DivIDE FirmWare, file for other firmware MAPRAM installation
Third line shows other modules and settings
- CHS = support for HDD without LBA, enabled by WITH_CHS in config.a80
- WDC = automatic geometry pre-set during device detection, required for some
Western Caviar disks, enabled by WITH_WDC in config.a80
- +3R = changes ROM of +2A/+3 via port 8189, enabled by ROM_2A_3 in config.a80
- MTF = more TZX features (support for nontap blocks in TZX), enabled by
WITH_MTF in config.a80
- SSv = screensaver, enabled by WITH_SS in config.a80
Logo can be selected by USELOGO (range 0-3, see config.a80).
If you don't like standard zx font, enable BOLD_FONT in config.a80 and you will
get bold font from Didaktik M (czech speccy clone).
PokeManager
- Controls are the same as in browser, in addition there are this keys:
A = Add - adds POKE (manual entry).
D = Delete - deletes POKE or cheat which is LAST in the list.
C = Clear - deletes all cheats and starts manual entry of POKE.
- For all cheat shows name and YES (active) or NO (inactive) for state cheats
or actual memory value for value required cheats.
- Colour of cursor have this meaning:
Green - original value is known and it or cheat value is in the memory.
It's safe to turn this cheat on and off.
Yellow - original value is unknown and check can't be perfomed. If you're
sure you have right POK file should be safe to turn cheat on but
turn off can be dangerous.
Red - original value is known and it nor cheat value is not in the
memory. It's VERY DANGEROUS turn this cheat on or off and this will
probably cause crash of game or application.
- When setting value for value requred cheats works standard input keys (see
Input controls). ORIGINAL value is offered (not actual and displayed memory
value). Is possible to turn off cheat with simple Enter.
- Recommended use of PokeManager: load game or application (snap or with tape
emulator). Enter DEMFIR's NMI menu and select relevant POK file in browser.
Set required cheats and quit to interrupted program. PokeManager can be used
to change state of the cheats anytime from NMI menu via key 'C'.
- Manual entry allows enter any POKE you want. This mode is entered when there
is no cheats or via key 'A' in PokeManager. Input buffer is filled with
string which should help with entering (use overwrite mode of input). POKE
entry is three numbers divided by space. First number is 128K RAM page number
(0-7 or 8 for ignore paging). Second number is memory address (23552-65535)
and third is value to store to address (0-255). There is string instead name
after successful entry. It's format:
"page:address,value (original RAM value)".
It confirms that all values was interpreted right. Now this POKE can be used
as any other cheat.
- PokeManager limitations:
- Max POK file size: 2048 bytes
- Max number of cheats or manual entered POKEs: 24 (one screen)
Due POK file characteristics can be this number lower - some cheats use
more values to change.
- Only first value of value required cheats can be entered (I never found POK
file which breaks this rule).
- All values are checked every time PokeManager is entered. If you turn on or
off any "red" cheat another PokeManager call it turns to "green" one
because values in RAM will be alright.
Firmware installation file (.dfw) description
Each line started with letter P mean one divIDE RAM page together with file
name which should be loaded into it (file is searched in actual directory and
path can't be specified). Line must have this format:
Ppagenumber filename
Line started with letter E means end of list.
See firmwares/*.dfw
Tritol