NK-DOS (version of MS-DOS under TR-DOS)

ZXNet echo conference «zxnet.soft»

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?