mk90.guide

Diagnostics and status codes

Exact message text, return codes and practical interpretation.

Reading diagnostics

Shell diagnostics are short Italian strings. The table preserves the actual strings and explains them in English. BASIC normally reports BASIC @ line code; its line value is the BASIC line number, including automatically assigned numbers, not necessarily the physical file line.

The shell has no $? variable. WAIT prints a worker’s stored exit result; most commands print only an error message when needed. A missing unregistered command token is tried as an executable path, so a typo can produce NOT FOUND rather than UNKNOWN COMMAND.

BASIC runtime cancellation returns code 130 without the usual BASIC error banner. Some low-level errors, including a rejected WAIT, use the shared status values below.

Status summary

CodeDisplayed text / formMeaning
0Success.
1ERRORE I/OController/transfer error; also an incomplete writer close or rejected native sleep.
2SCRITTURA NON VERIFICATAA write could not be verified by rereading.
3VOLUME NON FORMATTATO/ASSENTENo valid supported MKS2 header; absent/unformatted or incompatible volume.
4FILE SYSTEM/DATI CORROTTIInvalid metadata or a file-data checksum failure.
5SOLA LETTURAThe target device is read-only or protected.
6NON TROVATOThe requested file, directory or path was not found.
7SPAZIO O INODE ESAURITINo suitable free extent or inode.
8ARGOMENTI/NOME NON VALIDIInvalid argument, filename, handle or PID.
9E UNA DIRECTORYA directory was supplied where a regular file was required.
10NON E UNA DIRECTORYA path component is not a directory.
11ESISTE GIAThe target already exists for an operation requiring a new name.
12DIRECTORY NON VUOTARMDIR target contains children.
13ROM ERR @ ROM resource/module/addressing validation failed; a location may follow.
14DEVICE ASSENTE/NON MONTATODevice has no driver or volume is not mounted.
15PERCORSO OCCUPATOBusy resource, disallowed owner, protected current path or no free task slot.
16SALVA: APRI EDIT CON PERCORSOUnnamed editor buffer: reopen EDIT with a pathname to save.
17LBA FUORI DAL DEVICELogical block address is outside device bounds.
18NON E UN FILE REGOLAREUnsupported special path or non-regular-file operation.
19COMANDO SCONOSCIUTOUnknown registered command, for example an invalid HELP topic.
20FILE TROPPO GRANDE PER EDITThe file exceeds the 1,280-byte editor limit.
21PIPE CHIUSAEPIPE: the pipe reader has closed.
22PIPE: SINTASSI/COMANDO NON VALIDOInvalid pipeline syntax, producer or consumer.
32BASIC @ line 32Syntax error, unsupported word, duplicate/non-increasing line number or NUL in source.
33BASIC @ line 33Compiler limit exceeded: literal, line table, expression depth, code length or related bound.
34BASIC @ line 34GOTO/GOSUB/THEN destination line is absent.
35BASIC @ line 35Invalid MBX header, opcode, variable index, fetch/branch bound or device argument.
36BASIC @ line 36Invalid or exhausted operand/control stack; mismatched NEXT/RETURN.
37BASIC @ line 37Division by zero, STEP 0 or invalid mathematical argument.
38BASIC @ line 38Data-file state error or GET beyond EOF.
130Cancellation/termination: SU+C in BASIC or KILL result for a worker.

Status 0

Success.

Status 1

ERRORE I/O: Controller/transfer error; also an incomplete writer close or rejected native sleep.

Status 2

SCRITTURA NON VERIFICATA: A write could not be verified by rereading.

Status 3

VOLUME NON FORMATTATO/ASSENTE: No valid supported MKS2 header; absent/unformatted or incompatible volume.

Status 4

FILE SYSTEM/DATI CORROTTI: Invalid metadata or a file-data checksum failure.

Status 5

SOLA LETTURA: The target device is read-only or protected.

Status 6

NON TROVATO: The requested file, directory or path was not found.

Status 7

SPAZIO O INODE ESAURITI: No suitable free extent or inode.

Status 8

ARGOMENTI/NOME NON VALIDI: Invalid argument, filename, handle or PID.

Status 9

E UNA DIRECTORY: A directory was supplied where a regular file was required.

Status 10

NON E UNA DIRECTORY: A path component is not a directory.

Status 11

ESISTE GIA: The target already exists for an operation requiring a new name.

Status 12

DIRECTORY NON VUOTA: RMDIR target contains children.

Status 13

ROM ERR @ : ROM resource/module/addressing validation failed; a location may follow.

Status 14

DEVICE ASSENTE/NON MONTATO: Device has no driver or volume is not mounted.

Status 15

PERCORSO OCCUPATO: Busy resource, disallowed owner, protected current path or no free task slot.

Status 16

SALVA: APRI EDIT CON PERCORSO: Unnamed editor buffer: reopen EDIT with a pathname to save.

Status 17

LBA FUORI DAL DEVICE: Logical block address is outside device bounds.

Status 18

NON E UN FILE REGOLARE: Unsupported special path or non-regular-file operation.

Status 19

COMANDO SCONOSCIUTO: Unknown registered command, for example an invalid HELP topic.

Status 20

FILE TROPPO GRANDE PER EDIT: The file exceeds the 1,280-byte editor limit.

Status 21

PIPE CHIUSA: EPIPE: the pipe reader has closed.

Status 22

PIPE: SINTASSI/COMANDO NON VALIDO: Invalid pipeline syntax, producer or consumer.

Status 32

BASIC @ line 32: Syntax error, unsupported word, duplicate/non-increasing line number or NUL in source.

Status 33

BASIC @ line 33: Compiler limit exceeded: literal, line table, expression depth, code length or related bound.

Status 34

BASIC @ line 34: GOTO/GOSUB/THEN destination line is absent.

Status 35

BASIC @ line 35: Invalid MBX header, opcode, variable index, fetch/branch bound or device argument.

Status 36

BASIC @ line 36: Invalid or exhausted operand/control stack; mismatched NEXT/RETURN.

Status 37

BASIC @ line 37: Division by zero, STEP 0 or invalid mathematical argument.

Status 38

BASIC @ line 38: Data-file state error or GET beyond EOF.

Status 130

Cancellation/termination: SU+C in BASIC or KILL result for a worker.

Boot and fatal messages

MessageInterpretation
ROM ERR >8KExtended resident load/check failed. The recovery path in the verified prefix stops; check the programmed image and cartridge addressing.
ERRORE BUS TASTIERA / RIAVVIARE MK90Keyboard/shared-controller failure; the system has stopped and requests restart.
STACK ERR / RIAVVIAREShared shell/foreground stack check failed; the system has stopped.
RTC NON DISPONIBILERTC sampling failed to obtain a stable value within its bounded retry loop.

Diagnostic cases

ObservationWhat to check
ROMTEST milestones pass but MOUNT failsROM addressing is separate from data format. Is the data cartridge MKS2, with a valid header and metadata?
DEVICES shows RW but access failsRW describes the driver flags. It does not prove presence or capacity of the cartridge.
CP/MBC reports space exhausted despite a small outputReplacement uses a new contiguous extent; both metadata generations and open readers can retain older sectors.
Pipeline reports busyOne of background slots 1/2 is required by its consumer. Check PS and stop or wait for a worker.
FK inserts a word which MBC rejectsThe editor includes factory legends; only the documented MBC-16 subset compiles.
RND restarts with the same sequenceThe runtime deliberately starts its pseudorandom seed at 1 each execution.
Long WAIT does not stop immediately on SU+CCancellation is checked at runtime polling/input points, not within the sleep deadline wait.