Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • KN0 stands for primary kernel bank, accessed by OS 1 byte calls
  • KN1 for secundary secondary kernel bank, accessed by OS (06) 2 bytes calls
  • KN2 for auxiliary kernel bank

...

  • , accessed by OS (03) 2 bytes calls

The core static structures are held in KN2 STS bank and contains fonts, keyboard maps, localized texts.

API calls are DC (12), GN (09) and FP calls. DC stands for director/CLI, GN for general usage, FP for floating point. All API except OS 1 byte and FP calls have a space up to 32K. This new feature implemented in OZ 5.0 defines primary and secundary banks.

  • DC0 : primary DC bank
  • DC1 : secundary DC bank
  • GN0 : primary GN bank
  • GN1 : secundary GN bank

Actually, FP calls are held in GN1 bank (may change in the future).

Important convention

Primary banks are always bound to segment 3, secundary to segment 2.
Secundary bank number always follows its primary bank number.

...

KN1 = KN0 +1

...

DC1 = DC0 +1

...

OZ Memory segment configuration

...

2 bytes
Segment

HARD

Reset
SOFT

Reset
OS

RST 20h+
byte
OS*
1
RST 20h+
06+byte
OS*

RST 20h+
03+byte
DC*

RST 20h+
12+byte
GN*

RST 20h+
09+byte
FP

RST 18h+
byte
S0L
$0000 - $1FFF
KN0L
R20L
R20L
R20L
R20L
R20L
R20L
R20L
S0H
$2000 - $3FFF
KN0H
R20H
Usr
Usr
Usr
Usr
Usr
Usr
S1
$4000 - $7FFF
KN0
Usr
Usr
Usr
Usr
Usr
Usr
Usr
S2
$8000 - $BFFF
KN0
KN2
Usr
KN1
KN2
DC1Usr
GN1Usr
Usr
S3
$C000 - $FFFF
KN0
KN0
KN0
KN0
KN0
DC0DC
GN0GN
FP

* = OZ push frame established

...

Notice that IX is not preserved.

Exit Exiting is generaly performed by LSB = $03 0 of the API table in segment 3.

...

The applications

They are divided in crucial system applications tight to the system :

  • Shell
  • Panel/PrinterEd
  • Filer
  • Clock/Calendar/Alarm

...

Notice that Index belongs to the core, its code is mixed with DC API in DC0 DC bank.

The file area

The system file area is named :EPR.0 or :EPR.1 if OZ runs from slot 1. Its directory layout follows the unix convention, Shell commands stand in :EPR.x/bin/, man pages in :EPR.x/usr/man/, ...

...