EDR-DOS development (Announce)
You didn't reply about the int 71h function error codes. Apart from the compression support and the colour signature removal, this is the only patch of yours I didn't add to my repo yet.
> In fix-bio.asm I add a small procedure at the end of dosbio.sys.
> In the virtual block, I set a new jump instruction for this procedure and
> then copy the previous compressed jump instruction to drbio.sys (4 bytes)
> to be able to recreate it and run the unpacking procedure to the address
> CS-10h:IP+100h
Yes, I do think 3 bytes would suffice though. A near jump instruction is 3 bytes.
> The "file" directive works exactly like the "incbin" in nasm, but you can
> also specify the start and size of the loaded file block.
Actually, NASM's incbin does have that too: https://www.nasm.us/xdoc/2.16.01/html/nasmdoc3.html#section-3.2.3 It might be a little known feature however, as I didn't know about it when I originally wrote my bootimg FATFS format script.
Unlike this, NASM really does not have fasm's load and store directives. Those are more powerful, even though 3 of your fix files' uses of them can be replaced by using incbin with various parameters. (The replacement of the last byte of the compressed drdos.com by a pop ax
can only be done with incbin by knowing the size of the file beforehand. NASM has no way of detecting the size without including the file data up to and including the last byte.)
Writing of which, how does the far address of the DOS kernel file end up on the stack so that by modifying the last byte of the compressed drdos.com to a pop ax
and retf
you have it branch where you want?
Oh, I just noticed that your DOS compression is exactly copied from pack101. Except that shipped with upx 1.25d. I was about to write, I would implement this with an lDebug script. (The pack100/pack101 debug scripts do work with lDebug, though I assume they were written for DR-DOS Debug.)
I found out how the address gets on the stack: https://hg.pushbx.org/ecm/edrdos/rev/c2e9bc4c642b#l27.50
> The memory at address 4F0h (16-bytes) is for the user and I took advantage
> of that.
Oh, yes, you're correct. The interrupt list calls it "intra-application communication area": http://fd.lod.bz/rbil/memory/other/m004000f0.html
I didn't know that and assumed it may be used by the ROM-BIOS.
> The first 8 bytes of compressed drdos.com should be:
>
> CMP SP,constant
> JA Above
> INT 20h
> Above:
>
> "vasm" is my replacement for "fasm" run by the D3X dos extender.
Is there a need for that here? Why did you use one once and the other once, rather than twice the same?
> I use aPACK v1.0 and UPX v3.96.
Thanks!
---
l
Complete thread:
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 21.07.2023, 15:40 (Announce)
- New version DRDOS 7.01.7 & 7.01.8 - glennmcc, 21.07.2023, 20:13
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 21.07.2023, 20:27
- New version DRDOS 7.01.7 & 7.01.8 - fritz.mueller, 21.07.2023, 20:29
- New version DRDOS 7.01.7 & 7.01.8 - glennmcc, 21.07.2023, 20:34
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 21.07.2023, 22:18
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 21.07.2023, 22:45
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 22.07.2023, 09:40
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 22.07.2023, 23:06
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 22.07.2023, 09:40
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 21.07.2023, 22:45
- New version DRDOS 7.01.7 & 7.01.8 - fritz.mueller, 21.07.2023, 20:29
- New version DRDOS 7.01.7 & 7.01.8 - Guti, 24.07.2023, 11:08
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 25.07.2023, 15:04
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 26.07.2023, 15:19
- New version DRDOS 7.01.7 & 7.01.8 - Guti, 30.07.2023, 11:12
- New version DRDOS 7.01.7 & 7.01.8 - nico7550, 26.07.2023, 15:19
- New version DRDOS 7.01.7 & 7.01.8 - DieTotenByte, 30.07.2023, 01:09
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 30.07.2023, 10:55
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 03.08.2023, 21:46
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 10.08.2023, 11:09
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 10.08.2023, 15:52
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 10.08.2023, 19:21
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 11.08.2023, 10:47
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 12.08.2023, 21:13
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 11:16
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 13:59
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 14:39
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 19:23
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 21:41
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 22:41
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 23:18
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 23:51
- EDR-DOS development - ecm, 14.08.2023, 07:18
- EDR-DOS development - CandyMan, 14.08.2023, 09:43
- EDR-DOS development - ecm, 15.08.2023, 20:49
- EDR-DOS development - ecm, 15.08.2023, 20:51
- EDR-DOS development - ecm, 19.08.2023, 19:56
- EDR-DOS development - ecm, 15.08.2023, 20:49
- EDR-DOS development - CandyMan, 14.08.2023, 14:35
- EDR-DOS development - bretjohn, 14.08.2023, 21:12
- EDR-DOS development - CandyMan, 15.08.2023, 11:49
- EDR-DOS development - bretjohn, 14.08.2023, 21:12
- EDR-DOS development - CandyMan, 14.08.2023, 09:43
- EDR-DOS development - ecm, 15.08.2023, 20:46
- EDR-DOS development - CandyMan, 15.08.2023, 22:29
- EDR-DOS development - ecm, 16.08.2023, 10:06
- EDR-DOS development - CandyMan, 16.08.2023, 12:54
- EDR-DOS development - ecm, 16.08.2023, 18:19
- EDR-DOS development - CandyMan, 16.08.2023, 18:55
- EDR-DOS development - ecm, 16.08.2023, 18:19
- EDR-DOS development - CandyMan, 16.08.2023, 12:54
- EDR-DOS development - ecm, 16.08.2023, 10:06
- EDR-DOS development - CandyMan, 15.08.2023, 22:29
- EDR-DOS development - ecm, 20.08.2023, 01:35
- EDR-DOS development - CandyMan, 21.08.2023, 00:27
- EDR-DOS development - ecm, 21.08.2023, 22:54
- EDR-DOS development - ecm, 29.08.2023, 17:49
- EDR-DOS development - ecm, 29.08.2023, 18:26
- EDR-DOS development - ecm, 29.08.2023, 18:32
- EDR-DOS development - ecm, 29.08.2023, 18:49
- EDR-DOS development - ecm, 29.08.2023, 18:32
- EDR-DOS development - Rugxulo, 29.08.2023, 23:28
- EDR-DOS development - ecm, 30.08.2023, 09:47
- EDR-DOS development - ecm, 29.08.2023, 18:26
- EDR-DOS development - roytam, 29.12.2023, 15:33
- EDR-DOS development - CandyMan, 21.08.2023, 00:27
- EDR-DOS development - ecm, 14.08.2023, 07:18
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 23:51
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 23:18
- EDR-DOS repository - Ro2003, 10.10.2023, 16:24
- EDR-DOS repository - ecm, 12.10.2023, 19:04
- EDR-DOS repository - Ro2003, 13.10.2023, 08:23
- EDR-DOS repository - nico7550, 13.10.2023, 15:53
- EDR-DOS repository - Single-file kernel load - ecm, 13.10.2023, 18:16
- EDR-DOS repository - Single-file kernel load - ecm, 13.10.2023, 18:23
- EDR-DOS repository - Ro2003, 13.10.2023, 08:23
- EDR-DOS repository - ecm, 12.10.2023, 19:04
- EDR-DOS version number - Ro2003, 10.10.2023, 16:32
- EDR-DOS version number - ecm, 12.10.2023, 19:08
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 22:41
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 21:41
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 13.08.2023, 13:59
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - CandyMan, 13.08.2023, 11:16
- EDR-DOS bugs on int 21h functions 7142h and 71A6h - ecm, 12.08.2023, 21:13
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 10.08.2023, 15:52
- New version DRDOS 7.01.7 & 7.01.8 - glennmcc, 13.08.2023, 22:19
- What ever happened to Udo ? - glennmcc, 29.08.2023, 23:04
- New version DRDOS 7.01.7 & 7.01.8 - Ro2003, 10.10.2023, 16:10
- New version DRDOS 7.01.7 & 7.01.8 - glennmcc, 10.10.2023, 21:35
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 12.12.2023, 17:04
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 12.12.2023, 18:47
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 12.12.2023, 21:15
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 12.12.2023, 21:27
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 13.12.2023, 16:58
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 14.12.2023, 18:00
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 14.12.2023, 20:58
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 16.12.2023, 21:52
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 30.12.2023, 14:27
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 01.01.2024, 13:57
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 30.12.2023, 14:27
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 16.12.2023, 21:52
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 14.12.2023, 20:58
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 14.12.2023, 18:00
- New version DRDOS 7.01.7 & 7.01.8 - CandyMan, 13.12.2023, 16:58
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 12.12.2023, 21:27
- New version DRDOS 7.01.7 & 7.01.8 - boeckmann, 12.12.2023, 21:15
- New version DRDOS 7.01.7 & 7.01.8 - ecm, 12.12.2023, 18:47