1; ===============================================================
2; 2018
3; ===============================================================
4;
5; unsigned char check_version_nextzxos(uint16_t nv)
6;
7; ===============================================================
8
9INCLUDE "config_private.inc"
10
11SECTION code_arch
12
13PUBLIC asm_check_version_nextzxos
14
15EXTERN error_znc, error_mc
16
17asm_check_version_nextzxos:
18
19   ; check if nextzxos version >= nv
20   ;
21   ; enter : hl = uint16_t cv
22   ;            = MMmm (major, minor) in bcd
23   ;              v 1.94 would be 0x0194
24   ;
25   ; exit  : success if minimum nextzxos version met
26   ;
27   ;            hl = 0, carry reset
28   ;
29   ;         fail if minimum nextzxos version not met
30   ;
31   ;            hl = -1, carry set
32   ;
33   ; uses  : af, bc, de, hl
34
35   push hl
36
37   rst __ESX_RST_SYS
38   defb __ESX_M_DOSVERSION
39
40   pop hl                      ; hl = cv
41
42   jp c, error_mc              ; if nextzxos not present
43
44   or a
45   jp nz, error_mc             ; if nextzxos is in 48k mode
46
47   ex de,hl
48   sbc hl,de
49
50   jp c, error_mc              ; if nextzxos version < minimum
51   jp error_znc                ; pass
52