
Prog8 compiler v11.4.1 by Irmen de Jong (irmen@razorvine.net)
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html

Compiling program import-all-c128.p8
Compiler target: c128


LIBRARY MODULE NAME: buffers
----------------------------

smallringbuffer  {
    ubyte[]  buffer 
    ubyte  fill 
    ubyte  head 
    ubyte  tail 
    free  () -> ubyte 
    get  () -> ubyte 
    getw  () -> uword 
    init  () 
    isempty  () -> bool 
    isfull  () -> bool 
    put  (ubyte value) 
    putw  (uword value) 
    size  () -> ubyte 
}

stack  {
    uword  buffer_ptr 
    uword  sp 
    free  () -> uword 
    init  () 
    isempty  () -> bool 
    isfull  () -> bool 
    pop  () -> ubyte 
    popw  () -> uword 
    push  (ubyte value) 
    pushw  (uword value) 
    size  () -> uword 
}

ringbuffer  {
    uword  buffer_ptr 
    uword  fill 
    uword  head 
    uword  tail 
    free  () -> uword 
    get  () -> ubyte 
    getw  () -> uword 
    inc_head  () 
    inc_tail  () 
    init  () 
    isempty  () -> bool 
    isfull  () -> bool 
    put  (ubyte value) 
    putw  (uword value) 
    size  () -> uword 
}


LIBRARY MODULE NAME: compression
--------------------------------

compression  {
    decode_rle  (uword compressed @AY, uword target @R0, uword maxsize @R1) -> clobbers (X) -> uword @AY 
    decode_rle_srcfunc  (uword source_function @AY, uword target @R0, uword maxsize @R1) -> clobbers (X) -> uword @AY 
    decode_tscrunch  (uword compressed @R0, uword target @R1) -> clobbers (A,X,Y) 
    decode_tscrunch_inplace  (uword compressed @R0) -> clobbers (A,X,Y) 
    decode_zx0  (uword compressed @R0, uword target @R1) -> clobbers (A,X,Y) 
    encode_rle  (uword data, uword size, uword target, bool is_last_block) -> uword 
    encode_rle_outfunc  (uword data, uword size, uword output_function, bool is_last_block) 
}


LIBRARY MODULE NAME: conv
-------------------------

conv  {
    ubyte[] @shared  string_out 
    any2uword  (str string @AY) -> clobbers (Y) -> ubyte @A 
    bin2uword  (str string @AY) -> uword @AY 
    hex2uword  (str string @AY) -> uword @AY 
    internal_byte2decimal  (byte value @A) -> ubyte @Y, ubyte @A, ubyte @X 
    internal_ubyte2decimal  (ubyte value @A) -> ubyte @Y, ubyte @X, ubyte @A 
    internal_ubyte2hex  (ubyte value @A) -> clobbers (X) -> ubyte @A, ubyte @Y 
    internal_uword2decimal  (uword value @AY) -> ubyte @Y, ubyte @A, ubyte @X 
    internal_uword2hex  (uword value @AY) -> clobbers (A,Y) 
    str2byte  (str string @AY) -> clobbers (Y) -> byte @A 
    str2ubyte  (str string @AY) -> clobbers (Y) -> ubyte @A 
    str2uword  (str string @AY) -> uword @AY 
    str2word  (str string @AY) -> word @AY 
    str_b  (byte value @A) -> clobbers (X) -> str @AY 
    str_ub  (ubyte value @A) -> clobbers (X) -> str @AY 
    str_ub0  (ubyte value @A) -> clobbers (X) -> str @AY 
    str_ubbin  (ubyte value @A) -> clobbers (X) -> str @AY 
    str_ubhex  (ubyte value @A) -> clobbers (X) -> str @AY 
    str_uw  (uword value @AY) -> clobbers (X) -> str @AY 
    str_uw0  (uword value @AY) -> clobbers (X) -> str @AY 
    str_uwbin  (uword value @AY) -> clobbers (X) -> str @AY 
    str_uwhex  (uword value @AY) -> str @AY 
    str_w  (word value @AY) -> clobbers (X) -> str @AY 
}


LIBRARY MODULE NAME: coroutines
-------------------------------

