Ready.


"Heaveno, World!" with 8086 machine code

Here, we have an example of form@fix directly talking in the machine code/language, with a computer.

\\To craft a .com file   \F "fixDC.htm"

First, a few goodies, for our convenience. We can construct these on the ARZ, the work-area. We must locate at after the range that will contain the written-output code. Since the final application is less than 100 bytes, for this example, to locate our goodies starting at byte-offset 0x300, is more than enough. An alternative was to frame-in the file fix8086.htm - with a lot of mnemonics listed.

\\Arrive at offset 0x300, on the ARZ
   \r! z  \a 300

\\ A few i8086 assembly mnemonics ...
\r int21h              \*=   2 0xcd 0x21
\r AH=b                \*=   1 0xb4
\r eBX=i               \*=   1 0xbb
\r eCX=i               \*=   1 0xb9
\r eDX=i               \*=   1 0xba
\r StdOut              \*=.  1  
\r length(HeavenoStr)  \*=.  17

\a z	\\return to where we were.
\\The array/string must exist in file.
\\We define it here.
\r azHeaveno           \'Heaveno, World!\r\n'

//The size of azHeaveno was defined with
//  the goodies. No problem. That pointer
//  is not needed at run-time.
//We could also write "\*=. 17" instead
//  of writing "\@ length(HeavenoStr)"

\\Start running here.  \F@ fixStArt

\\Write azHeaveno to stdout
\\  through DOS-int21h (AH=0x40)
\_      AH=b      \*= 0x40
\_      eBX=i     \@ StdOut
\_      eCX=i     \@ length(HeavenoStr)
\_      eDX=i     \* azHeaveno
\_      int21h

\\Quit to DOS through DOS-int21h(AH=0x4c).
\_      AH=b      \*= 0x4c
\_      int21h    


\\Write the file            \F== heaveno.com

\\Exit the form@fix session \A--

Make sure that the include file "fixDC.htm" is in the path, for form@fix to find that. You may simply save this file on disk, to run form@fix with it.

A point you may notice, is that I gave a long name to this file. If you save this file on disk with a short name (at most eight letters), that would be fine. This may be needed, because the form@fix version you are using may have that limitation of MS-DOS, but the platform you are using may not.

Or, you may save it with a "fix" extension, and associate all fix-extension files with the fix.exe. Then, you may launch it from the Windows shell (or, on other such platforms) by double-clicking on it.




Any Questions?: . . (Request for Content . . . . . Report Errors . . . . . Submit Case Study . . . . . Report Content Similarity.)

RevisioNo: 0_2
Last-Revised (text) on June 27, 2005
Written by: Ahmed Ferzen/Ferzan R Midyat-Zilan (or, Earth)
Copyright (c) [2002,] 2003, 2004, 2005 Ferzan Midyat. All rights reserved.
form@fix, GFS, and aFiRMz are trademarks of Ferzan Midyat.