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