Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mg_notes:cpm:softcard_cpm_ref [2018/07/03 11:48]
M.G. [Microsoft SoftCard Version 2.23 BIOS]
mg_notes:cpm:softcard_cpm_ref [2019/09/30 18:29] (current)
M.G. [The Apple CP/M Disk Parameter Tables]
Line 190: Line 190:
  
 ^ Key ^ Action ^ ^ Key ^ Action ^
-| <​key>​Ctrl-S</​key>​ | Temporarily stops character output to TTY:  Output is resumed when any character is typed |+| <​key>​Ctrl-'S'</​key>​ | Temporarily stops character output to TTY:  Output is resumed when any character is typed |
 | <​key>​Ctrl-P</​key>​ | Sends all character output to LPT: as well as to TTY: \\ This "​printer echo" mode remains in effect until another <​key>​Ctrl-P</​key>​ is typed. | | <​key>​Ctrl-P</​key>​ | Sends all character output to LPT: as well as to TTY: \\ This "​printer echo" mode remains in effect until another <​key>​Ctrl-P</​key>​ is typed. |
  
Line 446: Line 446:
 Because of the way the 6502 is "put to sleep" by the Z-80 SoftCard using the Because of the way the 6502 is "put to sleep" by the Z-80 SoftCard using the
 DMA line on the Apple bus, ALL interrupt processing must be handled by the DMA line on the Apple bus, ALL interrupt processing must be handled by the
-6502.  ​AN interrupt can occur at two times: while in Z-80 mode and while in+6502.  ​An interrupt can occur at two times: while in Z-80 mode and while in
 6502 mode: 6502 mode:
  
Line 1313: Line 1313:
  
 ^ Offset ​ ^ Contents ^ Use ^ ^ Offset ​ ^ Contents ^ Use ^
-| 00H     | SPT 16b  | Total number of sectors per track | +| 00H     | SPT 16b  | Total number of 128-byte ​sectors per track | 
-| 02H     | BSH  8b  | Data allocation block shift factor, determined by the data block allocation size | +| 02H     | BSH  8b  | Data allocation block shift factor, determined by the data block allocation size \\ 3 -> 1K, 4 -> 2K, 5 -> 4K, ... 
-| 03H     | BLM  8b  | Data allocation block mask (2[BSH-1]) |+| 03H     | BLM  8b  | Data allocation block mask (2[BSH-1]) ​\\ 7 -> 1K, 0FH -> 2K, 01FH -> 4K, ... |
 | 04H     | EXM  8b  | Extent mask, determined by data block allocation size and number of disk blocks | | 04H     | EXM  8b  | Extent mask, determined by data block allocation size and number of disk blocks |
-| 05H     | DSM 16b  | Total storage capacity of disk drive |+| 05H     | DSM 16b  | Total storage capacity of disk drive, blocks minus one |
 | 07H     | DRM 16b  | Total number of directory entries minus one | | 07H     | DRM 16b  | Total number of directory entries minus one |
-| 09H     | AL0  8b  | Determines reserved directory blocks ​+| 09H     | AL0  8b  | Directory allocation bitmap, byte 0. 
-| 0AH     | AL1  8b  | Determines reserved directory blocks ​|+| 0AH     | AL1  8b  | Directory allocation bitmap, byte 1. |
 | 0BH     | CKS 16b  | Size of directory check vector | | 0BH     | CKS 16b  | Size of directory check vector |
 | 0DH     | OFF 16b  | No of reserved tracks at beginning of logical disk | | 0DH     | OFF 16b  | No of reserved tracks at beginning of logical disk |
Line 1351: Line 1351:
 bit of AL1, 15=lo bit of AL1.  Bits are assigned starting at bit 0 up bit of AL1, 15=lo bit of AL1.  Bits are assigned starting at bit 0 up
 until bit 15.  Suppose nbits is the number of bits set to 1: until bit 15.  Suppose nbits is the number of bits set to 1:
 +
 +
  
 ^   ​BLS ​ ^  Directory entries ​ ^ ^   ​BLS ​ ^  Directory entries ​ ^
Line 1359: Line 1361:
 |  16384 |        512  * nbits | |  16384 |        512  * nbits |
  
-Example: ​if DRM=127 (128 directory entries) and BLS=1024 bytes, there+Example: 
 + 
 +^       ​^ ​           AL0            ^^^^^^^^ ​        ​AL1 ​        ​^^^^^^^^ 
 +^  Bit  ^ 7 ^ 6 ^ 5 ^ 4 ^ 3 ^ 2 ^ 1 ^ 0 ^ 7 ^ 6 ^ 5 ^ 4 ^ 3 ^ 2 ^ 1 ^ 0 ^ 
 +^ Value | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
 +  
 +If DRM=127 (128 directory entries) and BLS=1024 bytes, there
 are 32 directory entries per block, requiring 4 reserved blocks. ​ Thus are 32 directory entries per block, requiring 4 reserved blocks. ​ Thus
 the 4 hi bits if AL0 are set, and AL0=0FH, AL1=00H the 4 hi bits if AL0 are set, and AL0=0FH, AL1=00H
Line 1425: Line 1433:
  
 ^ Physical format: ​ ^  A  ^  B  ^  C  ^  D  ^ ^ Physical format: ​ ^  A  ^  B  ^  C  ^  D  ^
-^                  ^  Apple CP/M  ^^  Enhanced ​ ^  Standard ​ ^ +^                  ^  Apple CP/M  ^^  Enhanced ​CP/M  ​^ ​ Standard ​\\ CP/M  ^ 
-^                  ^  13-sect ​ ^  16-sect ​ ^  80-trk/16-sec/2-side ​ ^  8" SSSD  ^+^                  ^  13-sect ​ ^  16-sect ​ ^  80-trk ​\\ 16-sec ​\\ 2-side ​ ^  8" SSSD  ^
 | Bytes/​sector ​    ​| ​   256 |       256 |             256 |             128 | | Bytes/​sector ​    ​| ​   256 |       256 |             256 |             128 |
 | Sectors/​track ​   |     13 |        16 |              16 |              26 | | Sectors/​track ​   |     13 |        16 |              16 |              26 |
Line 1441: Line 1449:
 **Apple CP/M DPB - Disk Parameter Block** **Apple CP/M DPB - Disk Parameter Block**
  
-^             ​^ ​      ​A ^     ​B ^     ​C ^     ​D ^ ^+^             ​^ ​        ​  ​  ​  ​  ​  ^ ^ 
 +^ ^ Apple CP/M    ^^  Enhanced \\ CP/M  ^  Standard \\ CP/​M  ​^ ^
 | SPT 16b     ​| ​     26 |    32 |    32 |    26 | 128-byte Logical Sectors/​Track | | SPT 16b     ​| ​     26 |    32 |    32 |    26 | 128-byte Logical Sectors/​Track |
 | BSH  8b     ​| ​      3 |     3 |     4 |     3 | Block shift factor | | BSH  8b     ​| ​      3 |     3 |     4 |     3 | Block shift factor |