Top secrets sources NedoPC pentevo

Rev

Rev 1009 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

[*]
; unreal speccy configuration file

UNREAL=0.39.0   ; make sure you don't have old INI version


[MISC]
; give idle timeslices to other applications
ShareCPU=1      ; 1 - only for fast CPUs (incompatible with SoundDrv=none)
;
HighPriority=1  ; boost process priority, disabled on ShareCPU=0
;
SyncMode=SOUND ; video synchronization method: sound, tsc, video
;
HighResolutionTimer=0 ; 1 - set system timer resolution to 1ms, 0 - default timer resolution (~15ms)
;
; high memory: PENTAGON, SCORPION, PROFSCORP, PROFI, ATM450, ATM710, ATM3, KAY, PLUS3, QUORUM
HIMEM=QUORUM
; memory size, KB. pentagon,atm2: 128/256/512/1024, scorp,kay: 256/1024,
; ATM450: 512/1024, profi: 1024 only, quorum: 128/1024
RAMSize=1024
; Lock memory above 128k when loading sna128 (pentagon only)
Sna128Lock=1
; intercept rom tape loader for faster loading
TapeTraps=1
; start tape on ROM load routine
TapeAutoStart=1
; cmos on DFF7/BFF7: none, DALLAS (pc chip), or 512Bu1 (russian chip)
CMOS=512Bu1
; cache size: 16,32 or 0 - disabled. no effect for ATM-4.50 model
Cache=0
; bits, that can't be updated by Z80 and cleared by RESET (decimal value)
; ex: mask=3 - disable HWMC and 512x192, mask=255 - disable all additional hardware
EFF7mask=0      ; EFF7mask=0 - all pentagon features on
;
SMUC=0          ; enable/disable NVRAM + CMOS RTC
;
RESET=MENU       ; may be: BASIC,DOS,MENU,SYS
;
ZC=0             ; enable/disable Z-Controller
;
HideConsole=0   ; for gui freaks, who annoyed by main console window, set to 1
;
ConfirmExit=0   ; 1 for exit confirmation message
;
; help filename
Help=help_eng.html

; directory with zx-files

DIR=.

; Kondrat'yev ISA modem emulated through windows modem on COM-port

; if you own internal PCI modem, use "settings/input" dialog to find out port
Modem=NONE      ; NONE or COM1-COM255


[AUTOLOAD]
; disk images and snapshot, loaded at startup
; file may be compressed, but only one file in archive is allowed
;c:\zx\us032atm\atmmm4.trd
;c:\zx\sys.trd
diskA=
diskB=
diskC=
diskD=
;snapshot=demo1.sna
DefaultDrive=Auto ; Auto, A, B, C, D


[INPUT]
; default/bk08/quorum
ZXKeyMap=quorum
; you can define own layout, naming section in this INI file [ZX.KEYS.myname]
; create layouts for xas/storm/zxasm/alasm/zxword/sts/etc yourself, i'm bored
KeybLayout=quorum
KeybPCMode=0    ; when enabled, using pc defaults, ex: SHIFT+7 => &
Mouse=KEMPSTON  ; mouse type: NONE/KEMPSTON/AY
Wheel=KEMPSTON  ; mouse wheel: NONE/KEMPSTON/KEYBOARD
JoyMouse=0      ; emulate kempston joystick on mouse
MouseScale=0    ; logarithmic scale: ZX_mouse=PC_mouse*2^(Scale), valid: [-3;3]
SwapMouse=0     ; swap left and right mouse buttons
KJoystick=1     ; emulate kempston joystick on keyboard and/or gameport
FJoystick=0     ; emulate fuller joystick on keyboard and/or gameport
Matrix=0        ; emulate keymatrix effect
Fire=KFIRE      ; autofire key -> kempston
FireRate=1      ; autofire button up/down delay (INTs)
AltLock=1       ; does not update ZX-SPECTRUM keyboard while ALT pressed
ATMKBD=0        ; ATM PC/XT keyboard controller
Joy=0           ; Joystick id (0, 1, ...)

; clipboad paste delays

HoldDelay=2
ReleaseDelay=5
NewlineDelay=20


[ULA]
Frame=71680      ; t-states in frame
Paper=17989      ; t-states before paper
Line=224         ; t-states in line
int=50           ; int freq
intlen=32        ; int length in t-states
EvenM1=0         ; align M1 cycle to even T-state (for scorpion)
4TBorder=0       ; update border every 4T states (for scorpion)
FloatBus=0       ; unstable data bus
FloatDOS=0       ; unstable data bus in TR-DOS mode
PortFF=0         ; enable/disable port FF
mcx_small=320    ; visible multicolor area width (small border)
mcy_small=240    ; visible multicolor area height (small border)
b_top_small=24   ; top border height (small border)
b_left_small=32  ; left border width (small border)
mcx_full=384     ; visible multicolor area width (full border)  
mcy_full=288     ; visible multicolor area height (full border)
b_top_full=48    ; top border height (full border)              
b_left_full=64   ; left border width (full border)              

Preset=PENTAGON     ; don't use above settings and load preset

; PRESET.NAME=FRAME,PAPER,LINE,INT,INTLEN,EvenM1,4TBorder,floatBus,floatDOS,PortFF,

; mcx_small,mcy_small,b_top_small,b_left_small,mcx_full,mcy_full,b_top_full,b_left_full
PRESET.PENTAGON=71680,17989,224,50,32,0,0,0,0,0,320,240,24,32,384,288,48,64
PRESET.SCORPION=69888,14344,224,50,32,1,1,0,0,1,320,240,24,32,384,288,48,64 ; thanks to Faster
PRESET.SCORPION_TURBO+=70784,14344,224,50,32,0,1,0,0,1,320,240,24,32,384,288,48,64 ; thanks to Faster
PRESET.ATM1_2_3.5MHz=69888,14395,224,50,32,0,0,0,0,1,320,240,24,32,384,288,48,64 ; thanks to DDp
PRESET.ATM1_2_7.0MHz=99880,17989,224,50,32,0,0,0,0,1,320,240,24,32,384,288,48,64
PRESET.PROFI=69888,12580,224,50,28,0,0,0,0,0,320,240,24,32,384,288,48,64 ; thanks to DDp
PRESET.KAY1024=69887,16132,224,50,32,0,1,0,0,0,320,240,24,32,384,296,56,64 ; (ïîäãîí ïîä kay_demo)

