x68000:doscall
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
x68000:doscall [2017/09/10 12:38] – added _FPUTS neko68k | x68000:doscall [2017/11/25 06:00] – neko68k | ||
---|---|---|---|
Line 5: | Line 5: | ||
to $FF80~$FFAF in Version 3 and later | to $FF80~$FFAF in Version 3 and later | ||
- | | + | |
| | ||
$FFF8 is called every time a thread is deleted. | $FFF8 is called every time a thread is deleted. | ||
Line 13: | Line 13: | ||
|$FF01|[[doscall# | |$FF01|[[doscall# | ||
|$FF02|[[doscall# | |$FF02|[[doscall# | ||
- | |$FF03|_COMINP|RS-232C 1 byte input| | + | |$FF03|[[doscall# |
- | |$FF04|_COMOUT|RS-232C 1 byte output| | + | |$FF04|[[doscall# |
- | |$FF05|_PRNOUT|Printer 1 character output| | + | |$FF05|[[doscall# |
- | |$FF06|_INPOUT|Character I/O| | + | |$FF06|[[doscall# |
|$FF07|[[doscall# | |$FF07|[[doscall# | ||
|$FF08|[[doscall# | |$FF08|[[doscall# | ||
|$FF09|[[doscall# | |$FF09|[[doscall# | ||
|$FF0A|[[doscall# | |$FF0A|[[doscall# | ||
- | |$FF0B|_KEYSNS|Key input state check| | + | |$FF0B|[[doscall# |
|$FF0C|_KFLUSH|Keyboard input after buffer flush| | |$FF0C|_KFLUSH|Keyboard input after buffer flush| | ||
|$FF0D|[[doscall# | |$FF0D|[[doscall# | ||
Line 28: | Line 28: | ||
^Code^Name^Description^ | ^Code^Name^Description^ | ||
- | |$FF10|_CONSNS|Screen output check| | + | |$FF10|[[doscall# |
- | |$FF11|_PRNSNS|Printer output check| | + | |$FF11|[[doscall# |
- | |$FF12|_CINSNS|RS-232C input check| | + | |$FF12|[[doscall# |
- | |$FF13|_COUTSNS|RS-232C output check| | + | |$FF13|[[doscall# |
|$FF17|_FATCHK|File concatenation state check| | |$FF17|_FATCHK|File concatenation state check| | ||
|$FF18|_HENDSP|Kanji conversion control| | |$FF18|_HENDSP|Kanji conversion control| | ||
- | |$FF19|_CURDRV|Get current drive| | + | |$FF19|[[[doscall# |
- | |$FF1A|_GETSS|Get character string (no break check)| | + | |$FF1A|[[doscall# |
|$FF1B|[[doscall# | |$FF1B|[[doscall# | ||
|$FF1C|[[doscall# | |$FF1C|[[doscall# | ||
Line 43: | Line 43: | ||
^Code^Name^Description^ | ^Code^Name^Description^ | ||
- | |$FF20|_SUPER|Supervisor/ | + | |$FF20|[[doscall# |
|$FF21|_FNCKEY|Get/ | |$FF21|_FNCKEY|Get/ | ||
|$FF22|_KNJCTRL|Kana-to-kanji conversion| | |$FF22|_KNJCTRL|Kana-to-kanji conversion| | ||
Line 61: | Line 61: | ||
^Code^Name^Description^ | ^Code^Name^Description^ | ||
- | |$FF30|_VERNUM|Get OS version| | + | |$FF30|[[doscall# |
|$FF31|_KEEPPR|Terminate and stay resident| | |$FF31|_KEEPPR|Terminate and stay resident| | ||
|$FF32|_GETDPB|Get drive parameter block| | |$FF32|_GETDPB|Get drive parameter block| | ||
Line 67: | Line 67: | ||
|$FF34|_DRVXCHG|Replace drive| | |$FF34|_DRVXCHG|Replace drive| | ||
|$FF35|_INTVCG|Get vector processing address| | |$FF35|_INTVCG|Get vector processing address| | ||
- | |$FF36|_DSKFRE|Get disk space remaining| | + | |$FF36|[[doscall# |
|$FF37|_NAMECK|Filename expansion| | |$FF37|_NAMECK|Filename expansion| | ||
|$FF39|[[doscall# | |$FF39|[[doscall# | ||
Line 90: | Line 90: | ||
|$FF4A|[[doscall# | |$FF4A|[[doscall# | ||
|$FF4B|_EXEC|Load/ | |$FF4B|_EXEC|Load/ | ||
- | |$FF4C|_EXIT2|Exit with return code| | + | |$FF4C|[[doscall# |
- | |$FF4D|_WAIT|Get process end return code| | + | |$FF4D|[[doscall# |
|$FF4E|_FILES|Search files| | |$FF4E|_FILES|Search files| | ||
|$FF4F|_NFILES|Search next files| | |$FF4F|_NFILES|Search next files| | ||
Line 105: | Line 105: | ||
|$FF87|_FILEDATE|Get/ | |$FF87|_FILEDATE|Get/ | ||
|$FF88|_MALLOC2|Alloc memory| | |$FF88|_MALLOC2|Alloc memory| | ||
- | |$FF8A|_MAKETMP|Create temporary file| | + | |$FF8A|[[doscall# |
- | |$FF8B|_NEWFILE|Create new file| | + | |$FF8B|[[doscall# |
|$FF8C|_LOCK|Lock file| | |$FF8C|_LOCK|Lock file| | ||
|$FF8F|_ASSIGN|Get/ | |$FF8F|_ASSIGN|Get/ | ||
Line 195: | Line 195: | ||
move CODE, | move CODE, | ||
DOS _PUTCHAR | DOS _PUTCHAR | ||
+ | addq.l # | ||
+ | --- | ||
+ | ^$FF03^< | ||
+ | |Arg|None|| | ||
+ | |Return|1 byte received|| | ||
+ | |Receive 1 byte from the RS-232C port (with break check)||| | ||
+ | --- | ||
+ | ^$FF04^< | ||
+ | |Arg|CODE.w|Byte code| | ||
+ | |Return|None|| | ||
+ | |Send 1 byte to the RS-232C port (with break check)||| | ||
+ | |||
+ | Usage: | ||
+ | move CODE, | ||
+ | DOS _COMOUT | ||
+ | addq.l # | ||
+ | --- | ||
+ | ^$FF05^< | ||
+ | |Arg|CODE.w|Single-byte character code| | ||
+ | |Return|None|| | ||
+ | |Output one character specified by CODE to the printer (with break check). Because the high-order byte of CODE must be 0, kanji is output by sending two bytes in a row in the order of high byte first, then low byte.||| | ||
+ | |||
+ | Usage: | ||
+ | move CODE, | ||
+ | DOS _PRNOUT | ||
+ | addq.l # | ||
+ | |||
+ | --- | ||
+ | ^$FF06^< | ||
+ | |Arg|CODE.w|Single-byte character code| | ||
+ | |Return|CODE=0xFF, | ||
+ | |If the CODE value is 0xFF if the key is not pressed it returns 0 immediately. If CODE=0xFE the key is read and the value stays in the buffer. If CODE is any other value it is regarded as a character code and displayed.||| | ||
+ | |||
+ | Usage: | ||
+ | move CODE, | ||
+ | DOS _INPOUT | ||
addq.l # | addq.l # | ||
--- | --- | ||
Line 231: | Line 267: | ||
DOS _GETS | DOS _GETS | ||
addq.l # | addq.l # | ||
+ | --- | ||
+ | ^$FF0B^< | ||
+ | |Arg|None|| | ||
+ | |Return|Input state (0: no input, -1: input)|| | ||
+ | |Examine the key input state. Checks for %%^%%C, %%^%%S, %%^%%P, or %%^%%N. ||| | ||
--- | --- | ||
Line 247: | Line 288: | ||
DOS _CHGDRV | DOS _CHGDRV | ||
addq.l # | addq.l # | ||
+ | --- | ||
+ | ^$FF10^< | ||
+ | |Arg|none|| | ||
+ | |Return|Output status (0: output impossible, nonzero: output possible)|| | ||
+ | |Check if screen output is possible.||| | ||
+ | --- | ||
+ | ^$FF11^< | ||
+ | |Arg|none|| | ||
+ | |Return|Output status (0: output impossible, nonzero: output possible)|| | ||
+ | |Check if printer output is possible.||| | ||
+ | --- | ||
+ | ^$FF12^< | ||
+ | |Arg|none|| | ||
+ | |Return|Output status (0: input impossible, nonzero: input possible)|| | ||
+ | |Check if RS-232C input is possible.||| | ||
+ | --- | ||
+ | ^$FF13^< | ||
+ | |Arg|none|| | ||
+ | |Return|Output status (0: output impossible, nonzero: output possible)|| | ||
+ | |Check if RS-232C output is possible.||| | ||
+ | --- | ||
+ | ^$FF19^< | ||
+ | |Arg|None|| | ||
+ | |Return|Number of the current drive (0: A 1: B ... 25: Z)|| | ||
+ | |Get the current drive number.||| | ||
--- | --- | ||
+ | ^$FF1A^< | ||
+ | |Arg|BUFFER.l|Input buffer pointer| | ||
+ | |Return|Writes the input character string up to the line feed to the input buffer specified by BUFFER. Newline characters are replaced with NULL characters. Does not perform break check(do not break at VOID/ | ||
+ | |Get the current drive number.||| | ||
+ | |||
+ | ^Offset^Size^Desciption^ | ||
+ | |0|1.b|Maximum input characters allowed: n| | ||
+ | |1|1.b|Number of characters actually entered| | ||
+ | |2|n+1.b|Input string| | ||
+ | --- | ||
+ | |||
+ | |||
^$FF1B^< | ^$FF1B^< | ||
|Arg|FILENO.w|File handle| | |Arg|FILENO.w|File handle| | ||
Line 293: | Line 371: | ||
DOS _FPUTS | DOS _FPUTS | ||
addq.l # | addq.l # | ||
- | |||
--- | --- | ||
^$FF1F^< | ^$FF1F^< | ||
Line 299: | Line 376: | ||
|Return|None|| | |Return|None|| | ||
|Close all open files||| | |Close all open files||| | ||
+ | --- | ||
+ | ^$FF20^< | ||
+ | |Arg|STACK.l|Switching mode (0 or address set in SSP)| | ||
+ | |Return|STACK=0 Value of the previous SSP (error code if negative) \\ Switch the supervisor/ | ||
+ | |Close all open files||| | ||
+ | |||
+ | Usage: | ||
+ | pea (STACK) | ||
+ | DOS _SUPER | ||
+ | addq.l # | ||
+ | --- | ||
+ | ^$FF30^< | ||
+ | |Arg|None|| | ||
+ | |Return|Version number|| | ||
+ | |Check the verion number of Human68k \\ \\ bit 31~24 ' | ||
+ | --- | ||
+ | ^$FF36^< | ||
+ | |Arg|DRIVE.w|Drive number| | ||
+ | |Return|Number of free bytes (2GB maximum, error code if negative)|| | ||
+ | |Get the remaining free space of the drive specified by DRIVE and write it to the following 8 bytes to BUFFER.||| | ||
+ | |||
+ | ^Offset^Size^Description^ | ||
+ | |0|1.w|Number of free clusters| | ||
+ | |2|1.w|Total number of clusters| | ||
+ | |4|1.w|Number of sectors per cluster| | ||
+ | |6|1.w|Number of bytes per sector| | ||
+ | |||
+ | Usage: | ||
+ | pea (BUFFER) | ||
+ | move DRIVE, | ||
+ | DOS _DSKFRE | ||
+ | addq.l # | ||
--- | --- | ||
^$FF39^< | ^$FF39^< | ||
Line 459: | Line 568: | ||
DOS _SETBLOCK | DOS _SETBLOCK | ||
addq.l # | addq.l # | ||
+ | |||
+ | --- | ||
+ | ^$FF4C^< | ||
+ | |Arg|CODE.w|Exit code| | ||
+ | |Return|None|| | ||
+ | |Quit the program with the exit code specified by CODE. The opened file handles are closed.||| | ||
+ | |||
+ | --- | ||
+ | ^$FF4D^< | ||
+ | |Arg|None|| | ||
+ | |Return|Exit code|| | ||
+ | |Examine the exit code of the executed process. It is the same as the return value of //DOS _EXEC(MODE=0, | ||
+ | --- | ||
+ | ^$FF8A^< | ||
+ | |Arg 1|FILE.l|Pointer to file name| | ||
+ | |Arg 2|ATR.w|File attribute (%XLAD_VSHR)| | ||
+ | |Return|The file handle of the created file. If negative, an error occured.|| | ||
+ | |Create a temporary file specified by FILE with attributes ATR. The file name can contain '?', | ||
+ | |||
+ | Usage: | ||
+ | move ATR, | ||
+ | pea (FILE) | ||
+ | DOS _MAKETMP | ||
+ | addq.l # | ||
+ | --- | ||
+ | ^$FF8B^< | ||
+ | |Arg 1|FILE.l|Pointer to file name| | ||
+ | |Arg 2|ATR.w|File attribute (%XLAD_VSHR)| | ||
+ | |Return|The file handle of the created file. If negative, an error occured.|| | ||
+ | |Create a temporary file specified by FILE with attributes ATR. If ATR is 0 it is equivalent to the //archive// attribute. If the file already exists it returns an error (-80).||| | ||
+ | |||
+ | Usage: | ||
+ | move ATR, | ||
+ | pea (FILE) | ||
+ | DOS _MAKETMP | ||
+ | addq.l # | ||
+ |
x68000/doscall.txt · Last modified: 2020/01/26 15:54 by sigvec