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:43]
M.G. [Installing the Softcard]
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 951: Line 951:
 ===== Microsoft SoftCard Version 2.23 BIOS ===== ===== Microsoft SoftCard Version 2.23 BIOS =====
  
-THe Microsoft 2.20B BIOS uses some ingainly ​fixes to correct a few+THe Microsoft 2.20B BIOS uses some ungainly ​fixes to correct a few
 problems, but still a few problems remain in the area of hardware problems, but still a few problems remain in the area of hardware
 interfacing. ​ Most of these problems are corrected in the SoftCard interfacing. ​ Most of these problems are corrected in the SoftCard
Line 958: Line 958:
 The hardware interfacing is greatly improved because version 2.23 The hardware interfacing is greatly improved because version 2.23
 uses Apple Computer'​s protocols for operating what Apple calls uses Apple Computer'​s protocols for operating what Apple calls
-Formware ​Cards. ​ Most of the cards that can operate a host of+Firmware ​Cards. ​ Most of the cards that can operate a host of
 peripheral devices and have them do all sorts of neat tricks are peripheral devices and have them do all sorts of neat tricks are
 Firmware Cards. ​ Version 2.20B could not identify Firmware Cards and Firmware Cards. ​ Version 2.20B could not identify Firmware Cards and
Line 1032: Line 1032:
 | $DD0 | $DE0   | Firmware Card initialization routine, followed by a routine that uses the Apple protocol for firmware I/O | | $DD0 | $DE0   | Firmware Card initialization routine, followed by a routine that uses the Apple protocol for firmware I/O |
 | $DE1 | $DEE   | Firmware Card output routine | | $DE1 | $DEE   | Firmware Card output routine |
-| $DEF | $DFA   ​| ​Formware ​Card routine which waits for card to accept I/O |+| $DEF | $DFA   ​| ​Firmware ​Card routine which waits for card to accept I/O |
 | $E00 | $E02   | CP/M entry to the warm loader routine | | $E00 | $E02   | CP/M entry to the warm loader routine |
 | $E03 | $E08   | Entry to CP/M RWTS routine on Language Card bank 1 | | $E03 | $E08   | Entry to CP/M RWTS routine on Language Card bank 1 |
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 |