************************************** * Copyright (C) 1991, Dima Stefankov * * But available for free reproduce * ************************************** ******************** PREFIX DESCRIPTION NOTATION **************** NOTE: Produced by Dima Stefankov, 09.17.91 - 10.25.91 I hearfelt thank V.V.Begtin for an advanced discussion about the structured style of computer programming and also for his great support over the years. Basic idea: Names of variables, functions, labels, etc. may be prefaced by short description of the nature of these objects. 1. Main rule to build the prefaced name: [Moderator][DataTypeDesc][Moderator]Name General note: the lowercase letters may be mixed with the uppercase letters to produce the more readable text. mnemonics data type ------------ ------------------------------- bt bit b boolean ch char db byte (unsigned char) dw word (unsigned int) dd double word (unsigned long) i integer r real s string sz string terminated by NULL (0) Examples: iLineCount --- variable of integer type szArgument --- string terminated with \0 (C language) chUserCmd --- variable of char type bFileOK --- boolean variable 2. The following moderators are used to define a corresponding data type: mnemonics data type moderator ------------- ------------------------- u unsigned sh short l long n near g global declaration a absolute value (constant), immediate value Examples: liBytesInFile ---- variable of long integer type uchTerminator ---- variable of unsigned char type (or byte type) gdbTestResult ---- global variable of byte type achESCAPE ---- constant of char type aConstant ---- just a constant 3. Basic data types for some popular computer languages with the suggested mnemonics: ASM C PASCAL --------------------- ------------------------ ----------------------- char ch char ch char ch byte db unsigned char uch,db byte db unsigned short ushi,db shortint shi integer word dw unsigned integer ui,dw word dw double word dd long int li longint li real r float r real r integer i integer i unsigned long int uli boolean b short int shi string s Examples: C language liCharCount --- char count var of longint dwFileHandle --- handle of file (word type) Pascal language rTempValue --- real type value sUserInput --- get user string input ASM language chUserInKey --- user input key of char type (i.e. to byte type) ddUserFileSize --- file size of double word type 4. The following moderators are used to construct a advanced data type with 'pointer': mnemonics pointer type ---------------- ---------------------------------- p pointer np near(short) pointer lp long(far) pointer Examples: pdbCharCount ---- pointer to var of byte type lpszWarnMessage ---- long pointer to null-terminated string 5. The following moderators are used to construct the code functions: mnemonics meaning ---------------- ---------------------------------- _fn function _ procedure @ label mac@ macro Examples: _TestInput --- procedure _fndbGetChar --- function, return value of byte type _fndwSetMask --- function, return word value _fnGetChar --- function, but value type at return not specified mac@DosOp --- macro definition or macro call @Exit --- code label dw@MemSize --- data label of word type 6. The following moderators are used to construct a some special data structures (they may be used without the data type definition, and they may be useful for PC programmers): mnemonics meaning ---------------- ---------------------------------- h handle (usually word) m message (usually word) w window (usually word) f file (type depends on language) x,y,z coordinates X,Y,Z (word or integer) err error code (usually byte) cmd interface command (usually byte) reg register (usually byte) io input/output (usually byte) op offset of address (pointer) sp segment of address (pointer) Examples: hInFile --- file handle of word type fINPUT --- file structure INPUT mUserAsk --- message UserAsk (messages are often used in object-oriented OS) hdbUSER --- 8-bit user window handle errDisketteNotDrive --- return error code for disk handler errdbDisketteNotDrive --- same as above only with the data type description cmddbTestDrive, --- equivalent forms to send a command cmdTestDrive to disk controller regCMOS_A_status, --- status register A in CMOS memory regdbCMOS_A_STAT of byte size opUserInput --- offset of variable ********** compiled by Dima Stefankov, 07/23/91, original version ********