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 .import CKOUT, READST, BSOUT, CLRCH
35 .importzp ptr1, ptr2, ptr3
42 stx ptr3+1 ; Save size
47 sta ptr1+1 ; Save -size-1
51 stx ptr2+1 ; Save buffer
56 bcs @E2 ; Branch on error
57 bcc @L3 ; Branch always
69 inc ptr2+1 ; A = *buffer++;
71 @L2: jsr BSOUT ; cbm_k_bsout (A);
73 @L3: inc ptr1 ; --size;
81 ldx ptr3+1 ; return size;
85 ; Error entry, called when READST fails
89 ; Error entry, error code is in A