; ATM 7.10 hi-res video modes swap RAM/CPU address bus A5-A7<=>A8-A10

AtmMemSwap=0
; reprogram color DACs with ATM palette. with this option
; noflic filter works only in fullscreen 16/32-bit,
; colors of system leds are also affected
UsePalette=1
ProfiMonochrome=0
;
ULAPlus=0     ; enable/disable ULA+

[VIDEO]

VSync=0       ; enable for slower, but less jerky screen repaint.
             ; uses backbuffer - requires twice more video memory
             ; WARNING: eats a lot of cpu time!

FullScr=0     ; start at full-screen. windowed mode can be used only for
             ; GDI, Blitter or Overlay video filter / driver

Refresh=0     ; monitor refresh rate in fullscreen mode (0-default).
             ; for video=resampler, the more - the better

Border=small  ; border size:            none / small / wide
NoFlic=0      ; apply noflic filter
AltNoFlic=0   ; use interlaced algorithm for video=double
FlashColor=0  ;

MinRes=480    ; minimal screen y-resolution in fullscreen mode
             ; use 480 or higher to avoid switching mode when entering monitor
             ; use 1024 to force 1280x1024 on LCD instead of 1280x960


ChunkSize=auto  ; 2,4, or auto-detect (only for ch* videofilters)
PixelScroll=0   ; detect per-pixel scrolling for video=text


; frame resampler options:

rsm.frames=4  ; frames to mix (2-8)

; fir interpolation mode:

; 2C - 12hz cut-off (gigascreen), 3C - 8hz cut-off (3-color)
; FULL - full details (scrollers), SIMPLE - average of last 2 frames
rsm.mode=2C


; scale factor for 'video=advmame'. accepted values: 2,3,4

; 4x scale requires 1280x960 pixels. use border=none, if your monitor displays only 1024x768
scale=2

; window scale factor (for hardware stretching)

winscale=1

; video filter/renderer


video=double

; values for video filter:

;  normal - fastest, but supports only standart spectrum screen, noflic, flash-color and HWMC
;  double - slower, but offers better quality and works in: pentagon 512x192, profi 512x240, ...
;  triple - 3x picture scale
;  quad - 4x picture scale, designed to use in LCD with 1280x1024 to avoid hardware stretching
;         use with minres=1024 to avoid 1280x960 mode
;  text - converts 4x8 fonts to 8x8 or 8x16 (for reading e-zines)
;  resampler - converts spectrum 50hz-int into 60/75/80/... hz display refresh
;  bilinear - color interpolation (MMX)
;  scale - fake 'vector' scaling
;  advmame - 2x,3x,4x scaling algorithm from AdvanceMAME project
;  tv - color TV emulation, windowed mode
;  ch_ov - chunky (fast), windowed mode (overlay, 16bit)
;  ch_hw - chunky (fast), windowed mode (hardware accel, 32bit)
;  ch_bl - chunky (filtered,320x240x16)
;  ch_b  - chunky (filtered,640x480x16)
;  ch4true - 32bit 4x4 chunky, full color precision (slow, but no special hardware reqd)

; driver for video=normal/double/triple/quad/text


driver=blt

; video driver:

;   ddraw - direct access to video memory, fullscreen only, fastest
;   ddrawh, ddrawt - fullscreen 16- and 32-bit modes
;   gdi   - standart windows driver (slowest, but most compatible)
;   blt   - hardware blitter. recommended for accelerated cards (geforce4/etc)
;   ovr   - video overlay. recommended in windowed mode for slow video cards
;   d3d   - hardware scaling via direct 3d surface (dx9 required)
;   d3de  - hardware scaling via direct 3d surface (dx9 required) fullscreen only

fastlines=0 ; for video=double - draw twice faster in expense of visual quality
           ; for video=anti64 - 4x8->8x8, else 4x8->8x16

; use overlay is faster, but you'll get wrong colors if videocard can't

; use RGB555/RGB565 pixels formats for overlay (such as all nVidia cards)
; some video cards do interpolation in overlay mode,
; even if we don't requested it

ScanIntens=100;45  ; (%) bright for scan lines when video=double,fastlines=0
              ; only for true-color and high-color modes
              ; 8-bit modes use palette values ZN,ZB

; ignore these filters

Hide= ;ch_bl,ch_ov,ch4true

; update border for CPU expensive filters

