2 ; Ullrich von Bassewitz, 15.11.2002
4 ; Original C code by Marc 'BlackJack' Rintsch, 25.03.2001
6 ; int __fastcall__ cbm_write(unsigned char lfn, void* buffer, unsigned int size)
9 ; static unsigned int byteswritten;
11 ; /* if we can't change to the outputchannel #lfn then return an error */
12 ; if (_oserror = cbm_k_ckout(lfn)) return -1;
16 ; while (byteswritten<size && !cbm_k_readst()) {
17 ; cbm_k_bsout(((unsigned char*)buffer)[byteswritten++]);
20 ; if (cbm_k_readst()) {
21 ; _oserror = 5; /* device not present */
27 ; return byteswritten;
34 .importzp ptr1, ptr2, ptr3
41 stx ptr3+1 ; Save size
46 sta ptr1+1 ; Save -size-1
50 stx ptr2+1 ; Save buffer
55 bcs @E2 ; Branch on error
56 bcc @L3 ; Branch always
68 inc ptr2+1 ; A = *buffer++;
70 @L2: jsr BSOUT ; cbm_k_bsout (A);
72 @L3: inc ptr1 ; --size;
80 ldx ptr3+1 ; return size;
84 ; Error entry, called when READST fails
88 ; Error entry, error code is in A