1 2 MODULE generic_console_ioctl 3 PUBLIC generic_console_ioctl 4 5 SECTION code_clib 6 INCLUDE "ioctl.def" 7 8 EXTERN generic_console_font32 9 EXTERN generic_console_udg32 10 EXTERN __cpc_mode 11 EXTERN __console_w 12 EXTERN cpc_setmode 13 EXTERN cpc_set_ansi_palette 14 EXTERN generic_console_cls 15 16 PUBLIC CLIB_GENCON_CAPS 17 defc CLIB_GENCON_CAPS = CAP_GENCON_FG_COLOUR | CAP_GENCON_BG_COLOUR | CAP_GENCON_INVERSE | CAP_GENCON_CUSTOM_FONT | CAP_GENCON_UDGS 18 19 20; a = ioctl 21; de = arg 22generic_console_ioctl: 23 ex de,hl 24 ld c,(hl) ;bc = where we point to 25 inc hl 26 ld b,(hl) 27 cp IOCTL_GENCON_SET_FONT32 28 jr nz,check_set_udg 29 ld (generic_console_font32),bc 30success: 31 and a 32 ret 33check_set_udg: 34 cp IOCTL_GENCON_SET_UDGS 35 jr nz,check_mode 36 ld (generic_console_udg32),bc 37 jr success 38check_mode: 39 cp IOCTL_GENCON_SET_MODE 40 jr nz,failure 41 ld a,c 42 and a 43 ld h,20 44 jr z,set_mode 45 cp 1 46 ld h,40 47 jr z,set_mode 48 cp 2 49 ld h,80 50 jr nz,failure 51set_mode: 52 ld (__cpc_mode),a 53 ld l,a 54 ld a,h 55 ld (__console_w),a 56 ld a,l 57 call cpc_setmode 58 call cpc_set_ansi_palette 59 call generic_console_cls 60 jr success 61failure: 62 scf 63 ret 64