coroutines  {
    const ubyte  MAX_TASKS 
    ubyte  active_task 
    uword  supervisor 
    uword[]  tasklist 
    uword[]  userdatas 
    add  (uword taskaddress, uword userdata) -> ubyte 
    current  () -> ubyte 
    kill  (ubyte taskid) 
    killall  () 
    run  (uword supervisor_routine) 
    termination  () 
    yield  () -> uword 
}


LIBRARY MODULE NAME: cx16logo
-----------------------------

cx16logo  {
    uword[]  logo_lines 
    logo  () 
    logo_at  (ubyte column, ubyte row) 
}


LIBRARY MODULE NAME: diskio
---------------------------

diskio  {
    const ubyte  READ_IO_CHANNEL 
    const ubyte  STATUS_EOF 
    const ubyte  WRITE_IO_CHANNEL 
    ubyte @shared  drivenumber 
    bool  iteration_in_progress 
    uword  list_blocks 
    str  list_filename 
    str  list_filetype 
    uword  list_pattern 
    bool  list_skip_disk_name 
    bool  write_iteration_in_progress 
    delete  (uword filenameptr) 
    directory  () -> bool 
    directory_dirs  () -> bool 
    directory_files  () -> bool 
    diskname  () -> uword 
    exists  (str filename) -> bool 
    f_close  () 
    f_close_w  () 
    f_open  (uword filenameptr) -> bool 
    f_open_w  (uword filenameptr) -> bool 
    f_read  (uword bufferpointer, uword num_bytes) -> uword 
    f_read_all  (uword bufferpointer) -> uword 
    f_readline  (uword bufptr @AY) -> clobbers (X) -> ubyte @Y, ubyte @A 
    f_write  (uword bufferpointer, uword num_bytes) -> bool 
    get_loadaddress  (str filename) -> uword 
    lf_end_list  () 
    lf_next_entry  () -> bool 
    lf_start_list  (uword pattern_ptr) -> bool 
    lf_start_list_dirs  (uword pattern_ptr) -> bool 
    lf_start_list_files  (uword pattern_ptr) -> bool 
    list_filenames  (uword pattern_ptr, uword filenames_buffer, uword filenames_buf_size) -> ubyte 
    load  (uword filenameptr, uword address_override) -> uword 
    load_raw  (uword filenameptr, uword start_address) -> uword 
    loadlib  (uword libnameptr, uword libaddress) -> uword 
    rename  (uword oldfileptr, uword newfileptr) 
    reset_read_channel  () 
    reset_write_channel  () 
    save  (uword filenameptr, uword start_address, uword savesize) -> bool 
    send_command  (uword commandptr) 
    status  () -> uword 
    status_code  () -> ubyte 
}


LIBRARY MODULE NAME: math
-------------------------

