2 ; Christian Groessler, June 2004
4 ; this file provides an equivalent to the BASIC GRAPHICS function
6 ; int __fastcall__ _graphics(unsigned char mode);
13 .import __do_oserror,__oserror
19 .importzp tmp1,tmp2,tmp3
26 ; set new grapics mode
28 ; returns handle or -1 on error
29 ; uses tmp1, tmp2, tmp3, tmp4 (in subroutines)
34 ; and #15 ; get required graphics mode
36 ; bcs invmode ; invalid mode
38 ; and #$c0 ; invalid bits set?
42 sta tmp1 ; remember graphics mode
44 parmok: jsr findfreeiocb
45 beq iocbok ; we found one
47 lda #<EMFILE ; "too many open files"
48 seterr: jsr __mappederrno ; @@@ probably not correct to set errno here @@@
56 tay ; move iocb # into Y
58 sta tmp3 ; name length + 1
64 bcs doopen ; C set: open needed
67 lda tmp2 ; get fd used
83 lda tmp1 ; get requested graphics mode
100 cioerr: jsr fddecusage ; decrement usage counter of fd as open failed
103 .endproc ; __graphics