Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

a forth portable

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Ayep, that is what I meant. Machine code which doesn't make any assumptions (or at least no assumptions which can not be looked up by reviewing hard coded memory positions) about the target machine. I know too little about the Z80 to know if there are certain memory addresses which have to contain specific information, like memory address of graphics memory or I/O chips, stack pointer, maybe even some typical ROM calls.

    In an operating system, I believe you should differ between system (OS) calls and ROM (BIOS) calls, as you should not bypass the system anyway. Since neither ZX81 nor Jupiter does CP/M (AFAIK - I may be wrong here), they would not bother about a common jump table or otherwise. Perhaps sir Clive would not even have liked if a machine, designed by the same people who designed his, even was partitially firmware compatible...
    Anders Carlsson

    Comment


      #17
      Originally posted by carlsson
      Ayep, that is what I meant. Machine code which doesn't make any assumptions (or at least no assumptions which can not be looked up by reviewing hard coded memory positions) about the target machine. I know too little about the Z80 to know if there are certain memory addresses which have to contain specific information, like memory address of graphics memory or I/O chips, stack pointer, maybe even some typical ROM calls.
      As I understand the Z80, it isn't p'ticular about such things. Other processors that I use regularly are, like the Hitachi 6301, which is more than just a microprocessor. It is a single-chip microcomputer, with it's own memory space (RAM & ROM) on-chip, as well as it's own I/O ports. Writing to or reading from certain memory locations on that chip will obviously access that memory or I/O port.
      With CP/M, system calls are sacred in that they mustn't be changed, and if they are, then it's no longer CP/M. The system calls are what make CP/M portable among many different types of hardware. The system call will do exactly the same thing on any hardware it's run on. The differences in hdwre are accounted for in the BIOS, which is different for each different combination of hardwares that the different machines use. The TRS-80, which also uses a Z80, is a whole 'nother animal. It uses memory-mapped I/O, in which certain memory locations are for certain purposes. F'rinstance, if you want to write something to the screen, you don't have to use a system call, you can just write to a specific memory address and that is where the screen's memory lives, so writing to that address automatically writes on to the screen. That's the big reason they had so much trouble porting CP/M to the Trash-80, and even when they did port it over, it wasn't-quite-the-same.
      In an operating system, I believe you should differ between system (OS) calls and ROM (BIOS) calls, as you should not bypass the system anyway. Since neither ZX81 nor Jupiter does CP/M (AFAIK - I may be wrong here), they would not bother about a common jump table or otherwise. Perhaps sir Clive would not even have liked if a machine, designed by the same people who designed his, even was partitially firmware compatible...
      In some computers there is little or no difference between the two. When the OS lives in ROM, then you have to CALL the ROM to CALL the system (like the TRS, running in BASIC mode, without TRSDOS being loaded). CP/M, OTOH, keeps it's system on disk, where it is read into memory at boot-time. The OS is always memory-resident, but it's modular design allows certain portions to be overwritten by the user's program, provided the program handles the functions of the OS that have been over-written. The BIOS is the only part that cannot be overwritten, except by another BIOS version, which still must be compatible with the hardware. The IBM-PC & compatibles OTOOH, keep thier BIOS in ROM, and the BIOS must be the same on every different set of hdwre it's run on. That's what made it so difficult (at first) for other manufacturers to clone the IBM, without stepping on IBM's copyrights.
      Well, I guess that sufficiently confuses the issue...ok, daddy, I'll shut up now...

      --T
      Teach your children how to think, not what, and hold 'em close, not tight.
      _____________________________________________

      Please visit the Vintage-Computer Wiki. Contributers welcome.

      Comment


        #18
        From "Terry Yager":

        > ...That's the big reason they had so much trouble porting
        > CP/M to the Trash-80, and even when they did port it over,
        > it wasn't-quite-the-same...

        Trash-80?!?

        CP/M User.
        Generic and Amstrad CPC based Programs written in Turbo Pascal 3

        Comment


          #19
          "carlsson" wrote:

          > In an operating system, I believe you should differ
          > between system (OS) calls and ROM (BIOS) calls,
          > as you should not bypass the system anyway. Since
          > neither ZX81 nor Jupiter does CP/M (AFAIK - I may
          > be wrong here), they would not bother about a
          > common jump table or otherwise.

          Just on that, the ZX81 is quite an interesting machine &
          I know it's had heaps added to it since my book is 20
          years old. However, even back then it could have 64k
          available for it. I don't want to knock this machine, but
          I was just wonderning if 80x25 text is available for it?
          I guess CP/M could be made to work in 32x24 if that
          was important. The only other issue I believe is the
          character set the ZX81 uses, I don't believe it's ASCII,
          I don't know how that'd tie in with CP/M. Since I've
          seen CP/M programs written to reprogram keys, it's
          easily applied for the change. I guess the only thing
          remaining is for someone to port CP/M to a ZX81 with
          those modifications?

          Cheers,
          CP/M User.
          Generic and Amstrad CPC based Programs written in Turbo Pascal 3

          Comment


            #20
            Originally posted by CP/M User

            Trash-80?!?

            CP/M User.
            The term is used affectionately by those of us who know & love them. It's not at all derogatory.

            --T
            Teach your children how to think, not what, and hold 'em close, not tight.
            _____________________________________________

            Please visit the Vintage-Computer Wiki. Contributers welcome.

            Comment


              #21
              I know of several computers that run CP/M on smaller sized screens, including my beloved Epson PX-8, so it not only can be done, it has been done. In fact, I can't think of any reason why CP/M could not be made to work on one of those machines. If they got it to run on a TRS-80 Model III, then it should run on any machine with the right hardware.

              --T
              Teach your children how to think, not what, and hold 'em close, not tight.
              _____________________________________________

              Please visit the Vintage-Computer Wiki. Contributers welcome.

              Comment


                #22
                Maybe some applications assume 80 column output. I guess installing an external video board would give you any resolution, but it would be major cheating. The ZX Spectrum had at least software solutions to give 64x24 in a 4x8 pixel resolution, whether that is readable or not.

                Speaking about handhelds and CP/M, I notice the Gameboy uses a 4/8 MHz Sharp processor similar to Z80, and that it can do 160x144 pixels. That would make 32x18 characters if using a 5x8 matrix (or 32x24 with a 5x6 matrix). I wonder if there has been any attempts making a homebrewn CP/M cartridge...
                Anders Carlsson

                Comment


                  #23
                  Originally posted by carlsson
                  Maybe some applications assume 80 column output. I guess installing an external video board would give you any resolution, but it would be major cheating. The ZX Spectrum had at least software solutions to give 64x24 in a 4x8 pixel resolution, whether that is readable or not.
                  CP/M apps don't make such assumptions. CP/M "assumes" that all I/O will be thru the BIOS routines, one of which defines your terminal type. Programs which overlay the BDOS (and thus the gateway into BIOS) must define thier own terminal type rather than using the standard (for that machine) I/O. WordStar is one such program. During the instalation you have to tell it what kind of terminal to use.
                  Speaking about handhelds and CP/M, I notice the Gameboy uses a 4/8 MHz Sharp processor similar to Z80, and that it can do 160x144 pixels. That would make 32x18 characters if using a 5x8 matrix (or 32x24 with a 5x6 matrix). I wonder if there has been any attempts making a homebrewn CP/M cartridge...
                  <whining...>I still wanna see CP/M brought up on a Model 100...!!!
                  </whine>

                  --T
                  Teach your children how to think, not what, and hold 'em close, not tight.
                  _____________________________________________

                  Please visit the Vintage-Computer Wiki. Contributers welcome.

                  Comment


                    #24
                    "Terry Yager" wrote:

                    > CP/M apps don't make such assumptions. CP/M "assumes"
                    > that all I/O will be thru the BIOS routines, one of which defines
                    > your terminal type. Programs which overlay the BDOS (and
                    > thus the gateway into BIOS) must define thier own terminal
                    > type rather than using the standard (for that machine) I/O.
                    > WordStar is one such program. During the instalation you
                    > have to tell it what kind of terminal to use.

                    Some of my earlier CP/M-86 programs were made to use 80x50
                    resolution of the VGA display. Of course it's no ordinary program,
                    it accesses the hardware directly (a technique which most frown
                    upon) - though it saves writing something like an FIDD, which I'm
                    guessing is using routines the OS, or programming a new BDOS
                    routines which address newer hardware.

                    CP/M-86 itself only knows one or two displays either 80x24 (the
                    25 line is used by the statusbar), or 40x24 (I think but I've never
                    tried it). You can get 80x50 text in CP/M-86, but the command line
                    only goes down to the 24 line (since that's all it knows). A text
                    editor called TED (originally from DOS), can also use 80x50, but
                    the same program remains in having the cursor past the 24th
                    line.

                    Cheers,
                    CP/M User.
                    Generic and Amstrad CPC based Programs written in Turbo Pascal 3

                    Comment

                    Working...
                    X