Two Stop Bitsnew | comments | tags | ask | submitlogin
The UCSD p-System, Apple Pascal, and a dream of cross-platform compatibility (pascal) (markbessey.blog)
7 points by amoroso 47 days ago | 7 comments
  • Rochus 46 days ago
    Cool project. Is the discussed p-system still 16 bit, or does it support a larger address space?
    • mbessey 45 days ago
      You're limited to 64k on the AppleII, but one of the extensions to standard Pascal that Apple Pascal supports is "segments", where you can break a larger program into multiple code segments, which can replace each other in memory.
      • bmonkey325 44 days ago
        Turbo Pascal had a similar method where code segments could be swapped in and out via .OVL files that were created at compile/link time.

        https://secondboyet.com/articles/publishedarticles/theslithy...

        reply
    • KODust 46 days ago
      Apple Pascal supported > 64k of RAM on suitable machines, so it probably already did?
      • Rochus 46 days ago
        Apple Pascal on the Apple II was restricted to 64 K memory; this limitation was due to the 6502's 16-bit address bus. The Apple III with it's 6502A could address 256 K, but only by bank switching; pointers remained 16-bit. The later Pascal versions (after Apple III) did no longer use P-code, but compiled to native code.
        • KODust 45 days ago
          There was a 128k version of Apple Pascal available on the Apple II. My question, applicable to both this and the Apple III version, is: Was the bank switching managed by the developer or by the Pascal runtime? If it's managed by the runtime, the addresses must have been encodable with >16 bits.
          • thought_alarm 45 days ago
            All versions of Apple Pascal use 16-bit pointers, so data was always limited to a 64 KB address space. On the 128K Apple II, p-code was located in aux memory, and data was located in main memory.

            Apple III Pascal had similar limitations, with separate 64K address spaces for p-code and data. On machines with more than 128 KB of RAM, there were assembly routines available for allocating additional memory and swapping data memory.

lists | rss | source
Search:
Two Stop Bits is a discussion web site about retro computing and gaming.