flat assembler
Message board for the users of flat assembler.
Index
> DOS > Newbie : DOS program from a book wont run Goto page Previous 1, 2, 3, 4, 5, 6 Next |
Author |
|
radarblue 06 Nov 2016, 22:35
oh lord. tried out DOS today. It cant be true but this is what I experienced. each time I write DIR, and a list of folders came up, I enter the folder D:CD\FOLDER1\ . then I make another DIR to see the content . I coudnt enter another folder once inside. I had to CD.. back out of the folder, all the way back to the disk initial D: . Then write the entire path in one line to make it to the .EXE in the end. The DOS coudnt enter a folder one after another or in succession. Both in DOSbox and in DOSprompt. amazing
|
|||
06 Nov 2016, 22:35 |
|
neville 06 Nov 2016, 23:56
You might have a bit of a learning curve for DOS too.
Your problem is caused by the backslash immediately following the CD command. This resets the path back to the root directory each time. If you have D:\FOLDER1\FOLDER2 you can access FOLDER2 by: CD \FOLDER1 then CD FOLDER2 (note NO backslash) OR: CD \FOLDER1\FOLDER2 If you do CD \FOLDER2 DOS will look for FOLDER2 in the root directory which of course doesn't exist because it's in the FOLDER1 directory. Maybe find yourself a good DOS reference book... _________________ FAMOS - the first memory operating system |
|||
06 Nov 2016, 23:56 |
|
radarblue 07 Nov 2016, 20:23
Thanks alot, neville. It worked out . DOS appears now functional atleast. I searched the net, but found some gritty pdf`s and the Microsoft site only had CMD prompt files for win7. coundnt load it . Im thinking about a book instead. Do you think this will be any good ?
https://www.amazon.com/CMD-Your-Computer-Cask-Thomson/dp/1512018139/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr= PS, I am reading IBM approached Microsoft twice desiring a OS for their computers . ending up buying a sourcecode called CP/M80 by Tim Paterson of Seattle Computer Products, that practically was clone of CP/M originally written by Gary Kindall of Digital Research, who had turned IBM down to sell a licence. The CP/M80 was named QDOS, also known as 86DOS, and bought up by Microsoft, then named commercially MS-DOS. Microsoft didnt write MS-DOS themselvs ... Gary Kindall on CP/M : computer chronicles video https://www.youtube.com/watch?v=w9EHc80HY4U PSS. back in the days I had Amiga while some of my buddies had a PC. Amiga had animation, 8bit sounds and 256 colours, and the PC had 16 colours and one note, BEEP. it was like ten years into the past when it was new. Last edited by radarblue on 07 Nov 2016, 21:11; edited 2 times in total |
|||
07 Nov 2016, 20:23 |
|
Trinitek 07 Nov 2016, 20:44
Actually, a lot of the recent CMD prompt help files are still relevant to DOS.
I know you like your books, but I'd hate for you to think that you need to spend money to get of the ground when there's thousands of books worth of free knowledge here on the internet. |
|||
07 Nov 2016, 20:44 |
|
radarblue 07 Nov 2016, 20:54
I can afford a book, I call it priority. Internet is great but sometimes its fragmentary ... getting tons of commercials. entering thousands of forums, and downloading hundreds of files. Reading text on screen. sometimes the links are down, and its just ... site cant be reached. Book benefits is that I can also underline text and write notes.
|
|||
07 Nov 2016, 20:54 |
|
rugxulo 07 Nov 2016, 22:09
You could always browse http://help.fdos.org/ (which may not be 100% updated but close enough). FreeDOS also has its own HtmlHelp app, which is basically this same info (and, IIRC, a clone of MS-DOS 6 Help). Even Wikipedia has a list of commands (e.g. COMMAND.COM or List of DOS commands).
|
|||
07 Nov 2016, 22:09 |
|
rugxulo 07 Nov 2016, 22:29
radarblue wrote:
CP/M was the most popular OS for 8-bit cpus. But CP/M-86 wasn't finished, and DR (allegedly) wanted perpetual royalties. So IBM had MS handle it (since they were supplying compilers/interpreters anyways). They bought (and later hired) Tim Paterson's work, which was an API-compatible CP/M clone targeted at 8086/8088 (16-bit x86 cpus supporting more than 64 kb RAM). The compatibility was supposed to make it easier to transition. So, PC-DOS (which was the IBM-targeted version of MS-DOS) v1 didn't support subdirs or file handles (only FCBs) because of this. Those newer (unique) features came in v2 (thanks to much reworking from TIm and others). Eventually CP/M-86 was made available, but it was way more expensive, and people weren't interested. By 1987, CP/M was falling out of favor and MS-DOS (and IBM, or clone, machines) was the most popular development target. |
|||
07 Nov 2016, 22:29 |
|
radarblue 08 Nov 2016, 17:10
I see. I still regard Gary Kildall as the true inventor of the DOS. He even worked for Intel.
Trinitek, you were correct, again ... Obtained this, and it might be useful. gonna investigate it . https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true Its funny, after being a power user for many years . I find great satisfaction in creating a text file in DOS ! DOS. I have DOS or CMD-prompt, or rather Microsoft Windows 10.0.14393 and I now can create a textfile using ECHO type_text > file1.txt add text to the same file ECHO add_text_to_textfile_ >> file1.txt Move folder 1 into folder 2 d:\MOVE folder1 d:\ folder2 move file1.txt from folder2 to folder1 d:\MOVE folder2\file1.txt d:\folder1 Use Cipher to clear stray binary on previously deleted files RAM places. CIPHER/W CIPHER/W :C (clears stray binary on the C drive. Not the content binary. first writes 0x00, then writes 0xff, then writes random numbers to the HD memory location. when putting a file into the trashcan, the binarys are still on the storage media, however available for new content. After Cipher, disk rescue of old files is not possible. ) The MORE command ( in the CMD-prompt it uses the | (pipe) character, fx. DIR | MORE. But in DOS-box it uses the DIR/p. MORE| (enter) p ( dos replies lines, type the number of lines to be printed) MORE| (enter) h (dos replies OBTIONS, press = and the line number is printed) TRACERT www.wikipedia.org ( prints the number of servers and the IPs of the server-nodes all along the way to the target IP machine adress, that holds the content HTML file. The DNS translates the internet string adress into a numerical IP number adress. One can also type just the IP adress of the desired server or machine. If I understand it correctly, the DNS (Domain Name System) inquire the IP (Internet Protocol adress) Root location of the HTML by firstly looking into its own Cache or RAM, if false then the OS inqire the IP from the Resolver (Resolving Name Server), over the Router. The Resolver then aquires information from the TLD (Top Level Domain server), if that too fails the Resolver inquiers the ANS (Authoritative Name Server) for the IP adress location, The IP is ultimately provided by the Registry and ISP (Internet Service Provider) and can be found even if the TLD Servers dont have the IP in the Cache mem. See also PSTN (Public Switched Telephone Network ) . even thou you have a pivate Server, you call a Telephone Company to have internet access. TRACERT 91.198.174.192 IPCONFIG/FLUSHDNS (internet does not respond ..!) IPCONFIG/RENEW ( internet is back up and running ). From the site linked to above, microsoft provides these descriptions d:\> command | more [/c] [/p] [/s] [/tn] [+n] The Square Brackets are not typed in ! Paths uses \ this slash . command features uses / this slash . I can not load X86-64 programs like Native Instruments synths using CMD-prompt. Neither can I load the web browser Dos_Lynx on CMD-prompt, nor DOS-box. However in DOS-box I can also load the old (16bit ?) DOOM game . _________________ Where`s my Amiga ? |
|||
08 Nov 2016, 17:10 |
|
radarblue 13 Nov 2016, 20:12
Have done some reading and testing. First of all my old Pentium with XP, started the BIOS, but went bluescreen on the run of OS win XP. I guess I need a installation disk, that I dont have now or a new PWB. I was thinking of buying in a 386 machine for I have seen people on the Youtube use the DOS program called DEBUG, that is long gone after Protected Mode machines took over. I managed to get another program called DEBUGX that supports 16bit asm and seemingly also 32bit asm code, however run from DOSbox, on the X86-64 machine . I cant find a native editor like DEBUG, EDIT, or EDLINE for the CMD prompt 10. Guess I came too late for that train .
LINK1 : Video of DEBUG : https://www.youtube.com/watch?v=s1uOGjt0YJk I tested my old EMU8086 files in the DOSbox prompt, but they didnt run. Will spend some time with the DEBUGX and see if get a program to run. LINK2 : DEBUGX : https://sites.google.com/site/pcdosretro/enhdebug In the meantime I have been reading on the Real Mode and the Protected mode. It seems to me that sometime in the era of 286 to P5 Intel enforced the use of Protected Mode and disabled the Real mode user access. Altho it is also said that all the CPUs from 8086 to X86-64 starts in REAL mode, after BIOS load then flips over to Protected Mode. to enable Multitasking and the security administrative rights to "Ring 1 (Kernel) , Ring 2, Ring 3 (Applications). The Protected Mode eats much of the memory space. I have read on this forum that the very Author of FASM Grysztar, loaded up the PC in Protected Mode, then reset the CPU, back into REAL mode, enabling the entire memory space for the programmer. I presume in the transition time of the Real mode and Protected mode i286 to i486, maybe the whole 32bit CPU line to P6 . Well in my mind, can this too be done with the X86-64 ? Disabling the Protected Mode "bottleneck" after loading the OS, but retain the registers of the CPU and access the entire RAM. Since all the processors basically have the same architecture. AL and AH is still 8 bits. A 16 bit program uses registers available on a 64 bit machine ? The machine will most probably be a mono tasker, but accessing an incredible memory. One can ask why you want that. then one can answer, well why not . In that case both 16 bit and 32 bit programs can be run in REAL mode on the newest processors. Even if you have to run them on a "one program at a time" machine . Im shure neither Intel nor Microsoft will mind. We have bought the product. Last edited by radarblue on 16 Nov 2016, 22:06; edited 2 times in total |
|||
13 Nov 2016, 20:12 |
|
revolution 13 Nov 2016, 22:01
I think you are conflating real/protected with single/multi-tasking. They are separate things and can be mixed in any arrangement with each other.
Almost all CPUs support real mode (with only a very few exceptions that almost nobody will see in normal usage). But not all OSes allow real mode or v8086 mode. Notably, a CPU in 64-bit mode cannot support v8086 mode. A CPU in protected mode cannot support real mode. And a CPU in (un)real mode cannot support 64-bit code. |
|||
13 Nov 2016, 22:01 |
|
rugxulo 13 Nov 2016, 22:07
radarblue wrote:
IIRC, both DEBUG and EDLIN were DOS programs, but they still shipped (only) with 32-bit Windows (even Vista). FreeDOS has its own DEBUG, EDIT, and EDLIN replacements. (The DebugX you've found is a third-party derivative of FD Debug.) I still don't understand your difficulty with this. Just install FreeDOS under VirtualBox, and be done with it. Quote:
Enforced ... disabled? No, real mode is still available on newer machines. I've booted DOS natively on a P4 and a Core 2. It never went away. Quote:
The BIOS may do some weird tricks, but the machine still starts and remains in real mode unless told otherwise. So you're in ring 0 unless something (e.g. DOS extender) switches to something else. WDOSX is ring 0 for faster speed and easier system access, but others like CWSDPMI (DPMI only, not a real "extender") are ring 3 for better stability/safety. Part of the advantage of DPMI over VCPI was being able to run in ring 3 (and supporting virtual memory, 286-class machines, running under Windows 3.0 in 386 Enhanced Mode, etc). You mentioned Doom, which was compiled by Watcom using DOS/4G extender. So it was 32-bit except for calling the 16-bit DOS (e.g. file system access), using over a MB of RAM. Quake was similar (except using DJGPP and CWSDPMI). Of course, bugs and incompatibilities in those old versions mean you sometimes have to find bugfixed extenders and (usually) must live without decent soundcard support. But it did (and does still) work! Quote:
The Pmode overhead doesn't eat that much. You can actually run such in less than 640 kb of RAM (same as you can run a 64-bit OS with less than 4 GB). Also, virtual memory helped (back in the day), e.g. when DJGPP was just starting out. Quote:
No, it's more complicated, and 64-bit is (by design) just not available for "legacy". Forget about 64-bit entirely unless you're running a 64-bit OS. Even VT-X probably won't give you exactly what you want. The simple truth is that they don't consider "legacy" to be a priority, so most of the work went into designing a one-size-fits-all mode, so mixing and matching isn't really a thing (except for optional 32-bit app compatibility). If you want a 64-bit "bare metal" OS, use this, but it's far from comfortable. |
|||
13 Nov 2016, 22:07 |
|
radarblue 13 Nov 2016, 23:00
BareMetal OS ... iaiks !
Quote: The simple truth is that they don't consider "legacy" to be a priority, so most of the work went into designing a one-size-fits-all mode, so mixing and matching isn't really a thing I am starting to realize that . then again I got that book I want to finish reading. And all the examples are in 32bit. but Im on a roll. Quote: I still don't understand your difficulty with this. Just install FreeDOS under VirtualBox, and be done with it. I actually got the Virtual box, but tried to run XP in it, it was not actually a success. Althou it loaded and executed. So freeDOS, then. I Appreciate it ! Now thinking about it , you may be correct, but I dont agree. Concerning the Legacy mode, this is where the BIOS instruction is hooking up to the OS and the startup functions to the OS. It seems one can install win XP and Vista on a X86-64 machine, maybe even Os2 ? Choosing a OS on startup . The Legacy "1 Megabyte" adress locations will forever be crucial to the X86 architecture, even if it is hidden by the OS protected Mode. Probably the BIOS ROM (or maybe an EEPROM) is loaded into the 1MB legacy Segment E and F. It would be a concerne about the BIOS to run XP and OS/2 on an X86-64 I suspect. but having a "multiBIOS" UEFI, that too might be possible. During Boot startup one selects the OS the machine is to run , in that process also select the corresponding BIOS for that particular CPU and OS . Something to investigate. Look at this video if you want, I found it amusing : LINK 1 : BIOS in Legacy mode : https://www.youtube.com/watch?v=D4SESHBT6C0 It may seem that the 1MB of adress space is intergrating the adresses into the BIOS chip ? Segment E and Segment F . LINK2 : Comfy x86-mas read : https://drive.google.com/file/d/0B9rh9tVI0J5mNWUxNjlmYmEtZDcxOS00MGQxLThlN2EtNjJmOTI0ZGUwNmI0/view?ddrp=1&hl=en&pli=1# |
|||
13 Nov 2016, 23:00 |
|
radarblue 19 Nov 2016, 21:39
And tripple WOW.
I finally managed to read some of the FASM documentation. I opened FASM from the CMD line and managed to get the first example thru. in Notepad I write db 97, 62h,'c' and save it as example1.asm in the command line D:\FASM>fasm example1.asm example_mod.txt I open the file example_mod.txt from notepad, and there it was : abc ! I can also do it entirely in Command line. D:\FASM>echo db 97,62h,'c' >file1.asm (enter) D:\FASM>fasm file1.asm file2.txt (enter) D:\FASM>type file2.txt (enter) Add additional text into file1 : D:\FASM>echo db 64h,'e',146o>>file1.asm (enter) I am a happy man . There is unforunately no texteditor in X86-64 CMD prompt, so the usual notepad must be sorted to for proper textediting. I guess the "dos edit" couldnt pass the security certificate settings from Microsoft . _________________ Where`s my Amiga ? |
|||
19 Nov 2016, 21:39 |
|
Trinitek 20 Nov 2016, 01:40
radarblue wrote: There is unforunately no texteditor in X86-64 CMD prompt, so the usual notepad must be sorted to for proper textediting. I guess the "dos edit" couldnt pass the security certificate settings from Microsoft . |
|||
20 Nov 2016, 01:40 |
|
rugxulo 20 Nov 2016, 09:44
Trinitek wrote:
Uh, the extremely obvious choice would be (Win32 PE/GUI, IDE) FASMW [sic] itself. Yes, this also allows cross-assembly, even for 16-bit DOS target output. |
|||
20 Nov 2016, 09:44 |
|
radarblue 20 Nov 2016, 11:17
Thanks alot. I went for the VIM. It reminds me of the glory days of Bladerunner. Going thru the Vim Tutor . Incredible what a computer can do these days ! hehehe
Yeah . the FASM editor itself is the obvios choise ! I ve just had a hard time getting it to compile and run, except the example codes. Particularely the "beer.asm", was incredibly funny ! All those invokes and strange stuff. Determine the win16a, 32, 64. and all that. After some noodling I actually got a response in the CMD-line ... But I suspect that if I get it right I can produce a 32 and 64bit code having the proper header in FASM. The CMD prompt I have on the X86-64 win10 really does say : C:\windows\system32\cmd.exe And in the BIOS I can choose boot between BIOs and UEFI. I think that all my incompatability problems can be summed up in one word : NT KERNEL. While all my examples of code rely on the DOS KERNEL . Its not the CPU that is wrong. its the OS ! Double trouble. Link1 : something concerning Kernels and security and ring 0 :https://www.youtube.com/watch?v=LqaWIn4y26E Its seems Virtual Machines is the hippest thing ... And only the Kernel can access the Physical adresses . You are a protected citicen. Even protected from yourself. The positive thing about VMs is that if your clever, you can supposedly model a complete CPU with the chipsets, and a complete enviroment in software, before launching the code on a REAL processor or computer system. whitout deleting parts of your main OS, by accident. If somebody from the outside "enter your machine" they can enter a VM. not your REAL machine ... mhm. why not . So create your own VM that runs after the bios. then install WIN10 inside your own VM. The VM becomes the mainOS . And then select any subOS from inside your main OS VM. A sub OS the becomes OS/2, winXP, Win10, Ubuntu, Xbox, Amiga OS, neat . A program that runs straight off the CPU and its registers will be considered an embedded system. If a virtual box runs in virtual "RAM adresses", called Protected mode ( not virtual memory that is RAM values on the HD) , then you also need a virtual CPU. Just like the music software dudes. create software replicas of old synth circuits. to create the "sound of the 60`s" . |
|||
20 Nov 2016, 11:17 |
|
radarblue 22 Nov 2016, 23:07
Ok. virtual machines is really wonderful, and most possible the future . However isolated from the ordinary OS files and programs. Now a question. How do I get online with Freedos ? with Lynx ... How do I install FASM to test some codes.
I kinda figured I need to run an ISO CD image into the virtual drive. and then mount that in the "storage tab" in the VM, Virtual Box, then load Freedos and then, may be able to see the content of the disk in there. Have to burn the program files on an ISO CD Image content to the Harddrive. Or is it custom to burn the own_files from HD to CD, then burn the CD to IMAGE ? Infra red recorder didnt do it form me, it hangs. But maybe Magic ISO. It seems this can only create duplicates of existing ISOs. well I want to see the code run from the manual FASM for beginner page 12. Flat assembler programming tutorial . Its supposed to display the letter A. and I get a not supported 16 bit failure. doesnt run in DOSbox. PS I was thinking of building a brand new Micro ATXmachine. I had NO idea it was gonna be a 32bit running a Real mode OS, with a DOS kernel. windows 95, win98 or win ME . More reasonably, as an ISO image on a VM . A question will be can win98 boot in Real mode inside the VM ? Microsoft has abandoned these products so the licence key wouldnt be a problem I guess. Link1 : win95 in Virtualbox : https://www.youtube.com/watch?v=Bx7RwnrdC_k Link2 : One step forward, two steps backwards : https://www.youtube.com/watch?v=jMCYvf-r2UE |
|||
22 Nov 2016, 23:07 |
|
l_inc 23 Nov 2016, 02:18
radarblue
fasm is able to compile almost arbitrary files. Including ISO images with arbitrary file structures. _________________ Faith is a superposition of knowledge and fallacy |
|||
23 Nov 2016, 02:18 |
|
Trinitek 23 Nov 2016, 11:10
Two other data transfer methods on non-networking VMs:
1) In the Disk Management console on Windows, you can mount your VM's VHD image. This is useful for large transfers onto and off of the disk. I am unsure if only *.vhd images only will work with this, however. 2) Use a virtual floppy disk driver such as ImDisk to create and mount floppy disk *.img images. You can then mount these in the VM's floppy drive. |
|||
23 Nov 2016, 11:10 |
|
Goto page Previous 1, 2, 3, 4, 5, 6 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.