;/////////////////////////////////////////////////////////////////////////// ; ; C LIBRARY FOR SOLID C compiler ; Root module ; ;/////////////////////////////////////////////////////////////////////////// ; Входящие функции: ; ; xmain ; _exit ; abort ; cseg db "CLIB v0.01",0 xmain:: ; создать список аргументов push ix pop hl ; адрес ком. строки call _setargv## ; в dos.asm ld de,_argv_## ; список аргументов (в dos.asm) call _main_## ; в stdio.asm ; ; "stdlib.h" ; передается управление из функции exit. ; Функция завершает вызванный процесс без обновления буферов потока. ; Значение code обычно устанавливается в 0 для указания нормального ; выхода и устанавливается в любое другое значение для определения ошибки. ; Поскольку вызов _exit не возвращает значения, то мл. байт code является ; кодом возврата для родительского процесса. ; in: hl = значение error code ; out: нет ; ; void _exit(int code) ; _exit_:: ld b,l ld c,41h ; terminate with error code rst 10h ret ; ; "stdlib.h" ; Функция выводит на экран сообщение "Abnormal program termination." ; (непредвиденное завершение программы) и завершает вызванный процесс ; без обновления буферов потока. ; in: нет ; out: нет ; ; void abort() ; abort_:: ld hl,@1 ld c,5Ch rst 10h ld l,-1 jr _exit_ dseg @1: db 0Dh,0Ah,"Abnormal program termination.",0Dh,0Ah,0Ah,0