math  {
    atan2  (ubyte x1 @R0, ubyte y1 @R1, ubyte x2 @R2, ubyte y2 @R3) -> ubyte @A 
    cos8  (ubyte angle @A) -> clobbers (Y) -> byte @A 
    cos8u  (ubyte angle @A) -> clobbers (Y) -> ubyte @A 
    cosr8  (ubyte radians @A) -> clobbers (Y) -> byte @A 
    cosr8u  (ubyte radians @A) -> clobbers (Y) -> ubyte @A 
    crc16  (uword data, uword length) -> uword 
    crc16_end  () -> uword 
    crc16_start  () 
    crc16_update  (ubyte value @A) 
    crc32  (uword data, uword length) 
    crc32_end  () 
    crc32_end_result  () -> uword @R15, uword @R14 
    crc32_start  () 
    crc32_update  (ubyte value) 
    diff  (ubyte v1 @A, ubyte v2 @Y) -> ubyte @A 
    diffw  (uword w1 @R0, uword w2 @AY) -> uword @AY 
    direction  (ubyte x1, ubyte y1, ubyte x2, ubyte y2) -> ubyte 
    direction_qd  (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A 
    direction_sc  (byte x1, byte y1, byte x2, byte y2) -> ubyte 
    interpolate  (ubyte v, ubyte inputMin, ubyte inputMax, ubyte outputMin, ubyte outputMax) -> ubyte 
    lerp  (ubyte v0, ubyte v1, ubyte t) -> ubyte 
    lerpw  (uword v0, uword v1, uword t) -> uword 
    log2  (ubyte value @A) -> ubyte @Y 
    log2w  (uword value @AY) -> ubyte @Y 
    mul16_last_upper  () -> uword @AY 
    randrange  (ubyte n) -> ubyte 
    randrange_rom  (ubyte n) -> ubyte 
    randrangew  (uword n) -> uword 
    randrangew_rom  (uword n) -> uword 
    rnd  () -> clobbers (Y) -> ubyte @A 
    rnd_rom  () -> clobbers (Y) -> ubyte @A 
    rndseed  (uword seed1 @AY, uword seed2 @R0) -> clobbers (A,Y) 
    rndseed_rom  (uword seed1 @AY, uword seed2 @R0) -> clobbers (A,Y) 
    rndw  () -> uword @AY 
    rndw_rom  () -> uword @AY 
    sin8  (ubyte angle @A) -> clobbers (Y) -> byte @A 
    sin8u  (ubyte angle @A) -> clobbers (Y) -> ubyte @A 
    sinr8  (ubyte radians @A) -> clobbers (Y) -> byte @A 
    sinr8u  (ubyte radians @A) -> clobbers (Y) -> ubyte @A 
}


LIBRARY MODULE NAME: strings
----------------------------

strings  {
    append  (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A 
    compare  (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A 
    contains  (uword string @AY, ubyte character @X) -> bool @Pc 
    copy  (uword source @R0, uword target @AY) -> clobbers (A) -> ubyte @Y 
    endswith  (str st, str suffix) -> bool 
    find  (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc 
    find_eol  (uword string @AY) -> ubyte @A, bool @Pc 
    findstr  (str haystack, str needle) -> ubyte 
    hash  (str string @AY) -> ubyte @A 
    isdigit  (ubyte petsciichar @A) -> bool @Pc 
    isletter  (ubyte petsciichar @A) -> bool @Pc 
    islower  (ubyte petsciichar @A) -> bool @Pc 
    isprint  (ubyte petsciichar @A) -> bool @Pc 
    isspace  (ubyte petsciichar @A) -> bool @Pc 
    isupper  (ubyte petsciichar @A) -> bool @Pc 
    left  (uword source @AX, ubyte length @Y, uword target @R1) -> clobbers (A,Y) 
    length  (uword string @AY) -> clobbers (A) -> ubyte @Y 
    lower  (uword st @AY) -> ubyte @Y 
    lowerchar  (ubyte character @A) -> ubyte @A 
    lstrip  (str s) 
    lstripped  (str s) -> str 
    ltrim  (str s) 
    ltrimmed  (str s) -> str 
    ncompare  (uword string1 @R0, uword string2 @AY, ubyte length @X) -> clobbers (X,Y) -> byte @A 
    pattern_match  (str string @AY, str pattern @R0) -> clobbers (Y) -> bool @A 
    rfind  (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc 
    right  (uword source @AY, ubyte length @X, uword target @R1) -> clobbers (A,Y) 
    rstrip  (str s) 
    rtrim  (str s) 
    slice  (uword source @R0, ubyte start @A, ubyte length @Y, uword target @R1) -> clobbers (A,Y) 
    startswith  (str st, str prefix) -> bool 
    strip  (str s) 
    trim  (str s) 
    upper  (uword st @AY) -> ubyte @Y 
    upperchar  (ubyte character @A) -> ubyte @A 
}


LIBRARY MODULE NAME: syslib
---------------------------

cbm  {
    &uword  CBINV 
    &uword  CINV 
    &ubyte  COLOR 
    const uword  Colors 
    &uword  IBASIN 
    &uword  IBSOUT 
    &uword  ICHKIN 
    &uword  ICKOUT 
    &uword  ICLALL 
    &uword  ICLOSE 
    &uword  ICLRCH 
    &uword  ICRNCH 
    &uword  ICRNCH2 
    &uword  IERROR 
    &uword  IEVAL 
    &uword  IEXMON 
    &uword  IGETIN 
    &uword  IGONE 
    &uword  IGONE2 
    &uword  ILOAD 
    &uword  IMAIN 
    &uword  IOPEN 
    &uword  IQPLOP 
    &uword  IQPLOP2 
    &uword  IRQ_VEC 
    &uword  ISAVE 
    &uword  ISTOP 
    &uword  NMINV 
    &uword  NMI_VEC 
    &uword  RESET_VEC 
    &ubyte  SFDX 
    &ubyte  SHFLAG 
    &ubyte  STATUS 
    &ubyte  STKEY 
    const uword  Screen 
    &ubyte  TIME_HI 
    &ubyte  TIME_LO 
    &ubyte  TIME_MID 
    ACPTR  () -> ubyte @A  = $ffa5
    CHKIN  (ubyte logical @X) -> clobbers (A,X) -> bool @Pc  = $ffc6
    CHKOUT  (ubyte logical @X) -> clobbers (A,X)  = $ffc9
    CHRIN  () -> clobbers (X,Y) -> ubyte @A  = $ffcf
    CHROUT  (ubyte character @A)  = $ffd2
    CINT  () -> clobbers (A,X,Y)  = $ff81
    CIOUT  (ubyte databyte @A)  = $ffa8
    CLALL  () -> clobbers (A,X)  = $ffe7
    CLEARST  () 
    CLOSE  (ubyte logical @A) -> clobbers (A,X,Y)  = $ffc3
    CLRCHN  () -> clobbers (A,X)  = $ffcc
    GETIN  () -> clobbers (X,Y) -> bool @Pc, ubyte @A  = $ffe4
    GETIN2  () -> clobbers (X,Y) -> ubyte @A 
    IOBASE  () -> uword @XY  = $fff3
    IOINIT  () -> clobbers (A,X)  = $ff84
    IRQDFEND  () -> clobbers (A,X,Y)  = $ff33
    IRQDFRT  () -> clobbers (A,X,Y)  = $fa65
    LISTEN  (ubyte device @A) -> clobbers (A)  = $ffb1
    LOAD  (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY  = $ffd5
    MEMBOT  (uword address @XY, bool dir @Pc) -> uword @XY  = $ff9c
    MEMTOP  (uword address @XY, bool dir @Pc) -> uword @XY  = $ff99
    OPEN  () -> clobbers (X,Y) -> bool @Pc, ubyte @A  = $ffc0
    PLOT  (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @Y, ubyte @X  = $fff0
    RAMTAS  () -> clobbers (A,X,Y)  = $ff87
    RDTIM  () -> ubyte @A, ubyte @X, ubyte @Y  = $ffde
    RDTIM16  () -> clobbers (X) -> uword @AY 
    READST  () -> ubyte @A  = $ffb7
    RESTOR  () -> clobbers (A,X,Y)  = $ff8a
    SAVE  (ubyte zp_startaddr @A, uword endaddr @XY) -> bool @Pc, ubyte @A  = $ffd8
    SCNKEY  () -> clobbers (A,X,Y)  = $ff9f
    SCREEN  () -> ubyte @X, ubyte @Y  = $ffed
    SCRORG  () -> ubyte @X, ubyte @Y  = $ffed
    SECOND  (ubyte address @A) -> clobbers (A)  = $ff93
    SETLFS  (ubyte logical @A, ubyte device @X, ubyte secondary @Y)  = $ffba
    SETMSG  (ubyte value @A)  = $ff90
    SETNAM  (ubyte namelen @A, str filename @XY)  = $ffbd
    SETTIM  (ubyte low @A, ubyte middle @X, ubyte high @Y)  = $ffdb
    SETTMO  (ubyte timeout @A)  = $ffa2
    STOP  () -> clobbers (X) -> bool @Pz, ubyte @A  = $ffe1
    STOP2  () -> clobbers (A,X) -> bool @Pz 
    TALK  (ubyte device @A) -> clobbers (A)  = $ffb4
    TKSA  (ubyte address @A) -> clobbers (A)  = $ff96
    UDTIM  () -> clobbers (A,X)  = $ffea
    UNLSN  () -> clobbers (A)  = $ffae
    UNTLK  () -> clobbers (A)  = $ffab
    VECTOR  (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y)  = $ff8d
    kbdbuf_clear  () 
}

c64  {
    &ubyte  AD1 
    &ubyte  AD2 
    &ubyte  AD3 
    &ubyte  BGCOL0 
    &ubyte  BGCOL1 
    &ubyte  BGCOL2 
    &ubyte  BGCOL4 
    &ubyte  CIA1CRA 
    &ubyte  CIA1CRB 
    &ubyte  CIA1DDRA 
    &ubyte  CIA1DDRB 
    &ubyte  CIA1ICR 
    &ubyte  CIA1PRA 
    &ubyte  CIA1PRB 
    &ubyte  CIA1SDR 
    &ubyte  CIA1TAH 
    &ubyte  CIA1TAL 
    &ubyte  CIA1TBH 
    &ubyte  CIA1TBL 
    &ubyte  CIA1TOD10 
    &ubyte  CIA1TODHR 
    &ubyte  CIA1TODMMIN 
    &ubyte  CIA1TODSEC 
    &ubyte  CIA2CRA 
    &ubyte  CIA2CRB 
    &ubyte  CIA2DDRA 
    &ubyte  CIA2DDRB 
    &ubyte  CIA2ICR 
    &ubyte  CIA2PRA 
    &ubyte  CIA2PRB 
    &ubyte  CIA2SDR 
    &ubyte  CIA2TAH 
    &ubyte  CIA2TAL 
    &ubyte  CIA2TBH 
    &ubyte  CIA2TBL 
    &ubyte  CIA2TOD10 
    &ubyte  CIA2TODHR 
    &ubyte  CIA2TODMIN 
    &ubyte  CIA2TODSEC 
    &ubyte  CR1 
    &ubyte  CR2 
    &ubyte  CR3 
    &ubyte  ENV3 
    &ubyte  EXTCOL 
    &uword  FC 
    &ubyte  FCHI 
    &ubyte  FCLO 
    &uword  FREQ1 
    &uword  FREQ2 
    &uword  FREQ3 
    &ubyte  FREQHI1 
    &ubyte  FREQHI2 
    &ubyte  FREQHI3 
    &ubyte  FREQLO1 
    &ubyte  FREQLO2 
    &ubyte  FREQLO3 
    &ubyte  IREQMASK 
    &ubyte  LPENX 
    &ubyte  LPENY 
    &ubyte  MSIGX 
    &ubyte  MVOL 
    &ubyte  OSC3 
    &ubyte  POTX 
    &ubyte  POTY 
    &uword  PW1 
    &uword  PW2 
    &uword  PW3 
    &ubyte  PWHI1 
    &ubyte  PWHI2 
    &ubyte  PWHI3 
    &ubyte  PWLO1 
    &ubyte  PWLO2 
    &ubyte  PWLO3 
    &ubyte  RASTER 
    &ubyte  RESFILT 
    &ubyte  SCROLX 
    &ubyte  SCROLY 
    &ubyte  SP0COL 
    &ubyte  SP0X 
    &ubyte  SP0Y 
    &ubyte  SP1COL 
    &ubyte  SP1X 
    &ubyte  SP1Y 
    &ubyte  SP2COL 
    &ubyte  SP2X 
    &ubyte  SP2Y 
    &ubyte  SP3COL 
    &ubyte  SP3X 
    &ubyte  SP3Y 
    &ubyte  SP4COL 
    &ubyte  SP4X 
    &ubyte  SP4Y 
    &ubyte  SP5COL 
    &ubyte  SP5X 
    &ubyte  SP5Y 
    &ubyte  SP6COL 
    &ubyte  SP6X 
    &ubyte  SP6Y 
    &ubyte  SP7COL 
    &ubyte  SP7X 
    &ubyte  SP7Y 
    &ubyte  SPBGCL 
    &ubyte  SPBGPR 
    &ubyte[]  SPCOL 
    &ubyte  SPENA 
    &ubyte  SPMC 
    &ubyte  SPMC0 
    &ubyte  SPMC1 
    &ubyte[]  SPRPTR 
    &ubyte  SPRPTR0 
    &ubyte  SPRPTR1 
    &ubyte  SPRPTR2 
    &ubyte  SPRPTR3 
    &ubyte  SPRPTR4 
    &ubyte  SPRPTR5 
    &ubyte  SPRPTR6 
    &ubyte  SPRPTR7 
    &ubyte  SPSPCL 
    &ubyte[]  SPXY 
    &@nosplit uword[]  SPXYW 
    &ubyte  SR1 
    &ubyte  SR2 
    &ubyte  SR3 
    &ubyte  VICIRQ 
    &ubyte  VMCSB 
    &ubyte  XXPAND 
    &ubyte  YXPAND 
}

c128  {
    &ubyte  VM1 
    &ubyte  VM2 
    &ubyte  VM3 
    &ubyte  VM4 
    BOOT_CALL  (ubyte device @X, ubyte drive @A) -> clobbers (A,X,Y)  = $ff53
    C64_MODE  ()  = $ff4d
    CLOSE_ALL  (ubyte device @X) -> clobbers (X)  = $ff4a
    DLCHR  () -> clobbers (A,X,Y)  = $ff62
    DMA_CALL  (ubyte bank @X, ubyte command @Y) -> clobbers (A,X)  = $ff50
    GETCFG  (ubyte bank @X) -> ubyte @A  = $ff6b
    INDCMP  (ubyte value @A, ubyte bank @X, ubyte offset @Y) -> clobbers (X) -> bool @Pz, bool @Pc, bool @Pv  = $ff7a
    INDFET  (ubyte zpaddr @A, ubyte bank @X, ubyte offset @Y) -> clobbers (X) -> ubyte @A  = $ff74
    INDSTA  (ubyte value @A, ubyte bank @X, ubyte offset @Y) -> clobbers (X)  = $ff77
    JMPFAR  () -> clobbers (A,X)  = $ff71
    JSRFAR  () -> clobbers (A,X)  = $ff6e
    LKUPLA  (ubyte lfn @A) -> bool @Pc, ubyte @X  = $ff59
    LKUPSA  (ubyte sa @Y) -> bool @Pc, ubyte @A, ubyte @X  = $ff5c
    PFKEY  (ubyte zpaddr @A, ubyte key @X, ubyte length @Y)  = $ff65
    PHOENIX  () -> clobbers (A,X,Y)  = $ff56
    PRIMM  ()  = $ff7d
    SETBNK  (ubyte data_bank @A, ubyte filename_bank @X)  = $ff68
    SPIN_SPOUT  () -> clobbers (A)  = $ff47
    SWAPPER  () -> clobbers (A,X,Y)  = $ff5f
    banks  (ubyte banks @A) 
    disable_basic  () -> clobbers (A) 
    getbanks  () -> ubyte @A 
    x16jsrfar  () 
}

sys  {
    const byte  MAX_BYTE 
    const ubyte  MAX_UBYTE 
    const uword  MAX_UWORD 
    const word  MAX_WORD 
    const byte  MIN_BYTE 
    const ubyte  MIN_UBYTE 
    const uword  MIN_UWORD 
    const word  MIN_WORD 
    const ubyte  SIZEOF_BOOL 
    const ubyte  SIZEOF_BYTE 
    const ubyte  SIZEOF_FLOAT 
    const ubyte  SIZEOF_LONG 
    const ubyte  SIZEOF_UBYTE 
    const ubyte  SIZEOF_UWORD 
    const ubyte  SIZEOF_WORD 
    const ubyte  target 
    clear_carry  () 
    clear_irqd  () 
    disable_caseswitch  () 
    disable_runstop_and_charsetswitch  () 
    enable_caseswitch  () 
    enable_runstop_and_charsetswitch  () 
    exit  (ubyte returnvalue @A) 
    exit2  (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y) 
    exit3  (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y, bool carry @Pc) 
    get_as_returnaddress  (uword address @XY) -> uword @AX 
    internal_stringcopy  (uword source @R0, uword target @AY) -> clobbers (A,Y) 
    irqsafe_clear_irqd  () 
    irqsafe_set_irqd  () 
    memcmp  (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A 
    memcopy  (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y) 
    memset  (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y) 
    memsetw  (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y) 
    pop  () -> ubyte @A 
    popw  () -> uword @AY 
    progend  () -> uword @AY 
    progstart  () -> uword @AY 
    push  (ubyte value @A) 
    push_returnaddress  (uword address @XY) 
    pushw  (uword value @AY) 
    read_flags  () -> ubyte @A 
    reset_system  () 
    restore_irq  () -> clobbers (A) 
    restore_prog8_internals  () 
    save_prog8_internals  () 
    set_carry  () 
    set_irq  (uword handler @AY) -> clobbers (A) 
    set_irqd  () 
    set_rasterirq  (uword handler @AY, uword rasterpos @R0) -> clobbers (A) 
    wait  (uword jiffies @AY) 
    waitrastborder  () 
    waitvsync  () -> clobbers (A) 
}

cx16  {
    &uword  r0 
    &ubyte  r0H 
    &ubyte  r0L 
    &bool  r0bH 
    &bool  r0bL 
    &word  r0s 
    &byte  r0sH 
    &byte  r0sL 
    &uword  r1 
    &uword  r10 
    &ubyte  r10H 
    &ubyte  r10L 
    &bool  r10bH 
    &bool  r10bL 
    &word  r10s 
    &byte  r10sH 
    &byte  r10sL 
    &uword  r11 
    &ubyte  r11H 
    &ubyte  r11L 
    &bool  r11bH 
    &bool  r11bL 
    &word  r11s 
    &byte  r11sH 
    &byte  r11sL 
    &uword  r12 
    &ubyte  r12H 
    &ubyte  r12L 
    &bool  r12bH 
    &bool  r12bL 
    &word  r12s 
    &byte  r12sH 
    &byte  r12sL 
    &uword  r13 
    &ubyte  r13H 
    &ubyte  r13L 
    &bool  r13bH 
    &bool  r13bL 
    &word  r13s 
    &byte  r13sH 
    &byte  r13sL 
    &uword  r14 
    &ubyte  r14H 
    &ubyte  r14L 
    &bool  r14bH 
    &bool  r14bL 
    &word  r14s 
    &byte  r14sH 
    &byte  r14sL 
    &uword  r15 
    &ubyte  r15H 
    &ubyte  r15L 
    &bool  r15bH 
    &bool  r15bL 
    &word  r15s 
    &byte  r15sH 
    &byte  r15sL 
    &ubyte  r1H 
    &ubyte  r1L 
    &bool  r1bH 
    &bool  r1bL 
    &word  r1s 
    &byte  r1sH 
    &byte  r1sL 
    &uword  r2 
    &ubyte  r2H 
    &ubyte  r2L 
    &bool  r2bH 
    &bool  r2bL 
    &word  r2s 
    &byte  r2sH 
    &byte  r2sL 
    &uword  r3 
    &ubyte  r3H 
    &ubyte  r3L 
    &bool  r3bH 
    &bool  r3bL 
    &word  r3s 
    &byte  r3sH 
    &byte  r3sL 
    &uword  r4 
    &ubyte  r4H 
    &ubyte  r4L 
    &bool  r4bH 
    &bool  r4bL 
    &word  r4s 
    &byte  r4sH 
    &byte  r4sL 
    &uword  r5 
    &ubyte  r5H 
    &ubyte  r5L 
    &bool  r5bH 
    &bool  r5bL 
    &word  r5s 
    &byte  r5sH 
    &byte  r5sL 
    &uword  r6 
    &ubyte  r6H 
    &ubyte  r6L 
    &bool  r6bH 
    &bool  r6bL 
    &word  r6s 
    &byte  r6sH 
    &byte  r6sL 
    &uword  r7 
    &ubyte  r7H 
    &ubyte  r7L 
    &bool  r7bH 
    &bool  r7bL 
    &word  r7s 
    &byte  r7sH 
    &byte  r7sL 
    &uword  r8 
    &ubyte  r8H 
    &ubyte  r8L 
    &bool  r8bH 
    &bool  r8bL 
    &word  r8s 
    &byte  r8sH 
    &byte  r8sL 
    &uword  r9 
    &ubyte  r9H 
    &ubyte  r9L 
    &bool  r9bH 
    &bool  r9bL 
    &word  r9s 
    &byte  r9sH 
    &byte  r9sL 
    cpu_is_65816  () -> bool 
    restore_virtual_registers  () -> clobbers (A,Y) 
    save_virtual_registers  () -> clobbers (A,Y) 
}

p8_sys_startup  {
    cleanup_at_exit  () 
    disable_runstop_and_charsetswitch  () -> clobbers (A) 
    enable_runstop_and_charsetswitch  () -> clobbers (A) 
    init_system  () 
    init_system_phase2  () 
}


LIBRARY MODULE NAME: test_stack
-------------------------------

test_stack  {
    test  () 
}


LIBRARY MODULE NAME: textio
---------------------------

txt  {
    const ubyte  DEFAULT_HEIGHT 
    const ubyte  DEFAULT_WIDTH 
    bell  () 
    chrout  (ubyte character @A)  = $ffd2
    clear_screen  () 
    clear_screenchars  (ubyte char @A) -> clobbers (Y) 
    clear_screencolors  (ubyte color @A) -> clobbers (Y) 
    cls  () 
    color  (ubyte txtcol) 
    column  (ubyte col @A) -> clobbers (A,X,Y) 
    fill_screen  (ubyte char @A, ubyte color @Y) -> clobbers (A) 
    get_column  () -> ubyte @Y 
    get_cursor  () -> ubyte @X, ubyte @Y 
    get_row  () -> ubyte @X 
    getchr  (ubyte col @A, ubyte row @Y) -> clobbers (Y) -> ubyte @A 
    getclr  (ubyte col @A, ubyte row @Y) -> clobbers (Y) -> ubyte @A 
    height  () -> clobbers (X,Y) -> ubyte @A 
    home  () 
    input_chars  (uword buffer @AY) -> clobbers (A) -> ubyte @Y 
    lowercase  () 
    nl  () 
    petscii2scr  (ubyte petscii_char @A) -> ubyte @A 
    petscii2scr_str  (str petscii_string @AY) 
    plot  (ubyte col @Y, ubyte row @X) 
    print  (str text @AY) -> clobbers (A,Y) 
    print_b  (byte value @A) -> clobbers (A,X,Y) 
    print_bool  (bool value) 
    print_ub  (ubyte value @A) -> clobbers (A,X,Y) 
    print_ub0  (ubyte value @A) -> clobbers (A,X,Y) 
    print_ubbin  (ubyte value @A, bool prefix @Pc) -> clobbers (A,X,Y) 
    print_ubhex  (ubyte value @A, bool prefix @Pc) -> clobbers (A,X,Y) 
    print_uw  (uword value @AY) -> clobbers (A,X,Y) 
    print_uw0  (uword value @AY) -> clobbers (A,X,Y) 
    print_uwbin  (uword value @AY, bool prefix @Pc) -> clobbers (A,X,Y) 
    print_uwhex  (uword value @AY, bool prefix @Pc) -> clobbers (A,X,Y) 
    print_w  (word value @AY) -> clobbers (A,X,Y) 
    row  (ubyte rownum @A) -> clobbers (A,X,Y) 
    scroll_down  (bool alsocolors @Pc) -> clobbers (A,X) 
    scroll_left  (bool alsocolors @Pc) -> clobbers (A,X,Y) 
    scroll_right  (bool alsocolors @Pc) -> clobbers (A,X) 
    scroll_up  (bool alsocolors @Pc) -> clobbers (A,X) 
    setcc  (ubyte col, ubyte row, ubyte character, ubyte charcolor) 
    setchr  (ubyte col @X, ubyte row @Y, ubyte character @A) -> clobbers (A,Y) 
    setclr  (ubyte col @X, ubyte row @Y, ubyte color @A) -> clobbers (A,Y) 
    spc  () 
    uppercase  () 
    waitkey  () -> ubyte @A 
    width  () -> clobbers (X,Y) -> ubyte @A 
}


