Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
DTP's EMulator FIles Runner. WARNING! This is not the official repository! For studying purposes only!
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
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