diff --git a/SD.zip b/SD.zip deleted file mode 100644 index 880e900..0000000 Binary files a/SD.zip and /dev/null differ diff --git a/SD/BIN/128 b/SD/BIN/128 index 05f2650..6af418c 100644 Binary files a/SD/BIN/128 and b/SD/BIN/128 differ diff --git a/SD/BIN/CAL b/SD/BIN/CAL new file mode 100644 index 0000000..8e568a3 Binary files /dev/null and b/SD/BIN/CAL differ diff --git a/SD/BIN/DATE b/SD/BIN/DATE new file mode 100644 index 0000000..0dd0e5a Binary files /dev/null and b/SD/BIN/DATE differ diff --git a/SD/BIN/DFWLOAD b/SD/BIN/DFWLOAD new file mode 100644 index 0000000..8c334b6 Binary files /dev/null and b/SD/BIN/DFWLOAD differ diff --git a/SD/BIN/GSC b/SD/BIN/GSC new file mode 100644 index 0000000..d14b833 Binary files /dev/null and b/SD/BIN/GSC differ diff --git a/SD/BIN/LAUNCHER b/SD/BIN/LAUNCHER index 30b1402..4018ebb 100644 Binary files a/SD/BIN/LAUNCHER and b/SD/BIN/LAUNCHER differ diff --git a/SD/BIN/SCL2TRD b/SD/BIN/SCL2TRD new file mode 100644 index 0000000..c5a54e5 Binary files /dev/null and b/SD/BIN/SCL2TRD differ diff --git a/SD/BIN/SERCP b/SD/BIN/SERCP new file mode 100644 index 0000000..a61c865 Binary files /dev/null and b/SD/BIN/SERCP differ diff --git a/SD/BIN/STRINGS b/SD/BIN/STRINGS new file mode 100644 index 0000000..3c91de6 Binary files /dev/null and b/SD/BIN/STRINGS differ diff --git a/SD/BIN/TAR b/SD/BIN/TAR new file mode 100644 index 0000000..6f6eb88 Binary files /dev/null and b/SD/BIN/TAR differ diff --git a/SD/BIN/TE b/SD/BIN/TE new file mode 100644 index 0000000..2063fff Binary files /dev/null and b/SD/BIN/TE differ diff --git a/SD/BIN/TSPLAY b/SD/BIN/TSPLAY new file mode 100644 index 0000000..a1e646e Binary files /dev/null and b/SD/BIN/TSPLAY differ diff --git a/SD/ESXMMC.BIN b/SD/ESXMMC.BIN index d384481..544b5a0 100644 Binary files a/SD/ESXMMC.BIN and b/SD/ESXMMC.BIN differ diff --git a/SD/SYS/AUTOBOOT.BAS b/SD/SYS/AUTOBOOT.BAS new file mode 100644 index 0000000..fcdba84 Binary files /dev/null and b/SD/SYS/AUTOBOOT.BAS differ diff --git a/SD/SYS/BDIR.KO b/SD/SYS/BDIR.KO index beaa044..1c7e235 100644 Binary files a/SD/SYS/BDIR.KO and b/SD/SYS/BDIR.KO differ diff --git a/SD/SYS/BETADISK.SYS b/SD/SYS/BETADISK.SYS index e52811d..532a5a8 100644 Binary files a/SD/SYS/BETADISK.SYS and b/SD/SYS/BETADISK.SYS differ diff --git a/SD/SYS/BFILE.KO b/SD/SYS/BFILE.KO index 59ea7ab..78458b1 100644 Binary files a/SD/SYS/BFILE.KO and b/SD/SYS/BFILE.KO differ diff --git a/SD/SYS/CONFIG/ESXDOS.CFG b/SD/SYS/CONFIG/ESXDOS.CFG index a1238c2..bfc57ad 100644 --- a/SD/SYS/CONFIG/ESXDOS.CFG +++ b/SD/SYS/CONFIG/ESXDOS.CFG @@ -1,10 +1,22 @@ -# esxDOS config file - -# AutoBoot mode (loads /SYS/AUTOBOOT.BAS) - -# 0=Disabled -# 1=Load only on Cold boot -# 2=Load only on Warm boot -# 3=Load always (Cold and Warm boot) +#esxDOS cfg +#AutoBoot +#0=Disabled +#1=Load only on Cold boot +#2=Load only on Warm boot +#3=Load always AutoBoot=0 + +#AutoLoad Colour +AutoLoadColour=7 + +#Z80DMA +#0=Disabled +#1=Enabled +DMA=0 +#Timings (2-4) +DMA_IO=4 +DMA_RAM=4 + +#TAP Parity +ParityCheck=0 diff --git a/SD/SYS/CUSTOM b/SD/SYS/CUSTOM new file mode 100644 index 0000000..0a6977f Binary files /dev/null and b/SD/SYS/CUSTOM differ diff --git a/SD/SYS/CUSTOM.ASM b/SD/SYS/CUSTOM.ASM new file mode 100644 index 0000000..2b97164 --- /dev/null +++ b/SD/SYS/CUSTOM.ASM @@ -0,0 +1,57 @@ +;============================================================================== +; Project: custom.zdsp +; Main File: custom.asm +; Date: 27/10/2017 12:00:00 +; +; Created with zDevStudio - Z80 Development Studio. +; +; pasmo --err --bin custom.asm custom +; +;============================================================================== + + include nmi.inc + include nmi.publics + + org ovrBuf + +; -------------- +; custom overlay +; -------------- +; +custom ld bc, 24*256+0 + ld a, COL_MID + call clrScr + + ld bc, 3*256+11 + ld a, BRIGHT+MAGENTA*8+WHITE + call clrScr + + ld hl, msg0001 + call prStr + + call waitKey + + ; + ; return values + ; + ; 1 - reload dir and reprint all + ; 2 - reprint all (top, mid, bottom and cursor) + ; 3 - reprint mid, bottom and cursor + ; 4 - reprint bottom and cursor + ; 5 - reprint nothing + ; + ld a, 2 + ret + +; -------- +; messages +; -------- +; +msg0001 db $16,12,64/2-12/2,'Hello world!', 0 + +;------------------------------------------------------------------------------ +IF $ > ovrBuf+SIZ_OVR + .ERROR Resulting code too long +ENDIF +;------------------------------------------------------------------------------ + diff --git a/SD/SYS/CUSTOM.ZDSP b/SD/SYS/CUSTOM.ZDSP new file mode 100644 index 0000000..07782cc --- /dev/null +++ b/SD/SYS/CUSTOM.ZDSP @@ -0,0 +1,34 @@ +[Project] +Name=custom.zdsp +Path=\\nas\SPECTRUM\!RETRO\zDevStudio\NMI\v13\custom\ +ObjExt=. + +[File] +Total=3 +0=custom.asm +1=NMI.inc +2=nmi.publics + +[Directory] +Total=1 +0=\\nas\SPECTRUM\!RETRO\zDevStudio\NMI\v13\custom\ + +[Options] +Total=10 +0=OBJFORMAT:0 +1=COMMONSEG:0 +2=AUTOLOCAL:0 +3=BRACKET:0 +4=DEBUG1:0 +5=DEBUG2:0 +6=CASEINS:0 +7=PUBSYMBOLS:0 +8=USERCOMMAND: +9=TOTALSYMBOL:0 + +[External] +Total=0 + +[FileInUse] +Total=1 +0=\\nas\SPECTRUM\!RETRO\zDevStudio\NMI\v13\custom\custom.asm diff --git a/SD/SYS/ESXDOS.SYS b/SD/SYS/ESXDOS.SYS index 1b9bf21..0746118 100644 Binary files a/SD/SYS/ESXDOS.SYS and b/SD/SYS/ESXDOS.SYS differ diff --git a/SD/SYS/NMI.INC b/SD/SYS/NMI.INC new file mode 100644 index 0000000..a32a006 --- /dev/null +++ b/SD/SYS/NMI.INC @@ -0,0 +1,65 @@ +;============================================================================== +; Project: NMI.zdsp +; File: NMI.inc +; Date: 29/07/2017 10:58:43 +; +; Created with zDevStudio - Z80 Development Studio. +; +;============================================================================== + +;============================================================================== +; DEFINITIONS +;============================================================================== + +M_VERSION MACRO + db 'v0.0.13' + ENDM + +; ----------------------------------------------------------------------------- +; Colors and attributes +; ----------------------------------------------------------------------------- +BLACK equ 0 +BLUE equ 1 +RED equ 2 +MAGENTA equ 3 +GREEN equ 4 +CYAN equ 5 +YELLOW equ 6 +WHITE equ 7 + +BRIGHT equ $40 +FLASH equ $80 + +; ----------------------------------------------------------------------------- +; Key table +; ----------------------------------------------------------------------------- +K_EDIT equ $07 +K_LEFT equ $08 +K_RIGHT equ $09 +K_DOWN equ $0a +K_UP equ $0b +K_DELETE equ $0c +K_ENTER equ $0d + +K_AT equ $ac ; SS+I +K_TO equ $cc ; SS+F + +; no mapping on speccy BASIC + +K_BREAK equ $1c + +K_SS_ENTER equ $1d + +; ----------------------------------------------------------------------------- +; Colors used in GUI +; ----------------------------------------------------------------------------- +COL_MID equ BLACK*8+WHITE ; black paper, white ink +COL_TOP equ WHITE*8+BLACK ; white paper, black ink +COL_BOT equ WHITE*8+BLACK ; white paper, black ink +COL_CUR equ BRIGHT+BLUE*8+WHITE ; blue paper, bright white ink +COL_ERR equ BRIGHT+RED*8+WHITE ; red paper, bright white ink + +; ----------------------------------------------------------------------------- +; Overlay system +; ----------------------------------------------------------------------------- +SIZ_OVR equ 768 ; size of overlay buffer diff --git a/SD/SYS/NMI.PUBLICS b/SD/SYS/NMI.PUBLICS new file mode 100644 index 0000000..8814af2 --- /dev/null +++ b/SD/SYS/NMI.PUBLICS @@ -0,0 +1,16 @@ +NMIbuf EQU 037ADH +savedSP EQU 03575H +divRAM EQU 0390AH +esxDOSv EQU 0390CH +flg128k EQU 03909H +bDAttr EQU 03917H +bDName EQU 03918H +ovrBuf EQU 03A00H + +waitKey EQU 03290H +readKey EQU 032BCH +clrScr EQU 0335DH +utoa EQU 033A5H +prStr EQU 033F9H +prChr EQU 0340CH +prtDec EQU 033E5H diff --git a/SD/SYS/NMI.SYS b/SD/SYS/NMI.SYS index 394b127..bcf53b2 100644 Binary files a/SD/SYS/NMI.SYS and b/SD/SYS/NMI.SYS differ diff --git a/SD/SYS/NMI_HELP.SCR b/SD/SYS/NMI_HELP.SCR index 0fb373b..9b847d3 100644 Binary files a/SD/SYS/NMI_HELP.SCR and b/SD/SYS/NMI_HELP.SCR differ diff --git a/SD/SYS/README.TXT b/SD/SYS/README.TXT new file mode 100644 index 0000000..5b24f3e --- /dev/null +++ b/SD/SYS/README.TXT @@ -0,0 +1,135 @@ +; ============================================================================= +; FUNCTIONS +; ============================================================================= + +; ----------------------------------------------------------------------------- +; waitKey wait for key or mouse +; +; input: - +; output: a = key pressed +; destroys: af,bc,de,hl +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; readKey read key +; +; input: - +; output: a = key pressed, 0 if none +; destroys: af,bc,de,hl +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; clrScr clear screen lines +; +; input: a = attribute +; b = number of lines to clear +; c = start line +; output: - +; destroys: af,bc,de,hl,af' +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; utoa Converts to asciiz and print at cursor position an unsigned int +; Skips '0' on the left +; Updates cursor coordinates +; +; input: hl = unigned int to convert +; output: - +; destroys: af,bc,de,hl +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; prtDec Print a asciiz string representing a number at cursor position +; Skips '0' on the left +; Updates cursor coordinates +; +; input: hl = pointer to asciiz string +; output: hl = pointer to end of string +; destroys: af,bc,de,hl,af' +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; prStr Print a asciiz string at cursor position +; Updates cursor coordinates +; +; input: hl = pointer to asciiz string +; output: hl = pointer to end of string +; destroys: af,bc,de,hl,af' +; ----------------------------------------------------------------------------- + +; ----------------------------------------------------------------------------- +; prChr Print a character at cursor +; Updates cursor coordinates +; +; Based on code by Andrew Owen in a thread on WoSF. +; Based on code by Tony Samuels from Your Spectrum issue 13, April +; 1985. A channel wrapper for the 64-column display driver. +; +; input: a = char to print +; output: - +; destroys: af,bc,de,hl,af' +; ----------------------------------------------------------------------------- + +; ============================================================================= +; VARIABLES +; ============================================================================= + +NMIbuf word pointer to NMI_BUFFER +savedSP word SP register saved on NMI navigator entry +divRAM word number of 8k RAM pages found on divXXX +esxDOSv byte version of esxDOS + '5' version is 0.8.5 + '6' version is 0.8.6 +flg128k byte copy of NMI_BUFFER RAM Size (0=16k,1=48k,2=128k) + +bDName bytes selected (at cursor) file/dirname asciiz string +bDAttr byte selected (at cursor) file/dirname attributes (like MS-DOS) + bit 4 (1=directory, 0=file) + +ovrBuf word address of overlay buffer + +; ============================================================================= +; CONSTANTS +; ============================================================================= + +SIZ_OVR size of overlay buffer + +COL_MID attributes of mid zone +COL_TOP attributes of top line +COL_BOT attributes of bottom line +COL_CUR attributes of cursor line +COL_ERR attributes of error message + +; ============================================================================= +; esxDOS STRUCTURES +; ============================================================================= + +; ---------- +; NMI_BUFFER +; ---------- +; +; Offset Size Description +; ---------------------------------------------------------------------------- +; 0 1 byte I <- 48k SNA, 27 bytes +; 1 8 word HL',DE',BC',AF' +; 9 10 word HL,DE,BC,IY,IX +; 19 1 byte Interrupt (bit 2 contains IFF2, 1=EI/0=DI) +; 20 1 byte R +; 21 4 words AF,SP +; 25 1 byte IntMode (0=IM0/1=IM1/2=IM2) +; 26 1 byte BorderColor (0..7) +; +; v0.8.0, v0.8.5 +; +; 27 2 word PC (Program Counter) <- 128k SNA, 4 bytes +; 29 1 byte RAM bank paged in @ $c000 +; 30 1 byte TR-DOS (SNA file format) +; 30 1 byte RAM Size (0=16k,1=48k,2=128k) <- CONFLICT !!! +; +; v0.8.6 +; +; 27 1 byte RAM Size (0=16k,1=48k,2=128k) +; 28 2 word PC (Program Counter) <- 128k SNA, 4 bytes +; 30 1 byte RAM bank paged in @ $c000 +; 31 1 byte TR-DOS (SNA file format) +; diff --git a/SD/SYS/TAPE.KO b/SD/SYS/TAPE.KO index 59c839f..442344e 100644 Binary files a/SD/SYS/TAPE.KO and b/SD/SYS/TAPE.KO differ diff --git a/SD/SYS/TRDBOOT.BIN b/SD/SYS/TRDBOOT.BIN index e82c350..194bf62 100644 Binary files a/SD/SYS/TRDBOOT.BIN and b/SD/SYS/TRDBOOT.BIN differ diff --git a/SD/SYS/TRDOS54T.KO b/SD/SYS/TRDOS54T.KO index ece3127..8c47502 100644 Binary files a/SD/SYS/TRDOS54T.KO and b/SD/SYS/TRDOS54T.KO differ diff --git a/SD/SYS/VDISK.KO b/SD/SYS/VDISK.KO new file mode 100644 index 0000000..8f575d4 Binary files /dev/null and b/SD/SYS/VDISK.KO differ