1 ; ****************************************************************************
5 ; A COMBOOT/DOS COM program to display the version of the system
6 ; (Syslinux, DOS, or DRMK)
8 ; Copyright (C) 2009-2010 Gene Cumm
10 ; This program is free software; you can redistribute it and/or modify
11 ; it under the terms of the GNU General Public License as published by
12 ; the Free Software Foundation, Inc., 53 Temple Place Ste 330,
13 ; Boston MA 02111-1307, USA; either version 2 of the License, or
14 ; (at your option) any later version; incorporated herein by reference.
16 ; ****************************************************************************
60 ; AX=0001h [2.00] Get Version
63 ; Output: AX number of INT 22h API functions available
64 ; CH Syslinux major version number
65 ; CL Syslinux minor version number
66 ; DL Syslinux derivative ID (e.g. 32h = PXELINUX)
67 ; ES:SI Syslinux version string
68 ; ES:DI Syslinux copyright string
150 ; chkprn_dosver Check and print DOS version;
151 ; Input Data from INT21 AH=30h
152 ; AH Major version of DOS or 0
155 ; BL:CX 24-bit OEM serial number
157 ; ZF Unset if DOS, Set if not DOS (AX=0)
223 ; jmp .end_ver ; DRMK returns Extended/True DOS
233 ; prn_dosver_num Print the numerical DOS version
234 ; Input Data from INT21 AH=30h
235 ; AH Major version of DOS or 0
238 ; BL:CX 24-bit OEM serial number
279 ; getdosver Get the DOS version
280 ; Return Version or 0 + SYSLINUX message
293 ; getmsdosver Get the Extended MS-DOS version
327 ; getdrmkver: Get the DRMK-specifc OS version
336 ; getdrmkver: Get the DRMK-specifc Kernel build info
337 ; Returns Kernel build info
338 ; AX Kernel build date in DOS 16-bit format
339 ; [ES:BX] Kernel private data
345 ; getprn_drmkver: Get/Print DRMK-specific Version info
351 .
prnosver: ; "OS Version"
359 .
prnpatchver: ; "Patch Version"
369 .
prnkernbld: ; "Kernel Build Date"
420 ;writedate_ax Write a date in AX in ISO8601 big endian format
422 ; AX Date in 16-bit DOS format
471 ; writechr_dl Write a character to the console saving AX
473 ; DL character to write
482 ; writechr_al Write a character to the console saving AX
484 ; AL character to write
493 ; writedecb[23] Print byte as fixed width
518 ; prnreg_gp_l Dump GP registers (Long)
567 %include "../core/macros.inc" ; CR/LF
568 %include "../core/writestr.inc" ; String output
569 %include "../core/writehex.inc" ; Hexadecimal output
570 %include "../core/writedec.inc" ; Decimal output
573 info_str
db 'Ver.com b026', CR
, LF
, 0
574 is_dos_str
db 'Found DOS', CR
, LF
, 0
575 is_sysl_str
db 'Found a Syslinux variant', CR
, LF
, 0
576 is_drmk_str
db 'Found DRMK', CR
, LF
, 0
577 may_sysl_str
db 'Maybe Syslinux variant', CR
, LF
, 0
578 gotver_str
db 'Got the version back', CR
, LF
, 0
579 prn_ver_str
db 'Printing version number', CR
, LF
, 0
580 syslban_str
db 'Syslinux banner: ',0
585 linsp_str
db 'LINUX ', 0
586 unkvar_str
db 'Unkown-Variant ', 0
587 pcdos_str
db 'PC-DOS ', 0
588 msdos_str
db 'MS-DOS ', 0
589 freedos_str
db 'FreeDOS ', 0
590 unkdos_str
db 'Unknown-DOS ', 0
591 drmk_str
db 'DRMK ', 0
592 dosext_str
db ' Extended DOS version: ', 0
593 osver_str
db ' OS Version: ', 0
594 patchver_str
db ' Patch Version: ', 0
595 kernbld_str
db ' Kernel Build Date: ', 0
596 prvdat_str
db ' Private Data Ptr: ', 0
597 spparen_str
db ' (', 0
599 parensp_str
db ') ', 0
605 zero_not_str
db ' NOT_Zero ',0
606 zero_is_str
db ' IS_Zero ',0