Noll sida (CP/M)
Nollsidan (eller bassidan) är en datastruktur som används i CP/M -system för att program ska kunna kommunicera med operativsystemet. I 8-bitars CP/M-versioner finns den i de första 256 byten av minne , därav dess namn.
Motsvarande struktur i DOS är Program Segment Prefix (PSP), en 256-byte struktur, som dock som standard är placerad vid offset 0 i programmets belastningssegment (snarare än i segment 0) omedelbart före ett laddat program.
I 8-bitars CP/M har den följande struktur:
Offset | Storlek | Innehåll |
---|---|---|
00–02 | Koda | Avsluta programmet (hoppar till BIOS och används också för att hitta BIOS-ingångar). |
03 | Byte | I/O-byte, en valfri funktion som tillåter omtilldelning av enheter i CP/M 2. |
04 | Byte | Aktuell kommandoprocessorenhet (låg 4 bitar) och användarnummer (hög 4 bitar). |
05–07 | Koda | Hoppa till CP/M BDOS-ingång - ingångspunkt för huvudsystemanrop. Detta är också adressen till den första minnesbyten som inte kan användas av programmet. |
08–3A | Koda | 8080 omstart/ avbrottsvektorer . |
3B–4F | Bytes | Reserverad |
50 | Byte | Enheten från vilken programmet laddades (CP/M 3) |
51–52 | Ord | Adress till lösenordet för den första FCB (CP/M 3) |
53 | Byte | Längden på lösenordet för den första FCB (CP/M 3) |
54–55 | Ord | Adress till lösenordet för den andra FCB (CP/M 3) |
56 | Byte | Längden på lösenordet för den andra FCB (CP/M 3) |
57–5B | Bytes | Reserverad |
5C–6B | Standard FCB 1 | |
6C–7F | Standard FCB 2 (skrivs över om FCB 1 öppnas) | |
80 | Byte | Antal tecken i kommandosvansen. |
81–FF | Bytes | Kommandosvans (allt efter programnamnet). |
I CP/M-86 är strukturen:
Offset | Storlek | Innehåll |
---|---|---|
00–02 | Bytes | Kodgruppens längd i byte |
03–04 | Ord | Segmentadress för kodgrupp |
05 | Byte | 8080 modellflagga - ställ in om programmet bara har ett segment |
06–08 | Bytes | Datagruppens längd i byte |
09–0A | Ord | Segmentadress för datagruppen |
0B | Byte | Reserverad |
0C–11 | Deskriptor för extra grupp - samma format som för data | |
12–17 | Beskrivning för stackgrupp | |
18–1D | Beskrivning för X1-gruppen | |
1E–23 | Beskrivning för X2-gruppen | |
24–29 | Beskrivning för X3-gruppen | |
2A–2F | Beskrivning för X4-gruppen | |
30–4F | Bytes | Reserverad |
50 | Byte | Enheten från vilken programmet laddades (CP/M 3) |
51–52 | Ord | Adress till lösenordet för den första FCB (CP/M 3) |
53 | Byte | Längden på lösenordet för den första FCB (CP/M 3) |
54–55 | Ord | Adress till lösenordet för den andra FCB (CP/M 3) |
56 | Byte | Längden på lösenordet för den andra FCB (CP/M 3) |
57–5B | Bytes | Reserverad |
5C–6B | Standard FCB 1 | |
6C–7F | Standard FCB 2 (skrivs över om FCB 1 öppnas) | |
80 | Byte | Antal tecken i kommandosvansen. |
81–FF | Bytes | Kommandosvans (allt efter programnamnet). |
Se även
Vidare läsning
-
"Tim Olmstead Memorial CP/M-bibliotek" . Arkiverad från originalet 2017-08-20 . Hämtad 2017-08-20 . - särskilt:
- "CP/M 3 Programmers Manual" (PDF) . Arkiverad (PDF) från originalet 2017-08-20 . Hämtad 2017-08-20 .
- "CP/M-86 Systemguide" (PDF) . Arkiverad (PDF) från originalet 2017-08-20 . Hämtad 2017-08-20 .
externa länkar
- "CP/M interns" . Arkiverad från originalet 2017-08-20 . Hämtad 2017-08-20 . - Fördjupad beskrivning av CP/M nollsidesfunktioner
Kategori: