; Prints a string ; Arguments: Takes a pointer in HL to a null-terminated string ; Clobbers: A, BC, HL .global print print: ld a, 0 jp 0xdffd ; Gets a free frame of memory ; Returns: Frame card in C, frame number in HL ; Clobbers: A, B, DE, IX, IY .global get_free_frame get_free_frame: ld a, 1 jp 0xdffd ; Maps a RAM frame into memory ; Arguments: Page to map in C, card # in B, bank # in DE ; Clobbers: A, IX, and C .global set_frame set_frame: ld a, 2 jp 0xdffd ; Creates a new process ; Arguments: Entry point in HL, page mapping in IY ; Clobbers: unknown .global new_process new_process: ld a, 3 jp 0xdffd ; Yields to the next process .global yield yield: ld a, 4 jp 0xdffd ; Sends a message to the given mailbox ; Arguments: Mailbox ID in HL, message pointer in C:DE:IX ; Returns: 0 in B if message was sent, or 1 if the box was full .global mb_send mb_send: ld a, 5 jp 0xdffd ; Reads a message from the given mailbox ; Arguments: Mailbox ID in HL ; Returns: 0 in B if there was a message, or 1 in B if there wasn't ; message pointer in C:DE:HL .global mb_read mb_read: ld a, 6 jp 0xdffd ; Gets a free mailbox ; Returns: ID in HL .global get_free_mailbox get_free_mailbox: ld a, 7 jp 0xdffd ; Sets the given type ID to the given PID ; Arguments: Type ID in DE, PID in HL .global proc_map_set proc_map_set: ld a, 8 jp 0xdffd ; Gets the value of the given type ID ; Arguments: Type ID in DE ; Returns: PID in HL .global proc_map_get proc_map_get: ld a, 9 jp 0xdffd ; Finds the first card with a given type ; Arguments: Card type in B ; Returns: Zero in A if a card was found, or nonzero otherwise ; The ID of the card in L if a card was found, ; or zero otherwise ; Clobbers: A and H .global find_first_card find_first_card: ld a, 10 jp 0xdffd