wok-next annotate runcom/description.txt @ rev 21403
updated php again (7.4.4 -> 7.4.5)
author | Hans-G?nter Theisgen |
---|---|
date | Tue Apr 21 10:28:30 2020 +0100 (2020-04-21) |
parents | f32d3ba00836 |
children |
rev | line source |
---|---|
al@21059 | 1 Runcom support DOS `.com` binary files and boot sector files. |
pascal@11674 | 2 |
al@21059 | 3 ### 1. The DOS `.com` support |
pascal@11674 | 4 |
al@21059 | 5 Runcom provides few BIOS and DOS (int 21H) interrupt handlers. Many `.com` |
al@21059 | 6 files may not work. DOS `.exe` are also supported. |
pascal@11674 | 7 |
al@21059 | 8 You can test it with the file `/usr/bin/debug.com`, with the command line: |
pascal@11674 | 9 |
al@21059 | 10 $ debug.com |
pascal@11674 | 11 |
al@21059 | 12 ### 2. The boot sector image support |
al@21059 | 13 |
al@21059 | 14 A boot sector image is a 512 bytes file ending with the **0xAA** and **0x55** |
al@21059 | 15 bytes with the `.bin` extension. |
al@21059 | 16 |
al@21059 | 17 BIOS disk (int 13H) are emulated (CHS or LBA) with an image file: |
al@21059 | 18 |
al@21059 | 19 - hard disk are image ./hd0, ./hd1, ... for disk 0x80, 0x81... |
al@21059 | 20 - floppy disk are image ./fd0, ./fd1 ... or /dev/fd0, /dev/fd1 if not found. |
al@21059 | 21 |
al@21059 | 22 You can test it with the file `/usr/bin/debug.bin`, with the command line: |
al@21059 | 23 |
al@21059 | 24 $ debug.bin |
al@21059 | 25 |
al@21059 | 26 ### 3. The 512 bytes boot sector debugger `/usr/bin/debug.bin` |
pascal@11674 | 27 |
pascal@11674 | 28 Usage: |
pascal@11674 | 29 |
al@21059 | 30 f DX:CX load one CHS sector to 0000:7C00 |
al@21059 | 31 t trace one step |
al@21059 | 32 g <address> go to adrs |
al@21059 | 33 d <address> display 16 bytes, CR for next 16 bytes... |
al@21059 | 34 e <address> <words>... enter memory byte/word/dword |
al@21059 | 35 m <segment> self move |
al@21059 | 36 + <segment> default segment offset |
pascal@11674 | 37 |
al@21059 | 38 `seqment` and `offset` are hexadecimal values in `0000..FFFF` range |
al@21059 | 39 |
al@21059 | 40 `address` is linear hexadecimal value in `00000..FFFFF` range or |
al@21059 | 41 `seqment:offset` words are bytes in `00..FF` range or words in `0000..FFFF` |
al@21059 | 42 range or double words |
al@21059 | 43 |
al@21059 | 44 `CX` and `DX` are used by `INT13H/AL=01` BIOS interrupt. |
pascal@11674 | 45 |
pascal@11674 | 46 Example: |
al@21059 | 47 |
al@21059 | 48 m 0FC0 move debugger to 0FC0:0000 0FC0:01FF |
al@21059 | 49 f 1 read floppy boot sector to 0000:7C00 |
al@21059 | 50 f 80:1 read hard disk master boot sector to 0000:7C00 |
al@21059 | 51 g 7C0E ... |