Update=1
; how much frames to skip before displaying frame (for PCI video set to 2)
SkipFrame=0
; don't wastetime on drawing when running on max speed
SkipFrameMaxSpeed=64
; screenshot format: SCR, BMP, PNG
ScrShot=PNG
; directory for screenshots (without '\' at end)
ScrShotDir=.
; when enabled, displays videocard vendor id, device id, card name
; (warning: sometimes uses driver database at http://crl.microsoft.com !!!)
; when disabled, faster startup but no additional information
DetectModel=0

; apply filter for 1x2 Atari chunks. situable for games, converted from XL,

; like SpyVsSpy, Flying Shark. presets for games defined in [COLORS] section
; (for now, filter works in 8-bit and 16-bit-normal /not-double/ modes)
;AtariPreset=fl_shark_red_palette
AtariPreset=none


; ffmpeg settings

; exec:       path and name of ffmpeg executable (without quotes)
; newconsole: 1 - open new console for ffmpeg output,
;             0 - print ffmpeg output into emul's console (useful for debug)
; parm:       encoding settings (see ffmpeg doc)
; vout:       output video file name (use '#' sign for sequence number substitution)
ffmpeg.exec=ffmpeg.exe
ffmpeg.newconsole=1

; ffmpeg encoding options

; -ss 00:00:00.500   - skip first 500 ms (skip 25 frames with status line)
; -af volume=3.0     - gain sound volume by 3
; -vf "..."          - apply video filter
; -r 25              - set 25 fps
; -c:a ...           - set audio codec ("copy" for uncompressed wav)
; -c:v ...           - set video codec ("copy" for uncompressed rgb24)
; -b:a 320k          - set bitrate for audio
; -b:v 2800k         - set bitrate for video

;# mp3:320kbps, x264:baseline,10

ffmpeg.parm=-c:a libmp3lame -b:a 320k -af volume=3.000000 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -ss 00:00:00.500
ffmpeg.vout=video#.avi

;# mp3:320kbps, x264:lossless

;ffmpeg.parm=-c:a libmp3lame -b:a 320k -af volume=3.000000 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -crf 0 -ss 00:00:00.500
;ffmpeg.vout=video#.avi

;# wav, x264:lossless

;ffmpeg.parm=-c:a copy -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -crf 0 -ss 00:00:00.500
;ffmpeg.vout=video#.avi

;# uncompressed

;ffmpeg.parm=-c:a copy -c:v copy -ss 00:00:00.500
;ffmpeg.vout=video#.avi

;# Image sequence: PNG

;ffmpeg.parm=
;ffmpeg.vout=video#_%06d.png

;# PAL DVD video

;  MUST use picture size greater than 720x576 (for example, DOUBLE SIZE and COMPLETE border)!
;ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "crop=720:576,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
;ffmpeg.vout=video#.mpg

;# PAL DVD video

;  MUST use picture size lower than 720x576 (and DOUBLE SIZE for correct interlace)!
;ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "pad=720:576:(ow-iw)/2:(oh-ih)/2,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
;ffmpeg.vout=video#.mpg

;# RTMP streaming: justin.tv

;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -f flv
;ffmpeg.vout=rtmp://live.justin.tv/app/live_74829844_mfrdpoeg034tn03gn03ring3f0rngc

;# RTMP streaming: own3d.tv

;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -f flv
;ffmpeg.vout=rtmp://live.eu.own3d.tv/live/b8493921_949585_kjhb5632l3l1

;# RTMP streaming: twitch.tv

;ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -bufsize 1835k -f flv
;ffmpeg.vout=rtmp://live.justin.tv/app/live_sub_5b8ed4fae83fe83e920227337beab7e73b7a3ba3



[BETA128]
Beta128=1
Noise=0 ; seek noise
Traps=0 ; intercept sector save/load routines in TR-DOS ROM for faster loading
Fast=0  ; disable all FDD/FDC delays. some programs will not work
IL=1    ; sector interleave (1=1:1, 2=2:1, 3=3:1) applied when loading TRD/SCL
       ; if you prefer fast=0, set to 2 for 3d13 loaders, to 1 for turbo-loaders
BOOT=boot6.$b

[SOUND]
SoundFilter=0   ; lowpass filter (good for beeper)
SoundDrv=ds     ; wave, ds or none
RejectDC=1      ; reject DC component of output sound

; sound buffer size for SoundDrv=wave

; the more buffer, the more delay before sound playing...
; if sound is jerky, try SoundBuffer=16
; for really fast computers with windows 2000, try SoundBuffer=4
SoundBuffer=auto;10  ; only for SoundDrv=wave

DSPrimary=0;1     ; use primary buffer for DSound. no sound in background.
               ; useful only for troubleshooting


; when [SOUND] Enabled=0, emulator runs on maximum speed

Enabled=1

Fq=44100        ; check maximum sampling rate in your soundcard manual
               ; setting freq not supported by hardware
               ; will cause resampling and degrade quality and performance

GSType=none     ; BASS, Z80 or NONE
GSReset=0       ; reinit GS on reset

SD=0            ; enable/disable soundrive
CovoxFB=0       ; enable/disable pentagon covox
CovoxDD=0       ; enable/disable scorpion covox
MoonSound=1     ; enable/disable moonsound

Saa1099=0       ; enable/disable saa1099

; max sound volume is 8192. set to 0 to completely disable sound device

BeeperVol=8192     ; most popular sound device
MicOutVol=1000     ; tape saving
MicInVol=1000      ; tape loading
AYVol=8192         ; volume of each channel
CovoxFBVol=8192    ; pentagon covox
CovoxDDVol=6000    ; scorpion covox
SDVol=4000         ; soundrive
GSVol=8000         ; general sound (for both high- and low- level emulation modes)
BASSVol=8000       ; MOD-player of BASS.DLL
MoonSoundVol=8000  ; ZXM-MoonSound

[NGS]           ; neo gs settings
RamSize=2048    ; ngs ram size 2048, 4096
; sdcard image
SDCARD=

[SAA1099]
FQ=8000000

[AY]
Chip=YM                         ; bus reaction (none/AY/YM/YM2203)
FQ=1774400                      ; chip clock fq
Stereo=ABC                      ; AY stereo mode - any of STEREO.*
VolTab=default.YM               ; volume table - any of VOLTAB.*
UseSamples=0                    ; 0 - square tones, 1 - digital samples (low quality)
; double-AY scheme:
;   none    - no soundchip
;   default - single AY/YM
;   FULLER  - fuller box (single AY/YM) (0x3F, 0x5F)
;   PSEUDO  - pseudo-turbo (one port for two devices + some phase shift)
;   QUADRO  - pentagon 2nd AY on #AFFD,#EFFD
;   POS     - power of sound turbo-AY (bit 0 of port #1F)
;   CHRV    - NedoPC turbo-sound (switch chip on selection reg #FE/FF)
Scheme=default;CHRV;default


; STEREO.PRESET_NAME=A_left,A_right,B_left,B_right,C_left,C_right

; (you can define your custom presets, all numbers are from [0; 100])
STEREO.ABC=100,10,66,66,10,100
STEREO.ACB=100,10,10,100,66,66
STEREO.BAC=66,66,100,10,10,100
STEREO.mono=66,66,66,66,66,66
STEREO.unreal=90,20,66,66,20,90

; volume tables

VOLTAB.default.AY=0000,0340,04C0,06F2,0A44,0F13,1510,227E,289F,414E,5B21,7258,905E,B550,D7A0,FFFF
VOLTAB.default.YM=0000,0000,00EF,01D0,0290,032A,03EE,04D2,0611,0782,0912,0A36,0C31,0EB6,1130,13A0,1751,1BF5,20E2,2594,2CA1,357F,3E45,475E,5502,6620,7730,8844,A1D2,C102,E0A2,FFFF
VOLTAB.BULBA_OPEN.AY=0000,1111,2222,3333,4444,5555,6666,7777,8888,9999,AAAA,BBBB,CCCC,DDDD,EEEE,FFFF
VOLTAB.BULBA_OPEN.YM=0000,0000,041A,08D4,11A8,1A7B,234F,2C23,34F7,3DCB,469F,4F72,5846,611A,69EE,72C2,7B96,8469,8D3D,9611,9EE5,A7B9,B08D,B960,C234,CB08,D3DB,DCB0,E584,EE57,F72B,FFFF
VOLTAB.DELPHISPEC=0136,0170,01B5,0208,026A,02DF,0369,040E,04D2,05BB,06CF,0818,099F,0B6F,0D97,1026,1332,16D0,1B1D,203A,264D,2D85,361A,404D,4C6C,5AD4,6BF3,804D,987C,B53B,D764,FFFF
VOLTAB.X128=0000,0200,0500,0700,0A00,0C00,1200,1600,1D00,2200,2600,2C00,3F00,3F00,3F00,FF00
VOLTAB.YASE=0000,0200,0500,0700,0A00,0C00,1200,1600,1D00,2200,2600,2C00,3F00,3F00,3F00,FF00
VOLTAB.ZXMAK=0000,0000,00F8,01C2,029E,033A,03F2,04D7,0610,077F,090A,0A42,0C3B,0EC2,1137,13A7,1750,1BF9,20DF,2596,2C9D,3579,3E55,4768,54FF,6624,773B,883F,A1DA,C0FC,E094,FFFF
;original Lion17.YM=0000,0156,0228,033A,0502,086F,0CD4,17B9,1AF0,2E8D,4047,4F47,6528,7B19,92E1,AAAA
;original Lion17.AY=0000,0014,007F,00BF,00FA,0139,0175,01BB,0241,02F1,03F2,04B2,05DE,076B,08BA,0A0F
VOLTAB.Lion17.YM=0000,0201,033C,04D7,0783,0CA6,133E,2395,2868,45D3,606A,76EA,97BC,B8A5,DC51,FFFF
VOLTAB.Lion17.AY=0000,01FD,0CA0,12FD,18DA,1F1E,2515,2C0A,395C,4ADC,6468,777F,9552,BCCA,DE18,FFFF
;original Vaggelis Kapartzianis=00,03,04,05,06,07,08,0A,0C,0E,11,15,19,1D,23,2A
VOLTAB.Vaggelis Kapartzianis=0000,1249,1861,1E79,2492,2AAA,30C2,3CF3,4924,5555,679E,7FFF,9860,B0C2,D554,FFFF
VOLTAB.RAMSOFT.AY=0000,0364,0500,0700,0A80,1000,1600,2300,2A00,4300,5C00,7300,9180,B400,D800,FFFF
VOLTAB.RAMSOFT.YM=0000,0000,00F8,01C2,029E,033A,03F2,04D7,0610,077F,090A,0A42,0C3B,0EC2,1137,13A7,1750,1BF9,20DF,2596,2C9D,3579,3E55,4768,54FF,6624,773B,883F,A1DA,C0FC,E094,FFFF
VOLTAB.R80=0000,0201,033C,04D7,0783,0CA6,133E,2396,2868,45D4,606A,76EA,97BC,B8A6,DC52,FFFF

[COLORS]
color=alone     ; default

; palette format:

; name=ZZ,ZN,NN,NB,BB,ZB:R11,R12,R13;R21;R22;R23;R31;R32;R33
; where ZZ,NN,BB - bright levels for black,normal,and bright colors
; ZN,NB,ZB - bright levels for zero+normal, normal+bright, zero+bright
;            for GIGASCREEN and FLASH-COLORS
; Rnn - matrix for post-processing:
;  real_Red    = (Red*R11 + Green*R12 + Blue*R13) / 0x100
;  real_Green  = (Red*R21 + Green*R22 + Blue*R23) / 0x100
;  real_Blue   = (Red*R31 + Green*R32 + Blue*R33) / 0x100
;
; note: emulator uses 8-bit precision for color components,
; 8-bit filters: use 6 bit precision (VGA palette limitation)
; overlay & hi-color: truncates results to 5 bit
; true color: no quality loss
;
; R, G, B - 0..0xFF
; R11..R33 - 0..0x100
; palette settings does not affect chunky modes
;
; default=00,80,C0,E0,FF,C8:100,00,00;00,100,00;00,00,100

Mars=00,80,C0,E0,FF,C8:100,00,00;40,C0,00;00,40,C0
Ocean=20,80,A0,C0,E0,A8:D0,00,30;00,D0,30;00,00,100
Grey=00,80,C0,E0,FF,C8:49,92,24;49,92,24;49,92,24
alone=00,60,AA,E0,FF,AA:100,00,00;00,100,00;00,00,100
pulsar=00,76,CD,E9,FF,9F:100,00,00;00,100,00;00,00,100
ATM=00,55,AA,E0,FF,AA:100,00,00;00,100,00;00,00,100

; presets for atari-like mode

; format: <PAPER><INK>:<COL1><COL2><COL3><COL4> [ , <PAPER><INK>:<COL1><COL2><COL3><COL4> ]*
; color is a mix of 2 pure spectrum colors, e.g. 11=red+red=red, 47=green+white=light-green, etc...
atari.fl_shark_red_palette=06:EE666600
atari.test=70:00132177,0F:001199FF,34:33119944


[HDD]
Scheme=NONE     ; interface type: NONE/ATM/NEMO/NEMO-A8/NEMO-DIVIDE/SMUC/PROFI/DIVIDE
SkipReal=1;1  ; disable work with physical drives. faster startup when
           ; you have no connected spectrum drive(s)

CDROM=SPTI ;ASPI;SPTI  ; SPTI (native WinNT) or ASPI (use 3rd-party library wnaspi32.dll)

; for image file, specify filename with full path, else it'll not work


; master device. specify image filename or <MODEL,SERIAL> to use real drive

Image0=
;D:\CPM.HDD
CHS0=20/16/63  ; max size, accessible through CHS. not used for real drive
LBA0=20160;412110     ; max size, accessible through LBA. not used for real drive
HD0RO=1         ; read only flag
CD0=0           ; 1 if image is cdrom
; slave device. empty filename used for disconnected device
Image1=
;<SAMSUNG CD-ROM SC-140F,>
;<_NEC CD-RW NR-7800B>
;<SONY DVD RW DRU-710A,May26,2005>
CHS1=0/0/0
LBA1=0
HD1RO=0
CD1=0            ; 1 if image is cdrom

[ZC]            ; Z-Controller settings
; sdcard image
SDCARD=

[ROM]
; general sound firmware
GS=bootgs.rom

; 64/128/512/1024K ROM images (single file)


ATM1=atm103rs.rom

;ATM2=Xbios103.rom

ATM2=bios_1_07_13.rom
;ATM2=glukatm.rom

ATM3=zxevo.rom

; standard PROFI 64K rom

PROFI=profi.rom

; standard scorpion 64K rom

SCORP=scorp295.rom

; for SMUC 512k ROM, use file.rom:0 and file.rom:1 to select active bank

PROFROM=scorp_prof401.rom:0

; standard +3 64K rom

PLUS3=plus341.rom

; standard quorum 64K rom

QUORUM=qu7v42.rom

; moonsound wavetable

MOONSOUND=yrw801.rom


; you can create own 64K-ROMSET, naming ini section [ROM.my_own_set]

; for empty ROMSET, single-file large ROM used (accordingly to memory model)
ROMSET=

[ROM.default]
title=Separate ROMs set
; service rom [optional]
sys=glukpen.rom
; basic48 - high 16K of sinclair rom [required!]
sos=2006.rom
; tr-dos [optional]
dos=dos6_10e.rom
; basic128 - low 16K of sinclair rom [optional]
128=qc_3_05.rom

[ROM.pentagon]
title=Pentagon-128 (32K) + TR-DOS
128=pentagon.rom:0
sos=pentagon.rom:1
dos=trd504tm.rom
sys=trd504tm.rom

[ROM.GLUK]
title=Mr Gluk Reset Service
128=qc_3_05.rom
sos=2006.rom
dos=dos6_10e.rom
sys=glukpen.rom

[ROM.scorpion]
title=Scorpion (64K,v2.95)
128=scorp295.rom:0
sos=scorp295.rom:1
sys=scorp295.rom:2
dos=scorp295.rom:3

[ROM.profi]
title=PROFI (64k)
sys=profi.rom:0
dos=profi.rom:1
128=profi.rom:2
sos=profi.rom:3

[ROM.KAY1]
title=KAY (64K,JV Kramis 0.3)
128=kay1024.rom:0
sos=kay1024.rom:1
dos=kay1024.rom:2
sys=kay1024.rom:3

[ROM.KAY2]
title=KAY (64K,JV Kramis 0.2)
sys=kay1024b.rom:0
dos=kay1024b.rom:1
128=kay1024b.rom:2
sos=kay1024b.rom:3

[ROM.48K]
title=ZX-Spectrum 48K
sos=48.rom

[ROM.48KTRDOS]
title=ZX-Spectrum 48K + TR-DOS
sos=48.rom
dos=trd504tm.rom

[ROM.128K]
title=ZX-Spectrum 128K
128=128.rom:0
sos=128.rom:1

[ROM.ATM2]
Title=BIOS1.07.13 for ATM2
sos=bios_1_07_13.rom:0
dos=bios_1_07_13.rom:1
128=bios_1_07_13.rom:2
sys=bios_1_07_13.rom:3

[ROM.PLUS3]
title=ZX-Spectrum +3
128=plus341.rom:0
sys=plus341.rom:1
dos=plus341.rom:2
sos=plus341.rom:3


[LEDS]
; enable leds
leds=1
; ay amplitude peaks on keyboard leds
KBD_AY=0

; led coordinates in pixels. comment out, if you don't want some led

; negative coordinates are offset from bottom and right
; WARNING! if you choose coordinates outside visible screen area
; emulator will crash

; AY volumes. color indicates noise, envelope or digital sound use

AY=1:1,1
; show Z80 t-states between HALTs and PC framerate
Perf=1:1,-11
PerfShowT=0             ; display used CPU t-states

; GS/TRDOS/TAPE read/write

LOAD=1:-24,1
; active input devices: keyboard, mouse, kempston
Input=1:20,1
; local time
Time=1:-32,-10
; on-screen watches (debugger)
OSW=0:-50,26
; zx-spectrum memory in dynamic: read/write/execute
MemBand=0:60,3
; bytes per pixel in memory band (allowed 64,128,256,512)
BandBpp=256

[ARC]
; these files are ignored
SkipFiles=*.nfo;*.txt;*.diz;*.inf;files.bbs;descript.ion

; you may add your own archivers!


; command line to extract all files without pathnames and without

; queries on overwrite, use %s to indicate archive filename;
; use archivers, that understand long filenames!
CAB=extrac32 /E /Y "%s"
ZIP=7z e -y "%s"
RAR=7z e -y "%s"
7Z=7z e -y  "%s"

[SYSTEM.KEYS]

; pc keyboard:

;
;  ESC  F1  F2  F3  F4     F5  F6  F7  F8    F9  F10 F11 F12          PRSCR SCLOCK PAUSE
;  TIL   1   2   3   4   5   6   7   8   9   0 MINUS PLUS  BACK         INS HOME PGUP     NUMLOCK GRDIV GRMUL GRSUB
;  TAB   Q   W   E   R   T   Y   U   I   O   P   LB    RB               DEL END  PGDN        N7    N8    N9   GRADD
;  CAPS  A   S   D   F   G   H   J   K   L   COL QUOTE ENTER                                 N4    N5    N6
;  LSHIFT Z  X   C   V   B   N   M COMMA POINT SLASH RSHIFT BACKSL           UP              N1    N2    N3   GRENTER
;  LCONTROL LALT              SPACE                  RALT RCONTROL     LEFT DOWN RIGHT       N0          NP

; LMB,RMB,MMB - mouse buttons

; MWU,MWD - mouse wheel up/down
; JLEFT,JRIGHT,JUP,JDOWN,JFIRE - joystick/gamepad
; JB0..JB31 - joystick/gamepad buttons

; mouse & joystick "keys" can't be bound to commands, only to spectrum keys


; p.s.

;      CONTROL = LCONTROL or RCONTROL
;      ALT     = LALT or RALT
;      SHIFT   = LSHIFT or RSHIFT
; numlock must be on for N0-N9 and NP

; system commands:

; command=key1 [key2 [key3 [key4]]]

; keys active in emulation mode


main.exit=ALT F4           ; why do this?
main.lockmouse=MMB         ; read kempston mouse in windowed mode
main.monitor=SHIFT ESC           ; for hackers only
main.selectfilter=ALT 4       ; select video filter
main.selectdriver=SHIFT F4 ; select video driver for some filters
main.fullscreen=ALT ENTER  ; toggle full-screen on/off
main.pause=PAUSE           ; pause
main.selectfix=ALT GRMUL       ; select video parameter
main.selectsnd=SHIFT GRMUL   ; select soundchip parameter or palette
main.incfix=SHIFT GRADD    ; fine tuneup
main.decfix=SHIFT GRSUB    ; fine tuneup
main.incfix10=ALT GRADD        ; tuneup
main.decfix10=ALT GRSUB        ; tuneup
main.leds=ALT GRDIV            ; leds on/off
main.maxspeed=NUMLOCK      ; max speed on/off
main.pokedialog=ALT 6         ; enter poke(s)
main.starttape=F7          ; start/stop tape
main.tapebrowser=SHIFT F7  ; tape browser
main.screenshot=ALT F8     ; screenshot
main.savevideo=CONTROL F8  ; save video
main.reset=F12             ; reset to [MISC]Reset=DOS/BASIC/MENU/SYS
main.reset128=CONTROL SHIFT F12 ; reset to basic 128
main.resetsys=ALT F12      ; reset to service ROM
main.reset48=ALT SHIFT F12 ; reset to basic 48 with locked 128k memory
main.resetbasic=SHIFT F12  ; reset to basic 48 with unlocked 128k memory
main.resetdos=CONTROL F12  ; reset to TR-DOS
main.resetcache=ALT CONTROL F12    ; reset to cache
main.nmi=F11               ; NMI without ROM switching
main.nmidos=CONTROL F11    ; TR-DOS magic
main.nmicache=ALT F11      ; NMI in cache
main.help=ALT 1               ; show keys
main.settings=Alt F1       ; emulation settings (GUI)
main.save=ALT 2               ; save disk/snapshot
main.load=ALT 3               ; load disk/tape/snapshot
main.savesound=ALT 5          ; save WAV/VTX
main.qsave1=ALT F2         ; quick save to qsave1.sna
main.qsave2=CONTROL F2     ; quick save to qsave2.sna
main.qsave3=SHIFT F2       ; quick save to qsave3.sna
main.qload1=ALT F3         ; quick load from qsave1.sna
main.qload2=CONTROL F3     ; quick load from qsave2.sna
main.qload3=SHIFT F3       ; quick load from qsave3.sna
main.keystick=SCLOCK       ; toggle keystick mode
main.autofire=ALT NUMLOCK  ; toggle autofire mode
main.saveall=F9            ; quick save cmos and disks
main.xtkbd=ALT CONTROL Z   ; enable/disable ATM XT keyboard (emulation controls blocked!)
main.pastetext=ALT SHIFT INS ; copy text from clipboard to keyboard buffer
main.size1=                ; set normal window size (in windowed mode)
main.size2=                ; set double window size (in windowed mode)
main.sizem=                ; maximize window (in windowed mode)
main.memsearch=ALT F6      ; search in memory for changed values (cheats, etc)
main.border_none=          ; set empty border
main.border_small=         ; set small border
main.border_full=          ; set full border

; keys in all monitor windows


mon.exit=ALT F4           ;
mon.emul=ESC              ; back to emulation
mon.bpdialog=ALT C        ; conditional breakpoints dialog
mon.gs=ALT G              ; gs status dialog
mon.pokedialog=ALT P      ; enter poke(s) F6 is already used
mon.tapebrowser=SHIFT F7  ; tape browser
mon.reset=F12             ; reset to [MISC]Reset=DOS/BASIC/MENU/SYS
mon.reset128=CONTROL SHIFT F12 ; reset to basic 128
mon.resetsys=ALT F12      ; reset to service ROM
mon.reset48=ALT SHIFT F12 ; reset to basic 48 with locked 128k memory
mon.resetbasic=SHIFT F12  ; reset to basic 48 with unlocked 128k memory
mon.resetdos=CONTROL F12  ; reset to TR-DOS
mon.resetcache=ALT CONTROL F12    ; reset to cache
mon.nmi=ALT SHIFT F11     ; NMI without ROM switching
mon.nmidos=CONTROL F11    ; TR-DOS magic
mon.nmicache=ALT F11      ; NMI in cache
mon.help=F1               ; show keys
mon.settings=ALT F1       ; emulation settings (GUI)
mon.save=F2               ; save disk/snapshot
mon.load=F3               ; load disk/tape/snapshot
mon.savesound=F5          ; save WAV/VTX
mon.qsave1=ALT F2         ; quick save to qsave1.sna
mon.qsave2=CONTROL F2     ; quick save to qsave2.sna
mon.qsave3=SHIFT F2       ; quick save to qsave3.sna
mon.qload1=ALT F3         ; quick load from qsave1.sna
mon.qload2=CONTROL F3     ; quick load from qsave2.sna
mon.qload3=SHIFT F3       ; quick load from qsave3.sna
mon.setrange=F6           ; set range of breakpoints
mon.resetrange=SHIFT F6   ; reset range of breakpoints
mon.screen=F9             ; show screen, as it present in video memory
mon.altscreen=SHIFT F9    ; show inactive screen
mon.rayscreen=ALT F9      ; show painted screen area until crt-ray (with MC, border & 2-scr effects)
mon.step=F7               ; single step
mon.stepover=F8           ; step over loops and calls
mon.exitsub=F11           ; trace until (sp)
mon.loadblock=ALT R       ; load memory block
mon.saveblock=ALT W       ; save memory block
mon.fillblock=ALT F       ; fill memory block with pattern
mon.setbank=ALT B         ; write to #7FFD
mon.sethimem=ALT M        ; write to model-specific extended memory port
mon.next=TAB              ; next window
mon.prev=SHIFT TAB        ; prev window
mon.dump=ALT D            ; toggle dump
mon.rip=ALT T             ; ripper's tool
mon.osw=ALT O             ; setup on-screen watches
mon.scrshot=ALT S         ; toggle screenshot/scrdump/watches
mon.setwatch=CONTROL U    ; set user-defined watch address
mon.switchay=ALT Y        ; switch active AY (turbo-sound)
mon.labels=CONTROL J      ; goto label
mon.memsearch=ALT F6      ; search in memory for changed values (cheats, etc)
mon.cpu=CONTROL TIL       ; switch to next cpu
mon.switchdump=CONTROL D  ; switch dump mode (mem/disk/cmos/nvram/comppal)
; keys in registers window

reg.left=LEFT           ; select register
reg.right=RIGHT         ; select register
reg.up=UP               ; select register
reg.down=DOWN           ; select register
reg.edit=ENTER          ; edit current register
reg.a=CONTROL A         ; edit A
reg.f=CONTROL F         ; edit flags
reg.bc=CONTROL B        ; edit BC
reg.de=CONTROL D        ; edit DE
reg.hl=H                ; edit HL
reg.pc=P                ; edit PC
reg.sp=S                ; edit SP
reg.ix=X                ; edit IX
reg.iy=Y                ; edit IY
reg.i=I                 ; edit i
reg.r=R                 ; edit R
reg.im=M                ; edit im
reg.iff1=CONTROL 1      ; edit iff1
reg.iff2=CONTROL 2      ; edit iff2
reg.SF=ALT S            ; toggle SF
reg.ZF=ALT Z            ; toggle ZF
reg.F5=ALT 5            ; toggle F5
reg.HF=ALT H            ; toggle HF
reg.F3=ALT 3            ; toggle F3
reg.PF=ALT P            ; toggle PF/PV
reg.NF=ALT N            ; toggle NF
reg.CF=ALT C            ; toggle CF
reg.codejump=QUOTE      ; goto address in code window under cursor
reg.datajump=COL        ; goto address in data window under cursor

; keys in cpu window


cpu.findpc=HOME         ; set cursor at PC
cpu.here=F4             ; trace to cursor
cpu.findtext=ALT F7     ; find string
cpu.findcode=CONTROL F7 ; find code with mask
cpu.goto=G              ; goto address
cpu.bpx=SPACE           ; breakpoint under cursor
cpu.asm=ENTER           ; edit instruction
cpu.setpc=Z             ; set PC to cursor
cpu.up=UP               ; move cursor up
;cpu.up=MWU             ; move cursor up
cpu.down=DOWN           ; move cursor down
;cpu.down=MWD           ; move cursor down
cpu.left=LEFT           ; move cursor left
cpu.right=RIGHT         ; move cursor right
cpu.pgdn=PGDN           ; next page
cpu.pgup=PGUP           ; prev page
cpu.save1=CONTROL 1     ; save cursor position to slot 1
cpu.save2=CONTROL 2
cpu.save3=CONTROL 3
cpu.save4=CONTROL 4
cpu.save5=CONTROL 5
cpu.save6=CONTROL 6
cpu.save7=CONTROL 7
cpu.save8=CONTROL 8
cpu.rest1=1             ; save cursor position to jumpstack, load from slot 1
cpu.rest2=2
cpu.rest3=3
cpu.rest4=4
cpu.rest5=5
cpu.rest6=6
cpu.rest7=7
cpu.rest8=8
cpu.back=BACK           ; pop cursor position from jumpstack
cpu.context=QUOTE       ; push cursor position and goto instruction operand
cpu.datajump=COL        ; jump to instruction operand in data window
cpu.labels=CONTROL L    ; show labels on/off
cpu.importl=CONTROL A   ; menu for importing labels from XAS/ALASM

; keys in memory dump window


mem.left=LEFT           ; cursor left
mem.right=RIGHT         ; cursor right
mem.up=UP               ; cursor up
mem.down=DOWN           ; cursor down
mem.pgup=PGUP           ; page up
mem.pgdn=PGDN           ; page down
mem.switch=CONTROL TAB  ; move to hex/ascii
mem.stline=HOME         ; start of line
mem.endline=END         ; end of line
mem.findtext=ALT F7     ; find text in memory / disk track
mem.findcode=CONTROL F7 ; find code with mask in memory / disk track
mem.goto=CONTROL G      ; goto address
mem.mem=CONTROL M       ; select memory editor
mem.diskphys=CONTROL V  ; select disk editor (physical track)
mem.disklog=CONTROL O   ; select disk editor (logical sectors)
mem.diskgo=CONTROL T    ; select drive/track/sector in diskeditor
mem.pc=CONTROL P        ; goto PC
mem.sp=CONTROL S        ; goto SP
mem.bc=CONTROL B        ; goto BC
mem.de=CONTROL D        ; goto DE
mem.hl=CONTROL H        ; goto HL
mem.ix=CONTROL X        ; goto IX
mem.iy=CONTROL Y        ; goto IY



[ZX.KEYS.default]

Name=unreal default

;               ZX keyboard layout:

;
;  1    2    3    4    5    6    7    8    9    0
;  Q    W    E    R    T    Y    U    I    O    P
;  A    S    D    F    G    H    J    K    L   ENT
; CAP   Z    X    C    V    B    N    M   SYM  SPC

; KLEFT,KRIGHT,KUP,KDOWN,KFIRE,KFIRE1,KFIRE2,KFIRE3 - kempston joystick

; FLEFT,FRIGHT,FUP,FDOWN,FFIRE,FFIRE1,FFIRE2,FFIRE3 - fuller joystick

; format:

; PC_KEY=[ZX_KEY_SHIFT] ZX_KEY

1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
TIL=CAP 1
CAPS=CAP 2
PGUP=CAP 3
PGDN=CAP 4
LEFT=CAP 5
DOWN=CAP 6
UP=CAP 7
RIGHT=CAP 8
DEL=CAP 9
BACK=CAP 0
MINUS=SYM J
PLUS=SYM K
COMMA=SYM N
POINT=SYM M
ENTER=ENT
SPACE=SPC
LB=SYM 8
RB=SYM 9
COL=SYM Z
TAB=CAP SPC             ; break
INS=SYM W
HOME=SYM Q
END=SYM E
QUOTE=SYM P
SLASH=SYM C
BACKSL=SYM CAP

LSHIFT=CAP
RSHIFT=SYM

N4=KLEFT
N6=KRIGHT
N8=KUP
N2=KDOWN
N5=KFIRE
N1=KLEFT KDOWN
N3=KRIGHT KDOWN
N7=KUP KLEFT
N9=KUP KRIGHT

MWU=CAP 7
MWD=CAP 6

JLEFT=KLEFT
JRIGHT=KRIGHT
JUP=KUP
JDOWN=KDOWN
JFIRE=KFIRE

JB1=1
JB2=2
JB3=3
JB4=4
JB5=5
JB6=6
JB7=7
JB8=8

[ZX.KEYS.XAS]

Name=XAS 7.xx (incomplete)

1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
SHIFT=CAP
CONTROL=SYM

[ZX.KEYS.ACEDIT]

; layout created by Alone Coder


Name=ACEdit

1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
TIL=CAP 1
CAPS=CAP 2
PGUP=CAP 3
PGDN=CAP 4
LEFT=CAP 5
DOWN=CAP 6
UP=CAP 7
RIGHT=CAP 8
DEL=CAP 9
BACK=CAP 0
MINUS=SYM J
PLUS=SYM L
COMMA=SYM N
POINT=SYM M
ENTER=ENT
SPACE=SPC
LB=SYM 8
RB=SYM 9
COL=SYM O
TAB=SYM CAP
;ESC=CAP SPC
INS=SYM W
HOME=SYM Q
END=SYM E
QUOTE=SYM P
SLASH=SYM C
BACKSL=SYM Z

SHIFT=CAP
CONTROL=SYM

N4=KLEFT
N6=KRIGHT
N8=KUP
N2=KDOWN
N5=KFIRE
N1=KLEFT KDOWN
N3=KRIGHT KDOWN
N7=KUP KLEFT
N9=KUP KRIGHT
GRSUB=SYM J
GRADD=SYM K
GRMUL=SYM B
GRDIV=SYM V

[ZX.KEYS.Z80Stealth]

Name=Z80Stealth default

;               ZX keyboard layout:

;
;  1    2    3    4    5    6    7    8    9    0
;  Q    W    E    R    T    Y    U    I    O    P
;  A    S    D    F    G    H    J    K    L   ENT
; CAP   Z    X    C    V    B    N    M   SYM  SPC

; KLEFT,KRIGHT,KUP,KDOWN,KFIRE,KFIRE1,KFIRE2,KFIRE3 - kempston joystick

; FLEFT,FRIGHT,FUP,FDOWN,FFIRE,FFIRE1,FFIRE2,FFIRE3 - fuller joystick

; format:

; PC_KEY=[ZX_KEY_SHIFT] ZX_KEY

1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
TIL=CAP 1
CAPS=CAP 2
PGUP=CAP 3
PGDN=CAP 4
LEFT=CAP 5
DOWN=CAP 6
UP=CAP 7
RIGHT=CAP 8
DEL=CAP 9
BACK=CAP 0
MINUS=SYM J
PLUS=SYM K
COMMA=SYM N
POINT=SYM M
ENTER=ENT
SPACE=SPC
LB=SYM 8
RB=SYM 9
COL=SYM Z
TAB=CAP SPC             ; break
INS=SYM W
HOME=SYM Q
END=SYM E
QUOTE=SYM P
SLASH=SYM C
BACKSL=SYM CAP

RALT=SYM
LSHIFT=CAP
RSHIFT=CAP
RCONTROL=CAP SYM

N4=KLEFT
N6=KRIGHT
N8=KUP
N2=KDOWN
N5=KFIRE
N1=KLEFT KDOWN
N3=KRIGHT KDOWN
N7=KUP KLEFT
N9=KUP KRIGHT

MWU=CAP 7
MWD=CAP 6

JLEFT=KLEFT
JRIGHT=KRIGHT
JUP=KUP
JDOWN=KDOWN
JFIRE=KFIRE

[ZX.KEYS.quorum]
Name=Quorum

;               Quorum keyboard layout:

;
; F1 F2 F3 F4 F5      [G]  NMI  INV   [< RES
; [E] 1 2 3 4 5 6 7 8 9 0 - + BS DEL                        NSLASH NSTAR NMINUS
; TAB  Q  W  E  R  T  Y  U  I  O  P  [  ]  \                  N7    N8     N9
; CAPS  A  S  D  F  G  H  J  K  L  ;  '  ~  ENT               N4    N5     N6
; RUS LAT Z X C V B N M , . /  UP                             N1    N2     N3
; CAP FIRE   SPC       SYM LT  DN  RT                         N0  NPOINT NPLUS
;
; FIRE,LT,DN,RT,UP=0,5,6,8,7
; NMI,RES=F11,F12(see main.*)
; INV,[< - NOT emulated
; KLEFT,KRIGHT,KUP,KDOWN,KFIRE,KFIRE1,KFIRE2,KFIRE3 - kempston joystick
; FLEFT,FRIGHT,FUP,FDOWN,FFIRE,FFIRE1,FFIRE2,FFIRE3 - fuller joystick
; (JLEFT,JRIGHT,JUP,JDOWN,JFIRE  reserved for joystick)
; format:
; PC_KEY=[ZX_KEY_SHIFT] ZX_KEY
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
ESC=EBOX
DEL=BS
TIL=TILDA
CAPS=CAPS
LEFT=5
DOWN=6
UP=7
RIGHT=8
BACK=DEL
MINUS=-
PLUS=+
COMMA=,
POINT=.
ENTER=ENT
SPACE=SPC
LB=[
RB=]
COL=COLON
TAB=TAB
;HOME=N7
;END=N1
;PGUP=N8
;PGDN=N2
N1=N1
N2=N2
N3=N3
N4=N4
N5=N5
N6=N6
N7=N7
N8=N8
N9=N9
N0=N0
NP=NPOINT
QUOTE=QUOTE
SLASH=/
BACKSL=\
F1=F1
F2=F2
F3=F3
F4=F4
F5=F5
F6=GBOX
GRDIV=NSLASH
GRMUL=NSTAR
GRSUB=NMINUS
GRADD=NPLUS
PGUP=RUS
PGDN=LAT

LSHIFT=CAP
RSHIFT=SYM

;N4=KLEFT

;N6=KRIGHT
;N8=KUP
;N2=KDOWN
;N5=KFIRE
;N1=KLEFT KDOWN
;N3=KRIGHT KDOWN
;N7=KUP KLEFT
;N9=KUP KRIGHT