Files
Sprinter-SDCC/docs/Original/Estex DSS/Estex.txt
T
snark13 64ce6339eb docs: справочники по железу Sprinter + правка gfx_scroll_h
- docs/new/ — сводные справочники (архитектура, BIOS, DSS, память,
  графика, акселератор, IRQ, порты, ввод, звук, известные баги);
- docs/Original/ — первоисточники, из которых они собраны (BIOS, Estex
  DSS, мануалы, описание акселератора), + Форум.doc/.docx в reference;
- libbgi/common/gfx_scroll_h.c — обход бага скролла при ширине >256
  (правка автора: шаг банды 255 и продвижение указателей на cw; старый
  вариант с 256 оставлен закомментированным с TODO);
- удалён applications/PoP/roomtest/hang_variants.png — рабочая раскладка
  из разбора позы виса, в репозитории ей не место.

Большие архивы (docs/extra ~568 МБ, docs/sources с вложенными git-репо
~68 МБ) в коммит НЕ включены — см. обсуждение.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 18:26:31 +03:00

156 lines
4.7 KiB
Plaintext

Estex: Disk SubSystem (DSS) Programming Guide
Table of Contents
1. Introducing
2. Identification of system functions
3. Disk devices functions
1. Introducing
This document contains the list of functions and concepts of
interaction with a disk subsystem.
DSS is a collection of very useful functions that reside in
DSS itself, ready for use by any your programs. These functions
are stored in library SYSTEM.DOS and allow management of files,
memory allocation, loading and execution of the programs.
File specification
The file specification is a string, containing a names of disk,
directories separated by a symbol "\" and name of file. The names
of disk drive and directories can be discard.
for example:
C:\TEXT\DOC\text.doc
A:file.txt
\TEXT\info.txt
The DSS used chars with colon suffix as names of disk devices
(A:, B:, C: etc.) The name of disk can be written down before
filename for specified disk there it placed.
For example: command
DIR C:DATFILE
searches for DATFILE in the current directory of disk C:.
When disk name not specified DSS used current disk. At start
DSS, the current disk is a disk whence was loaded DSS.
The filenames consist of two parts. The first part contain 8
chars of file name. The second part is not necessary and contain
3 chars of file type (also known as extentsion). At the writing
of filename, both parts are separated by char point.
For example: the names "NAME" and "NAME." is specified same file.
In the name don't allows symbols with codes less 32 and chars
. " / \ [ ] : | < > + = ; ,
As the subdirectories files too, their names are formed by
same way. The name of root directory always "\". And each
subdirectories contain two items with names "." and "..". The
name "." specified a current directory and name ".." specified
name of parent(uplevel) directory.
Some console commands and DSS functions allow to use global
symbols ? and * which can be used for filename templates.
The symbol ? means that any one char of filename. The
symbol * means that it char can be replaced by any symbols.
For example:
*.txt - means, all files with type "txt"
a??.* - means, files which contain three or less symbols and
first symbol is "a"
dc*.exe - means, files with type "exe" and began "dc"
File attributes
The each bit of byte attributes specified various attribute.
And it can be changed by DSS function.
bit 0 - Read only
bit 1 - Hidden
bit 2 - System
bit 3 - Volume label
bit 4 - Directory
bit 5 - Archive
bit 6 - Reserved
bit 7 - Reserved
Attribute "read only". When value is 1, file can be read,
but can't be written or deleted.
Attribute "hidden". When value is 1, DSS can't manipulate
with this file.
Attribute "system". Specified system file.
Attribute "volume label". In old version of MSDOS used for
specified volume laben, now it can be used for long filenames.
And must be 0 for compatibles.
Attribute "directory". When value is 1, means that this
file is directory.
Attribute "archive". This bite sets in 1 when DSS writing
in this file. It can be used in backup utilities for detect
changed files.
File handle
When any file are opened, DSS build File Control Block in
DSS working areas.
The Handle (and assigned file) identified by number which
returned DSS to program after file opening and used it in all
further DSS calls. In other words, when file is opening, the
program informs DSS his name and has taken back file handle.
Which used in further file operations.
All necessary information for working with file are placed
in DSS working areas.
2. Identification of system functions
00h (00) VERSION (Version of DSS)
input:
C - 00h
output:
D - version number
E - modification
The function return version number of DSS.
3. Disk devices functions
01h (01) CHDISK (Change current disk)
input:
A - disk number (0-A,1-B...)
C - 01h
output:
A - error code, if CF=1
A - number of disks, if CF=0
The function changes current disk device.
02h (02) CURDISK (Current disk number)
input:
C - 02h
output:
A - current disk number (0-A,1-B...)
The function returns number of current disk device.
03h (03) DSKINFO (Disk information)
input:
A - disk number (0-A,1-B...0FFh-current)
C - 03h
output:
A - error code, if CF=1
A - sectors per cluster, if CF=0
HL - clusters per disk
DE - free clusters
BC - bytes per sector
The function returns information about disk device
(capacity and free space).
for example:
LD C,03h ;Function DSKINFO
LD A,0FFh ;Information about current disk
RST 10h ;Execution of function
LD A,D ;There is a free
OR E ;space?
JR Z,NO_SPACE ;No, the disk is completely filled
09h (09) BOOTDSK (Number of boot disk)
input:
C - 09h
B = 0
output:
A - number of boot disk (0-A,1-B...)
The function returns number of boot disk device whence was loaded DSS.