(C) VA Sirotkin
SPECTRUM 128 -
NEW OPPORTUNITIES
NEW CHALLENGES
Further development of 'SPEKTRUM'a become a model with volume
128 kilobytes. Since
CPU Z-80 is an 8-bit processor, and address
space he is not physically
may extend above the value
# FFFF (65535), the expansion of computer memory has been done
on method of overlapping 16-kilobyte memory pages in the upper
address of the computer.
User has received in his
the disposal of 8 pages of memory
that he could switch at will at any time.
Basically the same address space of the computer is left for
Users like without visible
changes.
The presence of 128 KB is not
meant that for the Spectrum was possible to write programs
length greater than 48 kilobytes
but if the program was divided into
sections and download them in parts of
additional pages of RAM, and
then at some point
time caused these pages
then, of course, created the illusion of a huge working area
the computer (this way of working called the Overlay).
128 KB allowed to transfer many of the programs (which are
loadable levels or multi-stage, multi-level
loading) mode: for load
once - all at once. "
The owners of the Spectrum-128, which
everything else, became owners of a powerful editor for entering
programs written in BASIC and that
Most importantly, the computer came music processor, with
by which the audio capabilities of Spectrum has increased
several orders of magnitude.
Memory Allocation
So, you had a Spectrum
128. There was a distinct advantage - the presence of
additional memory, but at the same time there was also a lot of
problems ... A how to manage all this??
In terms of address space - everything was so
As in the old computer. By
same address screen, the system variables and everything else.
True, now you have
Another area of system variables for the mode 128, and this
area is located at address # 5B00 (23,296) (yes, yes, yes, in a
buffer printer. And God forbid, if
mode is 128 your game or system programs use the printer buffer
- plucked for trouble! And so Like so many programs SPECTRUM-48
use this area then their normal starting
to or exit from the regime of 128 K in the regime of 48 KB, or
alter the program).
RAM memory your computer (so
same as the old), extending from # 4000 to # FFFF. The upper
region of RAM - with addresses # C000 and to end - is called an
overlay, and Here's something to this area as time and
may include any of the 8
pages of RAM (of course, only
one!)
Immediately after turning on the computer in this area
included page 0.
For the rest of the space of the computer's RAM rigidly
fixed the following pages: a # 4000 to # 7FFF - page 5,
# 8000 to # BFFF - page 2.
From all this it follows that
You can get a situation where
working space of the computer
simultaneously at different addresses
will:
1) Page 5 - and from the address # 4000
(Hard) and address # C000
(Overlay)
OR!
2) page 2 - and to address # 8000
(Hard) and address # C000
(Overlay)
OR!
3) Page 7 - and from the address # 4000
(Substitution) and the address # C000
(Overlay)
Additional features
provides page 7 (or
extra video RAM). This
Page can substitute page 5 (basic video RAM), which
provides rich food for software tricks with video output.
It is only necessary to remember
that all the system procedures, printing, display graphics,
etc. in Anyway working with page 5, that is with the main
videoOZU!
In order to work with
additional video RAM, page 7 imprinted with the address
# C000, build (or download) on
these addresses video information, and
then include Page 7 instead of page 5, and all that was to
Address # C000, instantly manifest on the screen (with address
# 4000). Address Allocation screen
7-th page, in this case is
as follows:
pixel screen with up to # C000 # D7FF
(49152) (55295)
attributes (color) with up to # D800 # DAFF
(55296) (56063)
All switching pages of RAM
as well as switching and mode PZU-48/PZU128 LATCH 48Kb possible
through the system port address:
# 7FFD (32765)
Accordingly, the command OUT
32765, xx can manage the configuration of your computer. Below
are given layout of bits on that port:
SYSTEM PORT # 7FFD (32765)
7 6 5 4 3 2 1 0
^ ^ ^ ^ ^ ^
Page number RAM
from the address # C000
Latch
48 Kb - Page Video RAM
0 - working (5 th)
1 - More
(7 th)
0 - ROM 128 KB
1 - ROM 48 KB
6 and 7 bits in the Spectrum 128 is not
used. Can be applied
to expand the computer's RAM to
512 KB.
The rules of the system 128
KB and the system port # 7FFD
(32,765).
If you are working with the system
port from the BASIC-128, you
it must be remembered that:
- Before switching pages
RAM is desired command CLEAR
32767, so as not to bring down systems
LIMITED stack.
- Before the Record of bytes in
system port, it should
duplicated in the system
cell BANK_M address # 5B5C
(23388)
- Manage the changeover country
down from BASIC can be achieved by
byte entry in the system
cell BANK_M (apply bytes
port in this case is not nuzh
tively).
- If your needs you Perek
lyuchilis for additional
VIDEO RAM, when you exit
your program the auto
automatically activates BASICS
NOE of video RAM.
- When you turn on the 7 th page on the
screen (instead of 5 th) 7-I countries
ence can remain on screen
wound in any other C / O
lyucheniyah pages of RAM.
- Entry of information in addition
a supplementary video RAM (7 countries
ence) is possible only if
when she turned to address
# C000.
- If you call from BASIC
procedure written in to
dah, which works with the system
dark port, the first to
executing this procedure should
be the team 'DI' - ban
interrupts.
- Because all the teams BASIC
automatically switched on
During his tenure, bit 4 system
dark port, ie, include
ROM 48 KB, then the work of
BASIC to the system port
or variable BANK_M same
desirable to force the inclusion
chat bit 4 (hence, the operator B
tion for switching countries
SIC RAM should be the sum
number # 10 (16) with the right buy
volume). At the end of work
your BASIC program system
ma itself activates the ROM-128.
- If you run a program
(Whether from tape or dis
ka), who previously worked in
Spectrum-48, refer to
during loading is not constipated
tilsya printer buffer, or
system crashes.
- If you have a program for
painted in mashkodah after
launch is not going to more
go to BASIC, then all you
sheperechislennye rules neo
byazatelny (with the condition, if
This program is bound
bunt).
BASIC-128 is almost no different from BASIC-48, except
what a powerful screen editor,
so that operators need to dial letter by letter (which is
reducing the rate of recruitment programs, Yes, and the
opportunity set color attributes in the line of BASIC The
editor is absent).
In fact, ROM-128 permanent
refers to the ROM-48 procedures for implementation of the BASIC
program. In the ROM-128 almost nothing interesting there: a
program editor, procedure, servicing music processor for the
operator to 'PLAY', so the program works with the virtual disk
(the operators CAT!, SAVE!, LOAD!, MERGE!, ERASE!)
Those who are asleep, and sees how to
delve into the ROM-128 - tip:
ROM-128 can not enter any debugger or disassembler. Even
to disk and tape a simple way of not zapishesh.
Only one way out - write a simple program in codes such as
this and run it from Beysika128:
140.
org???? ; Area run
start di; disable the interrupt
ld a, 0 byte system port
ld bc, # 7ffd; system port
out (c), a; INCLUDING ROM-3128
ld hl, 0; and now perekinem
ld bc, # 3fff; the entire contents of ROM
ld de, 3 #???? And in free space
ldir
ei; soluble interrupt
ret; emerge
2
Throwing the contents of ROM-128
in free space of RAM can now be there to save him
disk or tape.
Who subscribed to or bought
Journals ZX REVIEW over the past few years,
one can learn a lot about Spectrum 128 ... So for example:
- How to go out in the BASIC-48 from
mode 128, not stopping
program and maintaining the possibility
sequence switch pages
RAM and come back;
- How to work with a virtual
drive by the "channel"
management;
- That you can squeeze out of the system
variables 128K and much,
much more.
We, first of all,
should excite the question: "How
things with the disk system? "And just as in
old computer! Only appeared a huge advantage -
have to upload files, there
lots of free space under the work program on the disk. Know
just switch pages of RAM.
All this is true, but as soon as
your program will go on the road
download via additional
page of RAM, so immediately you can forget about his friends,
who have not yet been able to purchase Spectrum-128 and work on
48 kilobytes.
Normal exit from such
situation is the method of adjustment programs in architecture
computer. If your computer
'128 Th '- it involves a routine, and loading occurs through
additional pages of RAM (includes background music for
muzprotsessora, etc.) If your computer is '48-th ', then all
occurs in a different way (eg
such a setting - these are well-known programs such as
"RICK DANGEROUS 2", "SNOW.STREAKER", system shell "CONVER
COMMANDER "Kowalewski and many
others).
Software to determine the computer architecture may be
different ways:
- Scan the buffer area
printer for the presence of systemic
variables for the first '128 ';
- To try to 'turn' ROM-128
and take information from it;
- Write information to address with
# C000, and then submitting to the system
dark port byte switching
pages of RAM, analyzed
rovat - there was a transition
conclusion.
But if you opted for
its "only 128 kilobytes (and such programs have
enough), then at least
screen saver program is:
"128 ONLY".
Let's talk about "Magik" files in the light of 128 KB.
If you discard a program that does not use additional pages
of memory, then this case, the magico-reset does not
differs from the magico-48. If
program that you fold to use additional
page of RAM, in addition to the main file @, are formed on the
disk files with names @ 0, @ 1, @ 2, @ 3, @ 4, @ 5, @ 6, @ 7 by
number page. Not everyone, of course, but
only those pages that were involved in the program
(Ie, those which had been kakayato information at the time of
discharge).
These files always have the length
# 4000 (16384) and a starting address
# C000 (49152). Also reset the file named '@ 8' - is
file that contains a page
additional video RAM.
The main file with the name '@' -
a workspace with computer
addresses # 4000 to # FFFF (as in
normal magico-file).
Run magico-assembly with a simple command "GO TO" has not
come out. To start you will be you must first download
files to the appropriate page, and then the command "GO TO"
run the main file.
Suppose that after clicking Magika you have the disk formed
following files:
@ - Main file
@ 1 - 1-st page
@ 7 - 7-I stranitsa
Then running in BASIC MAGIKsborki may have the following
form:
10 CLEAR 32767
20 POKE 23388,7 +16
(Including the page 7 and the main ROM)
30 RANDOMIZE USR 15619: REM: LOAD "@ 7" CODE
(Download page 7)
20 POKE 23388,1 +16
(Including a page 1 and the main ROM)
30 RANDOMIZE USR 15619: REM: LOAD "@ a" CODE
(Download page 1)
20 POKE 23388,16
(Including page 0 and the main ROM)
30 RANDOMIZE USR 15619: REM: GOTO "@" CODE
(Download and run the main file)
All files magico-assembly can
rename and give them other
names, not forgetting, of course, what file belongs to which
page of RAM. And, naturally, do not forget that a program
running in the second interruption, should be in the name of
the main Magico-file first character '$'!
Finally, we present a table of all system variables
"128 th" computer.
System variables Sinclair ZX Spectrum 128
HEX DEC len / name APPOINTMENT
5B00 23296 1920 SWAP paging routine
5B14 23316 9 AYOUNGER paging routine
5B1D 23325 1918 ONERR paging routine
5B2F 23343 5 PIN Sub input RS232
5B54 23 348 22 Sub-output POUT tags
RS232
Can be used to circumvent
filter package management
1914 5B4A 23370 POUT2 Sub output symbol
RS232
5B58 23384 2 TARGET Address routines in ROM-1
5B5A 23386 2 RETADR return address in the ROM-0
5B5C 23388 BANKM a copy of the last byte
O bank
5B5D 23,389 a RAMRST Team RST 8
5B5E 23390 RAMERR an error number ROM-1
5B5F 23391 2 BAUD RS232: between bits in
T-sostoyanii/26
5B61 23393 2 SEREL Flag return 2-th character
and data
5B63 23,395 1 COL Current column from 1 to
width
5B64 23396 1 WIDTH column width of paper
5B65 23397 TVPARS a number of parameters in a row
expected RS232
5B66 23398 1 FLAGS3 Various flags
5B67 23399 1910 NSTR1 Filename
5B71 23409 1 HD00 file type code
5B72 23410 2 HD0B block length
5B74 23412 2 HD0D Start Block
5B76 23414 2 HD0F length of the program
5B78 23416 2 HD11 line number
5B7A 23418 1 SC00 second set - type code
File
5B7B 23419 2 SC08 second set - the length of the block
5B7D 23421 2 SC0D second set - the beginning of the block
5B7F 23423 2 SC0F second set - the length of
program
5B81 23425 2 OLDSP old SP, when used
is T TACK
5B83 23427 2 SFNEXT pointer to the first blank
login directory
5B85 23429 3 SPSPACE number of bytes left
(17 bits)
5B88 23432 1 ROW01 Flags tablet and the image
series 1
5B89 23433 1 ROW23 the rows 2 and 3 of the keyboard
Tours
5B8A 23,434 a ROW45 Series 4 and 5 of the keyboard
5B8B 23435 2 SYNRET return address for ONERR
5B8D 23437 5 LASTV last value napecha
tannoe calculator
5B92 23442 2 RNLINE currently memorized line
5B94 23444 2 RNFIRST line number for the beginning
RENUMBER
5B96 23446 2 RNSTEP value increment
RENUMBER
5B98 23448 8 STRIP1 Map bit of band 1
5BA0 23456 8 STRIP2 Map bit of band 2
5BFF 23,551 XX TSTASK temporary stack grows
down from here
*