CP/M configuration to maximize TPA

General discussions related to the Altair 8800 Clone

CP/M configuration to maximize TPA

Postby Wayne Parham » August 4th, 2022, 9:04 am

I'm looking for assistance with CP/M to maximize TPA.

I wrote a program that uses a little over 48Kb and I find that it runs on the clone or on SimH, both having 58K or 59K available TPA.

But when I transfer the program to floppy and try to run it on my 8800c, it always complains with the (now dreaded) "Bad Load" message.

I first back-ported the program from ANSI C to BDS C and it built a 52Kb binary. Trimmed off some fat and it built a 50Kb program. Those ran on the clone but not on the 8800c.

So I gave Aztec C a try. That took another re-write, sort of a "sideways port" from BDS C to Aztec C, which is a more "traditional" K&R C.
The Aztec port made a smaller binary, around 48Kb. But it appears that's still a smidge too big for my 8800c, even when I use MOVCPM and SYSGEN to create a 63Kb CP/M disk. I still get the "Bad Load" message when I try to execute it.

My "light bulb" moment was I might look at the CP/M configuration to see how much memory was available. I've listed "survey" program results for various systems below. What I see is the TPA on the 63Kb CP/M is a pretty respectable 48Kb, so it's really close. The 48Kb CP/M has around 32Kb TPA available. What's weird is the 60K CP/M I made shows 23Kb TPA. Don't know what I did to SYSGEN that thing, but it tells me I don't know what the heck I'm doing. Looks like a bunch of RAM is chewed up by BIOS or is unassigned.

So I'm hoping MIke or one of you other guys can help me with configuration advice. Are there any tips and tricks for generating CP/M that will maximize TPA?
Code: Select all
==================================================================

63K CP/M 2.2b v1.2
For Altair 1.5Mb Floppy

A>survey
                *** System Survey (June 82) ***

Drive A: 660K bytes in 55 files with 820K bytes remaining

Memory map:
0       8       16      24      32      40      48      56      64
|       |       |       |       |       |       |       |       |
 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCCBBBBBBBBBBBBR
T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
BIOS at CC03    iobyte 55       drive 00        BDOS at BE06

65279 Bytes RAM         256 Bytes ROM           48646 Bytes in TPA
0 Bytes Empty           65535 Total Active Bytes

Active I/O ports:
08 09 0A 0B
10 11 12 13
8 Ports active

==================================================================

60K CP/M 2.2b v1.2
For Altair 1.5Mb Floppy

A>survey
                *** System Survey (June 82) ***

Drive A: 568K bytes in 49 files with 912K bytes remaining

Memory map:
0       8       16      24      32      40      48      56      64
|       |       |       |       |       |       |       |       |
 TTTTTTTTTTTTTTTTTTTTTTTCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBR
T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
BIOS at 6A03    iobyte 55       drive 00        BDOS at 5C06

65279 Bytes RAM         256 Bytes ROM           23558 Bytes in TPA
0 Bytes Empty           65535 Total Active Bytes

Active I/O ports:
08 09 0A 0B
10 11 12 13
8 Ports active

==================================================================

48K CP/M 2.2b v1.2
For Altair 1.5Mb Floppy

A>survey
                *** System Survey (June 82) ***

Drive A: 592K bytes in 51 files with 888K bytes remaining

Memory map:
0       8       16      24      32      40      48      56      64
|       |       |       |       |       |       |       |       |
 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBR
T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
BIOS at 9003    iobyte 55       drive 00        BDOS at 8206

65279 Bytes RAM         256 Bytes ROM           33286 Bytes in TPA
0 Bytes Empty           65535 Total Active Bytes

Active I/O ports:
08 09 0A 0B
10 11 12 13
8 Ports active

============================= CLONE ==============================

63K CP/M
Version 2.2mits (07/28/80)
Copyright 1980 by Burcon Inc.

A>survey
                *** System Survey (June 82) ***

Drive A: 292K bytes in 42 files with 8K bytes remaining

Memory map:
0       8       16      24      32      40      48      56      64
|       |       |       |       |       |       |       |       |
 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCBBR
T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
BIOS at F503    iobyte F3       drive 00        BDOS at E706

64767 Bytes RAM         768 Bytes ROM           59142 Bytes in TPA
0 Bytes Empty           65535 Total Active Bytes

Active I/O ports:
02 06 07 08 09 0A
10 11 12 13
10 Ports active

============================== SimH ==============================

64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.27, 2 HD, 02-May-2009)

A>survey
                *** System Survey (June 82) ***

Drive A: 850K bytes in 111 files with 142K bytes remaining

Memory map:
0       8       16      24      32      40      48      56      64
|       |       |       |       |       |       |       |       |
 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCBBBR
T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
BIOS at F203    iobyte E5       drive 00        BDOS at E406

65279 Bytes RAM         256 Bytes ROM           58374 Bytes in TPA
0 Bytes Empty           65535 Total Active Bytes

Active I/O ports:
02 03 08 0A
10 11 12 13 14 15 16 17 18 19
28 29 2A 2B
32 33
A0 A1 A2 A3 A4 A5 A6 A7
FD FE FF
31 Ports active

==================================================================
Wayne Parham
 
Posts: 240
Joined: March 18th, 2022, 3:01 pm

Re: CP/M configuration to maximize TPA

Postby AltairClone » August 5th, 2022, 3:36 pm

If you don’t mind running with a smaller floppy capacity and having a bit of reduced performance, the Burcon or Lifebaot versions of Altair CP/M will give you the largest TPA for a given RAM size.

The problem you show with 1.5Mb CP/M and the 60K SYSGEN looks really weird. I’ll have to see if I can duplicate that.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am

Re: CP/M configuration to maximize TPA

Postby Wayne Parham » August 6th, 2022, 9:05 am

Thanks for the suggestion. I wondered if maybe the larger drive needed a larger table in RAM or something. But instead of exploring that, I started looking at Aztec's overlay mechanism. Might use that to get larger program capacity.

Thanks again for the tip. It's good to know what is needed to run a 48Kb program.
Wayne Parham
 
Posts: 240
Joined: March 18th, 2022, 3:01 pm


Return to General Discussions

Who is online

Users browsing this forum: Google [Bot] and 12 guests

cron