WikiPendium :: RecentChanges :: RecentlyCommented :: UserSettings :: You are


(Graphics Device Operating System)

The Graphics Device Operating System (GDOS) is a disk-based component of the operating system which allows disk-loadable device drivers and additional fonts to be accessible through standard VDI calls.

Several versions of Atari GDOS have been released in addition to several third-party GDOS 'clones'. All of these forms have stayed backward-compatible with GDOS 1.0, however it is recommended that programs be written to support newer GDOS calls when it can be determined that a more recent release of GDOS is present.

Each VDI call documented in the VdiFunctionReference? specifies if GDOS is required, and if so, what type.

Determining the Version of GDOS Present

A non-standard VDI call is available to check for the presence of GDOS. The following machine-code subroutine will return a LONG value in d0 which can be used to determine the variety of GDOS present. Beware of older bindings which looked only for the original GDOS and returned a 1 or 0 as a result.

	move.l	#-2,d0
	trap	#2


The LONG value returned in d0 can be interpreted as follows:

Name Value Meaning
GDOS_NONE -2 No GDOS is installed.
- Any other value. Original GDOS 1.x is installed.
GDOS_FNT 0x5F464E54 ('_FNT') FONTGDOS? is installed.
GDOS_FSM 0x5F46534D ('_FSM') FSMGDOS? or SpeedoGDOS? is installed.

For information on determining the specific variety of outline GDOS available, see the description of the FSMC_Cookie?.

FSMGDOS? vs. SpeedoGDOS?

Since FSMGDOS? (a QMS/Imagen outline font-based GDOS) was never officially released from Atari (though shipped in limited quantity with third-party products), some changes have been made to calls in SpeedoGDOS? that were never exploited by developers. For that reason, these calls will only be documented in the Speedo-compatible way in the VDI Function Reference. This does mean, however, that use of these calls will cause your application to fail under the original FSMGDOS?.

The calls which were affected are v_getoutline()?, v_getbitmap_info()?, v_killoutline()?, and vqt_get_table()?. In addition, use of the new SpeedoGDOS? calls vst_charmap()?, vqt_trackkern()?, vqt_pairkern()?, vqt_fontheader()?, vst_kern()?, or any of the older calls when used with the fix31? data type will fail with the older FSMGDOS?.

To determine the type of outline-font GDOS installed, look for the FSMC_Cookie?. The cookie value is a pointer to a LONG value which contains the character string '_FSM' for Imagen-based FSMGDOS? or '_SPD' for Speedo-based FSMGDOS?.
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]