iS-DOS/TASiS
Get rid of Tyrdos:
about basic principles
programming under iS-DOS/TASiS OS
Maxim Timonin
(Maksagor/NedoPC group)
I express my deep gratitude to the creator─
IS-DOS - employees of Iskra-Soft
- and the author of the TASiS kernel Yuri Korsunin for
wonderful OS family for Spectrum and beyond
materials on them that were used
when writing this article.
Why? Or about outdated TR-DOS
and iS-DOS/TASiS as its replacement
Old-timers of the Spectrum from its heyday─
those in the ex-USSR in the 90s remember that novel─
a creative atmosphere of striving for development
your favorite car - creating comfortable
data science and development tools
programs, utility utilities, etc., and
so on and so forth. Attempts have been made to develop
both hardware and software
environment based on their basic perception Spect─
room as though not the most powerful, but KO─
PC as a separate platform,which
can be COMPLETELY and fully USE─
WHAT. In the same plane lay many─
numerical attempts to write a complete
operating system, graphical interfaces─
ysov, multitasking and more.
The last one - Description - I want to note
especially to dwell on it. After all, what the
did it happen? Do you want to expand your memory? Here
you'll get a diagram of its soldering. Increase speed?
Here is the turbo mode. Improve graphics? Here
soldering diagram for all sorts of gigascreens and others
hardware multicolors. Sound? Here you go
whole General Sound. And only one limit─
the skill was too tough for the craftsmen of that time:
no matter what bells and whistles they solder to their─
to them Spectrum, all this continued to launch─
to work and work from under the TR-DOS OS, I am─
essentially an emulator of tape inter─
face on the disk drive, with its four floppy disks─
kami with a capacity of 6CHOKB, "which is enough for
everything." But it quickly became not enough, even
taking into account Specky's modest requests. And I go─
I'm not talking about a few toys worth 2-3 dis─
chum salmon entirely. Just the amount of software (games,
demos, systems) throughout the 90s, respect grew─
self-paced, and in proportion to this
The rows of floppy disks at the Speckie Paul also grew at the same pace─
callers who sighed dejectedly, looking
to “colleagues” from other machines (and it’s okay if
IBM PC users only), conveniently
fighting with hard drives. And the iron workers and
we would be glad to answer these sighs: “there are
decision!" - and evenpresented in response
IDE controllers, but there was no point in that─
what, because the new medium required new
principles of working with it, fundamentally
differing from the "standard" entry points into
ROM TR-DOS. Quickly and inevitably arose, in
in principle, it is a sound idea to emulate (let
and with partial loss of compatibility) dis─
cages in the form of halyard images. This is on the first
pores gave birth to such a monster as a collection─
tions of virtual floppy disks selected via
service monitor clone Scorpion ZS 256+
SMUC. But it was almost the same rake, kind
on the side" - the user was still an ogre─
limited by the framework of 6CHOKB and replaceable (even if
virtually) floppy disks. It was urgently needed
environment for full work with any outside─
external data storage devices. And that one─
some OSes also appeared.
This is, firstly, CP/M (on different Spectra─
there were about 15 implementations, starting from
1986), which has fully taken root in non─
which are cloned and sometimes stitched into them
ROM; secondly, iS-DOS of various modifications
(Classic and Chic). iS-DOS, as less demanding─
mobile, runs on almost everyone
clones, more or less took root. Was for her
a number of serious software packages have been written
and many smaller utilities. But in life
“every Spectrumist” she still can’t enter
I could. And the reason for this turned out to be og weights─
a large amount written under TR-DOS
and coming only from the software flop, not near─
reaping anyobvious adaptation to
another axis. Plus the power of programming habit─
it turned out that it was too easy to play only under “Tyrdosina”
too big - too lazy to retrain under tre─
the agreements and agreements of the other Axis did not play
last role.
The first limitation was overcome by
machines with 1024 or more KB of RAM, which allows─
liked to organize virtual floppy disks in
RAM, loading them from external devices and pre─
waiting for everything from the screw. It turned out convenient - OS
plays the role of a medium through which the old
TR-DOS software (more precisely, a significant part of it)
part) can be stored on OS devices
store and launch from there, and then a new one
software, demos and games to write according to the possibilities
new system.
But, as already mentioned, the second limit─
belief - the force of habit - played a fatal role
role, and the Spectrum as a whole remained TRD-dependent─
Sim that, in my opinion, for him, as for
A FULL COMPUTER led to sadness─
significant consequences today, despite
that the RAM has reached 4 MB, the HDD has been mastered,
CD-ROM, SD cards. On them in modern
Spectrum can easily accommodate almost
all the software is written ─
new for all the years, but, albeit in the file
FAT system, still in the form of practically
exclusively collections of TRD images (unless
that in addition to a couple of commanders and several
demonstration demos). No software
there is no environment at all, but working with FAT and mon─
image editing is carried out through co─
realway developed ROM.
But this concept, which certainly has
the right to exist, led to the fact that
deprived of mandatory universal pro─
grammatical and user environment Spectrum
began to resemble more and more gaming priests─
Vki DENDY, all the “work” that you follow─
to "inserted the cartridge, played, inserted
another."Logically, a large
the number of such users for whom─
rich Spectrum is just a reason to launch dem─
ku/game, get nostalgic and turn it off. A
if you write under it, then only
cross-means on PC.
No, that's not bad. This helps a lot in
work, and no one is going fanatically for─
put to refuse them. However, refusal
from the actual WORK on the Spectrum and pre─
its rotation in the eyes of a certain category─
ria of the Spectrumists in the nostalgic DENDY-
console with a keyboard entailed
degradation of a number of software areas.
For many people, not even wild sounds anymore
questions, and self-confident statements on
forums like "Text editors? Why
are they needed? Are there more of them on the Spectrum?
does anyone use it?" These people are right
from its bell tower in the sense that if
Spectrum is only needed for nostalgia and
play with an old or new toy, then
editors/converters/languages indeed
not needed. ALASM is also not needed - everything is possible
write to the PC and compile directly into
TRD image,which, in turn, launches─
Transfer from an SD card to a real Spectrum.
This is fine. For Spectrum STB.
But for the Spectrum-COMPUTER - deaf
dead end And it's not normal that this concept
"consoles" are started by many "automatically"
be perceived as the only true one - that
has already given rise to a number of previously unthinkable pseudo─
religious disputes like "XXX is not
Spectrum, real Spectrum is 128K+AY
+TR-DOS, and anything beyond that is heresy!”
Yes, Spectrum itself is underground
retro car exclusively for lovers
antiquity and nostalgia "remember childhood─
in". However, the types of nostalgia and passion
The meanings of antiquity can be very different.
And what should those for whom the subject of the nose do?
Talgia is WORKING full-time for GENDER─
A VALUABLE 8-bit computer? What can
offer them a Spectrum-STOP-BOX? The same
collections of hundreds of floppy disks, limited
Goy kernal TR-DOS and 6CHOKB flopik. Exit
in the light of ZX-Vega - this is the last point de─
gradation, when Specky was deprived of even the afterbirth─
its attribute of a personal computer -
his keyboard. And let there be enough
the number of “gamers” - let them please themselves─
Yes, no one forbids it. But the article is written
for completely different people - spektrumists -
geeks. And for those people who
quite sufficient quantity, question about
universal software environment, other
in words - operating system -not anywhere
disappeared, but only with time became everything
sharper. After all, what is the point within the framework of 6CHOKB
dream about developing a graphical window
environment? About multitasking? No, I need it here
a full-fledged OS as a base, even if not yet─
perfect, but allowing on its basis
further develop and develop software, and
don't just write for nostalgic pleasures
more demos and toys.
Meanwhile, this operating system
yes. More precisely, it hasn’t gone anywhere. Because OS
iS-DOS survived. Moreover, for two clones
Spectrum she has managed in the past and present
just become the main one used "by
default" is KAY-1024 + HDD, now almost
ty "extinct", and reborn in the middle
2000s ATM-turbo 2+, where iS-DOS by─
received its second wind in the form of a new
reincarnation of OS TASiS. KAY is already a clone
is practically a thing of the past, but ATM is
is alive and is still produced as its own─
both in the classic version and in the VI─
for further development within ZX
Evolution/Baseconf. True, standard
TASiS distribution on ZX Evo is still possible
run only from a floppy disk, because due to
different IDE controller standard and its own
features in the ROM for system installation
the screw requires modification of the drivers and
autoloader with screw. But I'm one of the
software developers for iS-DOS and co-author
TASiS, I can confidently say that this
work in the near futurewill be done.
By the way, since ZX was mentioned
Evolution/Baseconf, then there in the last
time there have been positive changes in
side of "computerization" - adapted
standard ATM version of CP/M, work is underway
I carry not much, not little, but myself
MSX-DOS2. And the TASiS OS will not rust.
By the way, CP/M is also a decent system, and
programming for it is a must
will be back in one of the next hundred─
tey. In the meantime, I’ll note that iS-DOS/TASiS
there is one undeniable advantage - this
the system was written specifically for Spect─
room and for Spectrumists. There's no ka─
some “international” established standards─
mouths, without breaking which it is impossible
further development.
Therefore, within the framework of this article I will remain─
I’m updating myself on the basics of OS programming
iS-DOS and, above all, for its modern
version for ATM-compatible machines - OS
TASiS, making separate
clarification as to whether ka─
some function common to all iS-DOS or
only for TASiS (as more advanced
top-down compatible system).
About stereotypes and phobias
writing programs for a new system
Before proceeding to specific
measures, it is necessary to stop at the standard─
phobias and prejudices about pro─
programming for the System of those who
life wrote programs exceptional inTR-DOS environment (and the vast majority of them are
stvo), and now he will have to take into account the EU─
valid for any real System
"great and terrible" Rules and Agreements.
Below I will try to show what is wrong
The devil is terrible, the way he is painted.
What kind do we have, if you don’t take any special ones?
fanciful cases, there are rules when working in
TR-DOS? Yes, practically none. Besides si─
BASIC variable variables that are better
do not overwrite, additionally you need to remember
only about 112 bytes of system variables
TR-DOS. Well, it’s better to keep an eye on the stack
drop it directly into the BASIC loader co─
manda CLEAR before the loading block ko─
Dov, although this is optional, but if you
use page switching via
port #7FFD, then highly desirable. During the examination─
under given conditions, care should be taken─
speed in games with interrupt modes,
registers I, IY and HL'. That's all. And the rest─
nom - complete freedom: load code blocks where
whatever you want and place them in whatever format you want
between the address space, and the is itself
the program being executed can then change
any memory cells using them
as your own variables, etc...
Yes, to this freedom to use the address─
new processor space as desired
you quickly get used to it, and in the future any
assumption that will have to be taken into account on─
the presence of something else in memory (and after all─
Absolutely right - the iS-DOS kernel is located exactly
inmain address space), immediately
causes rejection and thoughts like “no, that’s right”
We didn’t agree!” This is a phobia -
You can't call it anything else. And she gives birth
a number of stereotypes on iS-DOS, the main ones from
of which related to the topic of the article are
that "iS-DOS is designed for 48K RAM, for─
takes up a lot of space in it, and free space
there is very little wandering left, so
You can’t write anything serious.” Destruction
to these stereotypes I dedicate this
article.
I won't burden the reader with tons of
information on all restarts and si modes─
stems. I'll just give you a few examples,
as a person accustomed to "freedom in
RAM" without unnecessary problems using the system─
we download and launch... no, not less─
a new system program written from─
initially under iS-DOS (and therefore taking into account
all rules and agreements), and the executable
block of codes for a toy (written any way you like,
without taking into account the system - it’s still our OS con─
solo and doesn’t know how to work with graphics), and
then return just as painlessly
back to the system shell, to where and
came - just like on the “big wave─
nah" with MS-DOS or Windows.
To do this, we will analyze only the basic principles─
principles of operation and placement of the system and the most
necessary to download code and configuration─
OS restarts. If my goal is
achieved and the reader on the given at─
measures to get rid of prejudices inregarding─
iS-DOS research center, then relying on the received information
formation, he can easily master it himself
all other depths of work possibilities
with this OS - fortunately iS-DOS is very good and
documented in detail.
In the process of describing examples there will be under─
It goes without saying that you have a modern Speccy
with RAM more than 128 KB - ATM Turbo 2(+) or
its implementation in ZX-Evolution/BaseConf, with
OS TASiS or, at worst, iS-DOS Chic
(which will be discussed separately).
Memory allocation in iS-DOS Classic,
Chic, Chic-ATM, TASiS
So, how does any iS-DOS work? Location─
it is based in the main address space─
quality. Its core grows from top to bottom, starting from
addresses #FFFF and to a specific destination─
ki, which can move higher or lower─
same, depending on the quantity loaded─
new drivers, levels, etc. Namely:
In the address itself #FFFF and ten bytes there are no─
the primaryinterra handler is also located─
Vaniy IM 2, the whole work of which is
in the transition to standard system processing─
chick. Immediately below it are several hundred bytes
free space reserved
under the "free-floating" stackstack, for─
those sequentially, one under the other in a hundred─
The direction of reducing addresses in memory follows5
(out of eight theoretically possible)standard
kernel levels - from zero to four,
together with their sets of system variables.
The location of these levels is fixed for
specific type of system and version of its kernel
- to what address they are compiled, so
invariably and will be located. Three remains─
existing possible user levels
(used by some programs, under─
connecting them for the duration of their work) in
in any case will be added below. And under
these five fixed levels go
area with floating dimensions - immediately below
levels go area of residents, background
tasks and drivers (which are all like this or
otherwise they are subspecies of residents) and in
depending on the number of connected
residents or swells further down,
or, when they are removed, it grows upward. Below
this area goeschannel area, which
can also be increased or decreased. And under
it -cache area of block devices, also
fluctuating from a minimum of 6 blocks of 256
bytes (plus 4 bytes of header for eachblock) up to as many as there is enough memory.
And already from the lower boundary of the cache and further down
goes user program area, where
you can load whatever you want.
The user program to be launched is─
which, by analogy with MS-DOS or CP/M, expands
.COM, unlike these systems, has
which have a single physical launch address
#0100, maybe, like in TR-DOS, be from a computer─
lyated and launched from ANY address.
Similar to TR-DOS in the file descriptor
a couple of bytes are reserved for the download address─
communication and startup (which creates many problems
when directly transferring executable files from
MS-DOS, since these two bytes are used when copying─
The entries in FAT are lost, as are the control bytes─
no amount - by the way, they need to be restored─
manually in the file attribute editor).
If, when you try to run the program,
caller using the system from the shell
the "tail" of the file will go into system areas
(CACHE and higher), then the system will refuse for─
loads and curses with error 130 (shortage
memory). And then you’ll have to vacate the month─
then, by reducing either the cache size or the size
channel areas, or removing unnecessary residues─
nts. By loading data from the program itself─
frames, you can find out by means of the system either─
lower limit of the cache to decide on
displaying an error or continuing to work, and
also regulate it within reasonable limits
sizes. Read more about thiswill be described in co─
relevant part of the article.
Most executable files under
"regular" versions of iS-DOS, however, from─
compiled to address 24000 (less often lower,
sometimes - 25,000, higher is also rare). In such
versions have a certain lower loading limit─
The names of the files to be launched are the system area─
dark BASIC and TR-DOS variables (located
located from addresses 23552 to 23866). Herself
the system in variables is by and large not
needs, with two exceptions:
Firstly, the fact is that all appeals
into the system (any version) occur through
single point of call - by command RST #10,
at the same time, register C contains the number fu─
functions, and in other registers - additional─
nal parameters. In the case of iS-DOS Classic,
address #0010 contains a subroutine
ROM with BASIC-48, which transmits control─
Application to the channel output subroutine (address
it lies in the descriptor addressed to the system─
variable for the current input stream -
output). In our case - to the subroutine you─
calling a procedure from the kernel (its number in reg. C).
And secondly, some system changes
Replaceable TR-DOS can be used in the drive─
rum FDD, if it is handled when working with
controller VG93 to ROM TR-DOS procedures.
There are still 256 free bytes in the area
lying immediately below the variable area
BASIC printer buffer (from address 23296 to
23551), which is not used by the system.
This buffer can also beuse for non─
large programs, which is sometimes done.
And below are 6912 bytes of the screen and, in the case of
iS-DOS Classic, BASIC ROM.
How much space do we have in the end?
va for the user program?
The iS-DOS kernel, as already mentioned, can
change its size, but its average
sizes fluctuate around 22-24 KB. More
approximately 24 KB (16 KB ROM + 8 KB screen and
system variables) is not accessible from below.
Total continuous space in the main
memory for the user program in iS-DOS
Classic remains about 15-18 KB. Sparse.
However, Classic is an outdated system, dis─
read on machines with 48 KB of memory, or
version of Spectrum-128K with non-disabled ROM.
Another picture - in iS-DOS Chic. Main
the difference with Classic is that it calculates─
tan to work with machines that allow─
They can turn on address #0000 instead of ROM
RAM page. For this purpose there was a census─
but the kernel has also been recompiled: everything remains unchanged─
established procedures of its five staff levels
moved to a block loaded into the page,
included instead of ROM, but at the top there are
only system variables, and addresses about─
procedures for moving to the “lower” page of RAM.
This, even taking into account the remaining areas re─
residents, channels and cache, reduced the size
the "upper" part of the kernel is up to 8-10 KB, and this is already
gives free space of almost 30 KB.
In addition, RST #10 is no longer suitable for processing
need system variablesBASIC - about─
call handling procedure is already present in
RAM page connected at the bottom.
Even better with free memory in ATM-
version of iS-DOS Chic - FDD drivers in this
the system uses the capabilities of hardware this─
th clone via direct access to VG93 ports,
so there is no need for systems─
new TR-DOS variables, which allows the game─
carry out full-fledged programs immediately after ek─
wound starting at 23296, which gives us approximately
700 additional bytes. In TASiS based
on ATM-Chic, not normally used─
dart screen, and a text console, in addition
located in the alternative video─
page (in port #7FFD bit D3=1). In the end
6912 bytes from the standard screen area
can also be used for programs
user, starting from address #4000 -
this increases the "user" area
up to 38-40 KB. In the future in new versions
TASiS will be possible to connect below and
other user RAM pages that
will increase the space by about 15 more
KB - up to 53-55 KB.
iS-DOS Classic simply loads itself into non─
variable processor address space
Z80 (at 128K - standard configuration,
where from #0000 lies the BASICCH8 ROM, from #4000 -
page 5, from #8000 to page 2, and from #C000
page 0 enabled for kernel; programs
user, for example, copiers or dramas─
RAM server may include other pages,
but outside the scope of working with system calls).iS-DOS from the Chic version uses re─
address space configuration. And
this configuration change is different for different
types of machines depending on used─
There is a lot of ways to turn on the RAM in the bottom
parts of the address space. True, both─
The configuration is set exactly once and for─
always and in standard system programs not
used. However, there are exceptions
primarily in drivers - when necessary, to
for example, disable RAM to get to
TR-DOS routines. And in this case it is necessary
understand which machine the system is running on
and how to change the configuration. Call system─
Lets you find out this programmatically. But about the ways
reconfiguration further. And first about herself
address space structure in iS-DOS
Chic and TASiS.
If you run iS-DOS Classic at 128K
machines, then the core of the system is at the top
(from address #FFFF) will be located in
RAM in page 0. But in the case of Chic everything
somewhat differently. On computers
KAY-256/1024 when disabling ROM at the bottom
page 0 turns on, where I go─
This is the unchangeable part of the kernel. Therefore
the rest of the kernel with variables, res─
dents and cache is written to page 8,
which is turned on at address #C000 - by
essentially, for port #7FFD and for software, including
including using a page of 128K RAM,
the substitution is completely “transparent”. Also this
The scheme also works on all PROFI variants.
SeparatelyIt's worth mentioning the Chic version here
for Scorpion clones. In them in the RAM8 page
sits part of the shadow monitor, so the core
moved to RAM page #0D, what does it say─
elk on compatibility with several 128K-
utilities that required table correction
pages used in them. But this version
should be considered an exception.
In general, with such an arrangement
core system Chic is designed for machines with
minimum 25bKB of RAM. 128KB RAM is enough
on Spectrums with a separate soldered 1bKB
static RAM “cache” or, as the most
exotic version, - with firmware in ROM
unchangeable part of the kernel.
A slightly different scheme is used in the system─
max for ATM-turbo 2+ - as in iS-DOS Chic,
and in TASiS. On this clone, as a rule,
minimum RAM - 512KB, or even 102CHKB, and
the system initially counts on them for─
presence. Also a feature of these clones is
availability of a full-fledged dispatcher
memory that allows you to include any page
RAM or ROM in any quarter of the address
space, and there are two independent ones─
programmable memory cards - for
BASХ8 (D4 port #7FFD, hereinafter "ROM2", =1) and
for BAS128 (ROM2=0). In other words, in
In this clone, disabling the ROM does not limit─
RAM page 0. We can turn on
lower area anything, and separately
instead of ROM BASICХ8 and ROM BASIC128. This and
use Chic with TASiS. Top poison─
ra remainsin the RAM page 0, and in the bottom
part, RAM page #1D is turned on (from vol─
area at the end of the first 512KB of RAM, in one of
pages used by a special resident─
volume from the machine's ROM). And it turns on
instead of BASIC-128 ROM, but BASIC-48 remains
on the spot. And as a result, the operational shift
figurations for access, for example, to ports
TR-DOS (via area #ЗDxx BASIC-48)
occurs via byte output to port #7FFD:
for iS-DOS Chic value #00 to disable─
niya ROM and #10 to enable it. And in TASiS,
where alter is used to display text
native video page (in port #7FFD sig─
cash D3=1 - further SCR2), these values will be
#08 and #18 respectively.
Additionally created system
functions you can transparently change pages
RAM in the area #4000 and #8000, and in the future─
tive developments for further development
TASiS is planned to be used even more widely
memory manager capabilities and connect
additional modules with function libraries─
tions to area #0000 to other pages of RAM,
temporarily replacing page #1D with the standard one
the core of the system. But this is a topic for another
articles.
To summarize the options
RAM configurations in iS-DOS can be presented
put it in the form of a plate:
│Classic│ Chic │ChicATM│ TASiS
Port│ │ #1FFD │ │
conf│ no (KAY/Scorp)#7FFD │ #7FFD
gurir-ya│ │ #DFFD │ │
│ │(PROFI)│ │
ROM2= │ 1(B48)│ 1(B48) │0(B128)│ 0(B128)
SCR2= │ 0 │ 0 │ 0 │ 1
CPUЗ= │RAM#00*│RAM#08**│ RAM#00│ RAM#00
│(core │(system core, and the remainder
system)│program user area)
CPU2= │RAM#02 │ RAM#02 │ RAM#02│RAM#02***
(partially│ │ │
system core,│ (program area
area prog.│ user)
use)│ │ │
CPU1= │RAM#05 │ RAM#05 │RAM#05 │RAM#05***
│ (reg.prog.user, (reg.prog.
│ system variables │user)
│ BASЧ8/TR-DOS, screen) │
CPUO= │BASICЧ8│ RAM#00 │RAM#1D │RAM#1D***
Notes:
"*" - without using programs, I draw─
those going to port #7FFD (there are not many of them), fear─
face canbe any except 2 and 5.
"**" - for the Scorpio version of Chic-ZS
this is RAM page #0D.
"***" - by system means in programs
users can temporarily install─
Xia and other pages, but regular with ra─
from the shell are exactly these and
only these values.
Interrupts and stack
in iS-DOS Classic, Chic, Chic-ATM, TASiS.
Determining the system type
One of the important procedures in any system
- This is interrupt handling. In iS-DOS for
For this purpose, IM 2 mode is used. Its system
processing is arranged according to the method described
Nikolai Rodionov in the book "ZX Spectrum and
TR-DOS for users and programmers":
The interrupt vector is set like this
so that the read address of the procedure
interrupt handling was equal to #FFFF, i.e.
located at the very end of the address pro─
wanderings. And code #18 is inserted there (command
JR xxxx - unconditional jump). Next
the command byte is read from address #0000, and
there, in the BASIC-48 ROM in iS-DOS Classic,
what's in the RAM page in Chic/TASiS, location─
Byte #F3 is cleared. As a result, the combination of bytes
#18 and #F3 gives us the command JR #FFFFH, where
there is an 11-byte primary procedure
saving registers and transferring control
changes to the main interrupt processing procedure─
in the body of the nucleus. This is reallyfor
all kernel versions. Here's what's different -
so this is register I, i.e. interrupt vector.
Its values depending on the type of system
the following:
iS-DOS Classic: I = #3B
iS-DOS Chic (any): I = #06
TASiS: I = #00
Based on this, polling the vector value
interrupts is the simplest primary─
new procedure for determining the type of system
(although nothing interferes with residents and prog─
user's parameters to temporarily record
there a different meaning and intercept the processing─
we are interrupting ourselves - but this is already from
section of "tricks" that are not
topic of this article), something like this:
systyp LD A,I
OR A;CP #00
JR Z,tasis;we are in TASiS OS
CP #06
JR Z,chic;...in OS iS-DOS Chic
CP #3B
JR Z,class;...in iS-DOS Classic OS
JP unknown;system type is undefined
Having determined that we are in iS-DOS
Chic, we may need some extra─
new definition of the type of car, because, as we already
they said, depending on this type of time─
The methods of reconfiguring hell also differ─
forest space. And for this in iS-DOS
Chic exists consisting of 5 bytes and dis─
placed at the address #OOFA so-called. "vector
systems":
#OOFA(1 byte)- page content
port #7FFD during normal operation
#OOFB(1 byte)- contents of the config port─
walkie-talkies to enable ROM
#OOFC(1 byte)- contents of the config port─
walkie-talkies to enable RAM
#OOFD(2 bytes)- configuration port number
This "system vector" also exists in
TASiS, but reading it is not so important there,
for if we have determined that we are in
this type of system, then this implies
that we are on ATM Turbo 2(+),ZX Evo/
BaseConf or Pentagon 2.666, where are the methods
reconfiguration via dispatchermemory
are the same. But for clarity, the meaning of the eyelids─
systems for ATM, KAY, Scorpion and PROFI
presented in the form of a plate:
#OOFA #OOFB #OOFC #OOFD
Chic KAY #10 #10 #11 #1FFD
Chic-ZS Scorp #15 #10 #11 #1FFD
PROFI #10 #01 #11 #DFFD
Chic ATM #00 #10 #00 #7FFD
TASiS #08 #18 #08 #7FFD
To understand how the system works, you also need to
We need to consider the features of working with
stack. But here everything is quite simple. Standard
the stack is inside the top of the kernel
systems where he is allocated several hundred
byte of free space, approx.
between #F800 and #F900. When working "cleanly"
iS-DOS" utilities that work only in
main address space, reassigned─
Part of the stack is not required at all. But if you
you will need to access page port #7FFD,
then it may be necessary to temporarily
slight reassignment to the program body
user. The system is going through this re─
the appointment is easy - you can also freely─
Those use system restarts. To
return to the system shell by command
RET, it will be necessaryrestore the previous meaning─
stack value. If for some reason
this is impossible, then it doesn’t matter either - it’s possible
will enter the shell through several─
Many system restarts of the shell call
SHELL systems. They themselves will restore the necessary─
The default value of the stack. But more on that later─
main part.
Share your thoughts about the article