From
Alexey Kokotkin
→
To
All
25 December 2006
Hello, Maksagor
That’s right, I didn’t have and couldn’t have had a screw then, because... they were still there then
unpopular. The real spec is Pentagon 128, it could only be tested by
Stever on the same Pentagon 128, all with one single flop... however 4
NK-DOS disk support! (but not sure completely).
From
Timonin Maxim Anatolievich
→
To
All
25 December 2006
Hello Nomy Graphics
Nom> That's right, I didn't have and couldn't have a screw then, because... they
Nom> were still unpopular then. Real spec - Pentagon 128,
Nom> could only be tested by Stever on the same Pentagon 128,
Nom> all with one single flop.. however, NK-DOS supports 4 disks!
Nom> (but not sure completely).
I'm asking in the sense that attaching any driver to the system
devices is impossible (when iS-DOS was written, then screws were not yet fashionable
entered. But the ability to work through firewood with almost any device is already
was laid down) and the system is tightly tied to flops? Even a RAM disk
won't be able to use it?
If so, then it's a pity....
From
Timonin Maxim Anatolievich
→
To
All
25 December 2006
Hello Nomy Graphics
In other words, the subject is designed exclusively for flop guides and no other
Doesn’t see devices and basically can’t?
From
Alexey Kokotkin
→
To
All
25 December 2006
Hello, All
Nomy-KSA Disk Operation System Version 0.7
http://zxaaa.untergrund.net/DEMO2/nkdosv07.zip
Copyright (C) 1997 Nomy Graphics Limited (main coder)
Copyright (C) 1996 Ksa Software (coding printing routine)
(2006) AAA as producer, program saver and publisher
(2006) Wlodek as disk restorer
(2006) Nomy Graphics Ltd as releaser!
Good afternoon, ladies and gentlemen! I bring to your attention a “new” operating system,
written by your humble servant back in 1997! Unfortunately, talent
I didn’t have a distributor then, and everything was safely mothballed
for descendants of the 21st century on a pack of disks, successfully restored and
re-recorded by Messrs. WlodekTom and AAA, for which many thanks to them!
In my opinion, the system may interest you for the following points:
- interface proximity to MS-DOS and pride in the Speccy platform,
reproducing the heritage of 16-bit machines!
- relative rarity of the development (in relation to analogues)
- some co-authorship by the genius KSA
- I have sources for MASM
- and the actual features, of course.
Description attached:
<< Documentation of NK-DOS v0.7 >>
───────────
9472;──────────^
72;──────────────────────&
#9472;──────────
472;───────
1.Introduction
Disk operating system NK-DOS v0.7 (hereinafter
DOS) is a simplified analogue of MS-DOS 3.0 on IBM. DOS
supports:
- full compatibility with TR-DOS v5.03 (and other versions)
- standard MS-DOS user interface;
- multi-level system of directories (catalogs);
- standard operations with files and directories (viewing,
delete, rename, copy and run);
- viewing text files;
- use of a mask (symbols * and ?);
- use of keys (indicated after the slash /);
- execution of command files (BATCH);
- etc...
2.Getting started.
To load DOS you need to run the file "NK-DOS.B"
in the usual way from TR-DOS (RUN "NK-DOS") or any
Boot's. After loading you will see a splash screen, and below -
DOS prompt (if the disk is not located
file "AUTOEXEC.b" - in this case it will be launched, and only
Once executed, a DOS prompt will appear). The system is ready for
work.
3.User interface.
The DOS interface is similar to the MS-DOS interface. AfterDOS prompt displays a blinking cursor indicating the location
where the entered text will be typed. When typing, use
function keys (see table 2).
The type of prompt depends on the PROMPT command. On startup
DOS automatically executes the PROMPT $P$G command, and the prompt
contains information about the current drive and directory.
4.Basics of DOS.
When entering a command (after pressing ), the command
The processor looks for this command among the internal DOS commands (see.
table 1) and executes it if found. If not, then search
is maintained on disk (in the current directory) of a file with the same name
and with one of the extensions listed below, depending on
depending on the extension, different operations will be performed on the file:
- .B (bas) BASIC file. Loads in a special way: under
address #5D3B, SOS system variables and stack are set,
then the BASIC program is launched;
- .e (exe) Executable file. Same as .B;
- .c (com) Executable file. The file is loaded into memory
to the address specified in the directory, and control passes to
this address;
- .b (bat) Command (batch) file. By format
text file, a sequence of commands will be executed
DOS;
If no file with such
extensions, the message "Bad command or file name" is displayed.
5.Features of NK-DOS v0.7.NK-DOS has a number of differences from MS-DOS due to
low computer resolution, the condition is not to lose compatibility
with TR-DOS, expediency, early version and disadvantage
professional level for the main coder:
- file extensions are ONE character long;
- letter height is ignored, but not for extensions;
- when writing files or directories to disk from the dialed
file or directory names, letter height is not ignored (however
when working only with DOS, you will not notice this at all);
- the clock and calendar do not work;
- no MOVE command (very necessary);
6.DOS commands.
The following is a list of internal DOS commands. Conditional
designations:
[] - optional element;
COPY - command keyword;
filename - you need to insert the file name;
path - path;
d; -; drive;
CD [d:][path]
- Sets the current directory;
CHDIR [d:][path]
- Same as CD;
CLS
- Cleans the display screen;
COPY
DEL
DIR
ECHO
ERASE
EXIT
M.D.
MKDIR
PAUSE
PROMPT
QUIT
R.D.
R.E.M.
REN
RENAME
RMDIR
TYPE
VER
VOL
(all similar to MS-DOS)
From
Alexey Kokotkin
→
To
All
25 December 2006
Hello, Maksagor
No, I tried not to become rigidly attached to anything. Possibility of RAM disk there
just laid!
NK-DOS uses only two TR-DOS routines; read; sector in
memory and write the sector to memory. He does everything else himself - working with
directories, launching and reading, etc. And even these subroutines are not accessed
directly, but through entry points for such cases (i.e. external
the driver can cause, for example, access to the disk instead of #3D13 address exactly
this NK point, and NK is already looking - it really needs to be at #3D13 or another
write-read procedure (at least on LDIR). I just wanted to make a RAM disk,
it was already planned for version 1.0, or even 0.7. Yes, I didn’t get around to it..
Oh, I poured some water, in short: the opportunity is provided. But it has not been implemented.
Well, there are sources and skilled people for that.
From
Timonin Maxim Anatolievich
→
To
All
25 December 2006
Hello Nomy Graphics
Nom> Oh, I poured some water, in short: the opportunity is provided. But not
Nom> is implemented. Well, there are sources and skilled people for that.
Well this is much better...
From
Stanislav Yudin
→
To
All
26 December 2006
Hello Nomy Graphics
Nom> Absolutely right, subdirectories are files of a special type (as in
Nom> MS-DOS, by the way) with an empty extension, in the body of which there is a table
Nom> placement of files in this directory (similar in format
Nom> TR-DOS' zero track). The first file automatically
Nom> a superdirectory file with the name ".." is written, which contains only
Nom> link to the coordinates of the file allocation table of the upper directory
Nom> order (if root, then 0 track 0 sector).
But in this case it turns out that if any commander or team
TR-DOS MOVE will compact the disk, then the entire system will be destroyed! Or I
Am I missing something?
It seems to me that my catalog system still looks more attractive...
:) At least all the files are visible to regular software and the directories are not taken over from the files
places and quantities.
Nom> The extension is one character long, because in TR-DOS it is allocated for each
Nom> the file is only 16 bytes in the allocation table, there is room for the extension
Nom> only 1. I didn’t find a way to put 2 more.
TR-DOS has been using a three-letter extension system for a long time. Althoughit’s quite possible that it took root after ’97... The point is that under two
additional letters are used two bytes located in the file descriptor
TR-DOS is right after the extension symbol. These bytes are responsible for the initial
file address (download address), which for binary files (pictures, text and
etc.) do not carry any special meaning and are more convenient to use just under
three letter extension.
Look at my commander (for example, on my avatar :)), there are catalogs there and
three letter extensions.
It would be nice to also support the clock.
I don’t know what practical sense there is in this system, but I still like it :)
From
Stanislav Yudin
→
To
All
26 December 2006
Hello, Maksagor
And on what principle is the catalog system organized?
I see that from the TR-DOS point of view, directory names are files. And in the body of these
files store the names of the contents of directories? Do I understand correctly?
> - file extension is ONE character long;
Why?
> - letter height is ignored
Do you mean register?
In general, I liked it :) A kind of MS-DOS simulator :)
From
Valery Grigoriev
→
To
All
26 December 2006
Hello,GriV
That is does the software environment exist on this system?
From
Valery Grigoriev
→
To
All
26 December 2006
Hello Nomy Graphics
Does this DOS have a restart system? To what extent are they registered? Is it possible "left"
program to use this system?
From
Alexey Kokotkin
→
To
All
26 December 2006
Hello, CityAceE
Thank you.
That's right, subdirectories are special types of files (as in MS-DOS,
by the way) with an empty extension, the body of which contains a file placement table in
this directory (similar in format to TR-DOS's zero track).
The first file is automatically written to a superdirectory file with the name "..", in
which only has a link to the coordinates of the directory file allocation table
upper order (if root, then 0 track 0 sector).
The extension is one character long, because in TR-DOS it is allocated for each file
only 16 bytes in the allocation table, only 1 remains for expansion. Not found
way to put 2 more. Moreover, I wanted to leave the maximum
TR-DOS compatible. However, since extensions can be different
case, there are quite a few possible combinations for the extension name.
"Height of letters is ignored.." yes, we are talking about case. Also, similar to MS-DOS
- case does not matter for file names and DOS commands. However, he has
value for extensions, as already mentioned, and also here’s something else: let’s say in
NK-DOSе is renamed or copied with a new name. So, if
type his name in different registers, then he will be written down - taking into account all
registers (and for TR-DOS there will be a difference - boot or BOOT) but for NK-DOS it is still
will not be - it can still be accessed as boot, and as BOOT, andhow BOot.
From
Alexey Kokotkin
→
To
All
26 December 2006
Hello, CityAceE
Cit> But in this case it turns out that if any commander or
Cit> the TR-DOS MOVE command will compact the disk, then the entire system will be
Cit> is destroyed! Or am I misunderstanding something?
It will be destroyed. For NK, I had to write my own MOVE command, which I couldn’t do.
From
Alexey Kokotkin
→
To
All
26 December 2006
Hello,GriV
ToGriV; I; I don’t know, unfortunately, what a restart system and software is
environment :(
What is: an external program can use DOS routines, they are all
are written separately, and the whole command like RENAME, MKDIR, and more elementary
operations.
To CityAceE; yes; cool commander. And how did you make it so that all the files
visible? What if there are more than 128 of them?
I remember about these two bytes, but decided not to touch them for the extension.
From
van Yu Shinn
→
To
All
26 December 2006
Hello Nomy Graphics
Nom> NK-DOS (version of MS-DOS under TR-DOS)
More like "command.com option for TR-DOS".
From
van Yu Shinn
→
To
All
27 December 2006
Hello Nomy Graphics
Nom> I don’t know, unfortunately, what a restart system is
“Restart system” is a term invented by iskrasoft to scare little ones
children.
On other operating systems this is called "system calls" or "interface
Application Programming" (API).
It's funny that in ZX-Format#4 some systems were classified according to these
"restart systems" and is-dos "won".
From
Stanislav Yudin
→
To
All
27 December 2006
Hello Nomy Graphics
Nom> And how did you make all files visible?
A detailed description of the directory system goes along with the description of the commander.
In short: the system lives on free sectors of the TR-DOS disk and does not
affects the rest of the disk space and does not modify the file system, then
is simply an add-on to the TR-DOS file system.
Nom> What if there are more than 128 of them?
See above. No TR-DOS restrictions are removed, that is, as before files
can be no more than 128.
From
TomCaT
→
To
All
27 December 2006
Hello, CityAceE
Great. To improve your specs, you should definitely master that whole bunch YOURSELF
software that has already been written for market leaders. But we have a huge
their experience is their advantage. Experience in creating good, sustainable, comfortable,
friendly to both the user and the programmer of the products. What difference does it make?
sorts / there are none. Programming is not a big deal. Good at programming
- this is experience. But programming good things well is an art.
I think PC-DOS (which, in general, is the prototype of MS-DOS, only a la not Bill) was on
really good
From
TomCaT
→
To
All
27 December 2006
Hello, CityAceE
Great. To improve your specs, you should definitely master that whole bunch YOURSELF
software that has already been written for market leaders. But we have a huge
their experience is their advantage. Experience in creating good, sustainable, comfortable,
friendly to both the user and the programmer of the products. What difference does it make?
sorts / there are none. Programming is not a big deal. Good at programming
- this is experience. But programming good things well is an art.
I think PC-DOS (which, in general, is the prototype of MS-DOS, only a la not Bill) was on
really a good operating system. I still have warm feelings, and I’m programming
more and more under it, except. very difficult to implement things for which
It will take me years alone (without a group/company/firm). And therefore this project is very
really needed. Thank you, Nomy Graphics. It needs to be developed!
From
Nikolay Gribeshchenko
→
To
All
27 December 2006
Hello TomCaT
Tom> I think PC-DOS (which, in general, is the prototype of MS-DOS, only a la
Tom> not Bill) was actually a good OS.
As far as I remember, PC-DOS is the same MS-DOS, only sold by itself
IBM, along with new computers.
From
Alexey Kokotkin
→
To
All
28 December 2006
Hello, ng_dead
To TomCaT;
Thank you; for your feedback. The presence of NK grades is a definite plus, without them the project
It's much more difficult to develop, isn't it?
By the way, I planned to add only support for the RAM disk, to fine-tune the main
commands - and start writing Nomy Commander under NK-DOS, using both
since those same procedures built into the system that I mentioned. And then
already, say, write external commands in the form of com files, such as tree,
xcopy, format, move, etc. Well, and then we could start working on Windows
:wink;
Not; I know, I’m afraid to develop the project myself, a lack will interfere
time.
From
Timonin Maxim Anatolievich
→
To
All
28 December 2006
Hello Nomy Graphics
Nom> By the way, I planned to add only support for the RAM disk, to debug it
Nom> basic commands - and start writing Nomy Commander under
Nom> NK-DOS, using exactly the same procedures built into the system
Nom> which I mentioned.
I propose to create a description of how to create a driver for the system (and its structure)
any I/O device and how to load it into memory and connect it to
logical device (letters A; B:; C; D:; E; F:; et seq.).
Then I myself would try to cross-breed the system with a screw or RAM disk
arbitrary volume. Or your file system is strictly oriented towards
file system in flop sizes and does not tolerate increasing disk sizes
space by orders of magnitude (megabytes and tens of megabytes)?
From
Pavel Fedin
→
To
All
28 December 2006
Hello Nomy Graphics
IMHO we need to get rid of TR-DOS and BASIC-48. I propose to consider memory in
the following concepts.
1. Lower memory area - low memory, non-paged memory.
2. Page window - Paged memory, at address 0xC000. Number of pages - up to
256 (#00 - #FF).
Virtualize page memory in the following form:
1. Pages rigidly projected at #4000 and #8000 should be excluded from numbering.
2. Virtually represent page memory as continuous, filled
from top to bottom.
Next we enter the boundaries:
1. The lower limit of low memory available for programs.
2. Number of the first page available for programs (actually the upper limit
memory).
The page contains OS modules (drivers, file systems, libraries). Module
starts with a header that contains the length of the module and its name. Module with
an empty name (#00) means a free block. Thus. When placing
new module (driver), the system begins scanning pages starting with the most
top until it finds a piece of memory of the required size. After
installing the driver, we have its base address and its page number, this
enough to contact him.
For interpage calls, we have a short resident in the lower memory.
The resident contains the number of the system page (usually the top one),
in which the CORE module is located - it is responsible for the interconnection of other modules,contains a map of memory pages, etc. It knows how to turn on this page and
transfer control there.
The only limitation is that the module size cannot exceed 16 kb. Easy
This is done by breaking large modules into several small ones.
The area of BASIC-48 system variables can be “collapsed”, leaving only
FRAMES, KSTATE, MODE, FLAGS, REPDEL and REPPER. They are used by the INT handler
and will be useful to us for servicing keyboard input. If we want to use
RST #10 for your own needs a la IS-DOS, then also CURCHL. By the way FRAMES3, MODE
and FLAGS can be moved closer to the screen by changing IY. This gives maximum
freeing up lower memory along with the ability to restore at any time
complete system variables, thus ensuring BASIC compatibility with
new system. We don't need TR-DOS variables.
You can also create a ROM version of the system that works without system variables
and the resident in general.
From
Vladimir Bovin
→
To
All
11 January 2007
Hello Sonic
Son> IMHO we need to get rid of TR-DOS and BASIC-48. I suggest you consider
Son> memory in the following terms.
Son> 1. Lower memory area - low memory, non-paged memory.
Son> 2. Page window - Paged memory, at address 0xC000.....
Ballin, up to 90% right out of my head :)
It's not a matter of untying (no need to break anything on the Spectrum) from TR-DOS, but
constructing a certain layer that needs to be addressed, well, in the program it goes:
CALL savefile
..
CALL loadfile
RET
;routines for working with external devices
savefile JR initial; WELL and FULLY documented piece of memory, its
the volume is determined at the beginning (obviously not to infinity:).
DRIVE DEFM "A"; variables are placed here
initial; the driver itself
RET
Only now a situation may arise as in the "Insert System Disk Please" document.
So there is a need to store vital drivers in some kind of
RAM data bank marked “system”, i.e. with a lack of memory in a situation
Load Program, the system will report: "Only system memory remains, do you want
kill currently unused drivers? Subroutines for work will be erased
c:" and here the list of driver names from the RAM is read. We choose, we kill
marked. As you delete it, the free memory counter increases. As soon asthe situation will become comfortable, the color of the name of the downloaded file will change from red
will be redrawn in green and you can press enter (I can’t stand it when
freeing memory, you need to go somewhere, then, and then look again for the file that
I wanted to launch it :).
I got off topic. So, having decided to transfer the file to an MS-DOS disk, we switch the driver
and now calling the above /CALL savefile/ with the request to "save as:
mytext.txt", the subroutine will wait for the MSDOS disk. Further, until
again we will not make the switch, the system will only work with MSDOS (obviously,
not finding system files, it will ask you to indicate the location and type of disk where they are
are located).
But MS-DOS requires a lot of RAM, I myself primarily rely on
Users' use of an exhaustive driver, since TASIS is likely
ATM will firmly enter the life, and PC must give.
Well, 48k is the minimum. I would like to initially focus on 48k,
but there will also be a driver that can be replaced and expanded as desired
(i.e. the driver has its own system menu). I’ll write support for 48k myself and publish it
characteristics of this driver (commands, entry points, driver dimensions). In general,
entry points, IMHO, only for quality procedures. I want to have the opportunity
connect any driver that the programmer has coded. If wearing PRINT AT
10,10;"Speccy" means printing the word in coordinates, this is in no wayThat means you have to squeak into the speaker, right? Coders will focus on
basis, and if the program is written taking into account new commands (a new
driver, larger/smaller size), then before starting, normal program
will inform you that "the program uses commands that are not included in this driver, so
that we won’t get too tired and demolish your system, download the driver there. Given
URL"
To summarize, I note that when creating a system (IMHO), you need to focus on
other coders, i.e. so that it is possible to replace your system fragments
strangers. As it were, a system consisting of blocks: Text output, graphics output,
outputting data to external memory devices, etc.
When will I start writing!!!
:)))
From
Alexey Kokotkin
→
To
All
16 January 2007
Hello, Maksagor
> This is exactly what I wanted to know when I asked all my questions above. Then
> everything is much worse.
So, I’ll explain once again how to work with the devices. NK-DOS instead
procedures TR-DOS #3D13 uses its entry point (in the source code under the label
M3D13), which checks the drive value if it is less than 4 (drives A-D),
then turns to #3D13, if more than 4 (disks with the name "E" and older) - then to
a separate procedure that has not yet been completed (costs RET). At the same time #3D13
used almost exclusively for 2 things - reading a sector into the buffer and
write a sector from the buffer. Special procedures for working with TR-DOS
There really is no disk in NK.
However, to connect drivers for other disk devices, it is recommended
exactly in the place of this procedure (at the very end of the source code) insert JP on
a driver that will ensure that information from another medium is read into the buffer.
So, for example, you can support a RAM disk. As for the screw, then
more significant alterations will be required, since everywhere and everywhere
it is assumed that we are dealing with 16-bit values for addresses,
size in bytes, 256-byte disk sector, 8-bit track and track number.
From
Pavel Fedin
→
To
All
30 January 2007
Hello Nomy Graphics
Nom> Yes, these concepts are somewhat unusual for me, besides this
Nom> I would like to ask:
Nom> - BASIC variables - and if they are erased, how will we launch
Nom> BASIC program from DOS? For its normal operation, they are, like, needed
Nom> in a more complete composition than listed?
Nom>
You can reserve Low memory and restore them.
> - TR-DOS variables same question, how will everything happen then
> work?? in fact, NK-DOS at the moment is, in fact, only
> an add-on for TR-DOS that does not have its own direct operating procedures
> with disk
So is it difficult to add direct functions?