Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.development    |    Operating system development chatter    |    4,255 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 3,607 of 4,255    |
|    s_dubrovich@yahoo.com to All    |
|    Re: cp/m exe    |
|    28 Feb 23 07:38:10    |
      On Friday, February 24, 2023 at 5:46:01 AM UTC-6, muta...@gmail.com wrote:              There isn't a cpm.exe unless, perhaps you are talking of an emulator called by       that name.              o CP/M aka CP/M-80 is built for, and around, the intel 8080 cpu equipped       Intel MDS,         the micro-processor development system.       - The 8080 requires reservation of the page-zero (the first 0100h bytes) for       itself.       Address 0000h is the RST0 vector followed by RST1..RST7.       Address 007Dh, 007Eh, 007Fh are byte variables needed by the diskette       controller,       followed by Address 0080h..00FFh which is the diskette transfer buffer area.        Note       that this is 128 bytes for the diskette sector size, as data is read or       written in complete       Sectors, and sectors were sized at 128 bytes at that time.       Later, sector sizes were 512 bytes, and cp/m-80 used a software procedure       called       'blocking and deblocking' to manage the sector size issue.              o CP/M-86 is built for the S100 buss systems, and IBM 5150 using the Intel       8086/8088.       - Because Patterson named his executables with the suffix .COM and later       .EXE, DRI        chose to name executables with .CMD for CP/M-86, also to distinguish from       CP/M-80       .COM files. Since the file system for cp/m-86 was functionally the same as       cp/m-80,       both types of files could stored on the same media.              > Is there any real disadvantage in having CP/M use        > tiny memory model executables as seen on MSDOS        > instead of .com files?                I don't understand the question.       Memory model designators are tool specific.       CP/M-80 only has one memory model, practically, for 64k addressing.       CP/M-86 deals with 16 x 64k in its own unique ways.              DOS .COM is architectually borrowed from cp/m-80. It assumes CS, DS, ES, SS       all have       the same value, actually the loader makes sure it is so, afaict.              CP/M-86 doesn't use .COM executables, only .CMD files.       The tools for CP/M-86 allows for building different memory models including an       8080       model where the data of the page zero is placed first followed by code       designated at       ORG 0100h.              CP/M-86 and MP/M-86 evolved into CDOS for the 8086 which also could execute        early DOS .EXE's              > It seems a bit odd executing code immediately.               Why? The cpu does this:       The 8080 Program Counter begins cpu execution at 0000h.       The 8086 Instruction Pointer begins cpu exectution at FFFF:0000h, which is 16       bytes       before address roll-over.              >        > I don't mind if CP/M doesn't validate anything and        > just assumes it is tiny memory model and skips        > over the header and unconditionally starts executing.        >               Taking your comment as meaning CP/M-80, blame the 8080 cpu architecture.              > That would be no worse than what happened with        > COM files, and gives more flexibility for a "future"        > (MSDOS) operating system to have more robust        > checking and more functionality (relocation).        >        MSDOS never did reach the multi-tasking/multi-processing of MP/M-80 and       later MP/M-86.              > Thanks. Paul.              hth,       Steve              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca