home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / firmware / drives / old / 8050 / d / 8250.notes < prev    next >
Text File  |  1995-02-02  |  4KB  |  168 lines

  1. gLOBAL MEMORY MAP FOR THE 8250:
  2.  
  3. ip (INTERFACE PROCESSOR)
  4.  
  5. 00XX:ZERO PAGE
  6. 01XX:STACK
  7. 02XX:i/o CHIPS
  8. 020X:riot FOR ieee
  9. 0200: ieee DATA IN
  10. 0202: ieee DATA OUT
  11. 028X:riot FOR ieee AND FLOPPY DISK CONTROLLER
  12. 0280: ddr IS #$1f
  13.    0: OUT  atn OUT??
  14.    1: OUT  ndac OUT?
  15.    2: OUT  nrfd OUT?
  16.    3: OUT  eoi OUT
  17.    4: OUT  dav OUT?
  18.    5: IN   eoi IN
  19.    6: IN   dav IN?
  20.    7: IN   atn IN?
  21. 0282: ddr IS #$38
  22.    0: IN   \
  23.    1: IN   {$7c} dEVICE # BITS IN
  24.    2: IN   /
  25.    3: OUT  DRIVE 1 LED (1 IS ON)
  26.    4: OUT  DRIVE 0 LED
  27.    5: OUT  ERROR LED OUT
  28.    6: IN   ndac IN?
  29.    7: IN   nrfd IN?
  30.  
  31. c000-ffff:  rom
  32.  
  33. fdc (FLOPPY DISK CONTROLLER)
  34.  
  35. 0000-003f:  ZERO PAGE (PARTIAL)
  36. 004X:    via
  37. 0040:pORT b, ddr IS #$7f
  38.    0: OUT  \ STEPPER MOTOR
  39.    1: OUT  / CONTROL #1 ?
  40.    2: OUT  \ STEPPER MOTOR
  41.    3: OUT  / CONTROL #0 ?
  42.    4: OUT
  43.    5: OUT
  44.    6: OUT
  45.    7: IN    INDEX HOLE ???
  46. 0041: pORT a: DISK DATA READ
  47. 0042: ddrb #$7f
  48. 0043: ddra
  49. 004b: acr, SET TO #$01 %0000 0001
  50.       t1: pb7 UNUSED, ONE SHOT
  51.       t2: ONE SHOT
  52.       sHIFT REGISTER DISABLED
  53.       pORT b LATCH: DISABLED
  54.       pORT a LATCH: ENABLED ON ca1 TRANSITION
  55. 004c: pcr, SET TO #$fc %1111 1100
  56.       cb2: OUT MANUAL 1
  57.       cb1: ACTIVE HIGH
  58.       ca2: OUT MANUAL 0
  59.       ca2 IS WRITE GATE ($dc = ca2 LOW = WRITE?)
  60.       ca1: ACTIVE LOW
  61. 004d: ifr
  62.  
  63. 008X:    riot
  64. 0080: DISK DATA WRITE
  65. 0082: PORT b
  66.    0: OUT DRIVE SELECT
  67.    1: OUT \
  68.    2: OUT / DENSITY SELECT
  69.    3: IN  1 = WRITE PROTECTED
  70.    4: IN  1 = DRIVE TYPE 1 (2C FORMAT), 0 = DRIVE TYPE 0 (2A FORMAT)
  71.    4: OUT SIDE SELECT (1 = TRK 1-77, 0 = TRK 78-154)
  72.    5:
  73.    6: IN  0 = 2 SIDED DRIVE, 1 = 1 SIDED DRIVE
  74.    7:
  75. 0083: DDR b, SET TO #$07 (DRIVE TYPE 0) OR #$17 (TYPE 1)
  76. 008f: RIOT T8
  77. 0100-013f:  STACK
  78.  
  79. fc00-ffff:  rom
  80.  
  81. sHARED MEMORY:
  82.  
  83.  fdc ip
  84. 04XX10XXsHARED VARIABLES
  85. 05XX11XXbUFFER #0
  86. 06XX12XXbUFFER #1
  87. 07XX13XXbUFFER #2
  88. 1DXXbUFFER #0 SHADOW
  89. 1EXXbUFFER #1 SHADOW
  90. 1FXXbUFFER #2 SHADOW
  91. 08XX20XXbUFFER #3
  92. 09XX21XXbUFFER #4
  93. 0aXX22XXbUFFER #5
  94. 0bXX23XXbUFFER #6
  95. 0cXX30XXbUFFER #7
  96. 0dXX31XXbUFFER #8
  97. 0eXX32XXbUFFER #9
  98. 0fXX33XXbUFFER #A
  99. 10XX40XXbUFFER #B
  100. 11XX41XXbUFFER #C   BAM/HEADER DRIVE 0
  101. 12XX42XXbUFFER #D   BAM/HEADER DRIVE 1
  102. 13XX43XXbUFFER #E   COMMAND BUFFER + IP VARIABLES
  103.  
  104. jOB CODES AND RETURN VALUES:
  105.  
  106. 80  00read A SECTOR
  107. 90  10write A SECTOR
  108. a0  20verify A SECTOR
  109. b0  30seek A SECTOR
  110. c0  40bump (MOVE) HEAD TO TRACK 0
  111. d0  50jump TO MACHINE CODE IN BUFFER
  112. e0  60execute CODE IN BUFFER ONCE UP TO SPEED AND HEAD READY
  113.  
  114. 01  JOB COMPLETED SUCCESSFULLY
  115. 02  HEADER BLOCK NOT FOUND
  116. 03  NO sync CHARACTER
  117. 04  DATA BLOCK NOT FOUND
  118. 05  DATA BLOCK CHECKSUM ERROR
  119. 07  VERIFY ERROR AFTER WRITE
  120. 08  WRITE PROTECT ERROR
  121. 09  HEADER BLOCK CHECKSUM ERROR
  122. 0a  DATA BLOCK TOO LONG
  123. 0b  id MISMATCH ERROR
  124. 0c  FORMAT SPEED ERROR
  125. 0f  DRIVE NOT READY
  126. 10  BYTE DECODING ERROR
  127.  
  128. drvst: DISK DRIVE STATUS
  129.     4 10    SHUT DOWN DRIVE MOTOR? 1=YES
  130.     5 20    DRIVE MOTOR 1=ON
  131.     6 40    HEAD STEPPING 1=ON
  132.     7 80    DRIVE UP TO SPEED 1=NO
  133.  
  134.  
  135. hOW DID i EXTRACT THOSE romS?
  136.  
  137. 1.  tHE ip ROM IS EASY: YOU CAN DO THAT WITH m-r. i USED kOSmON WHICH
  138.     KNOWS TO READ/WRITE THE DRIVE'S MEMORY ALREADY, AND SIMPLY DID A
  139.     t c000 ffff 5000 TO TRANSFER THE CONTENTS.
  140.  
  141. 2.  tHE fdc MEMORY IS SLIGHTLY MORE DIFFICULT. yOU CAN'T ACCESS THAT
  142.     DIRECTLY, SO i WROTE A SMALL PROGRAM:
  143.  
  144.     1200 LDX #$00
  145. 1202 LDA $FF00,X
  146.      STA $0700,X
  147.      DEX
  148.      BNE $1202
  149.      LDA #$01
  150.      JMP ($FC02)
  151.  
  152.     tHIS RUNS AT $0600 (BUFFER #1) OF THE fdc IF YOU WRITE d0 INTO 1004.
  153.     a PAGE OF MEMORY CAN THEN BE READ FROM $1300, AGAIN WITH m-r.
  154.  
  155. hAVING A COMMENTED DISASSEMBLY OF THE 1541 ROMS, OR A GOOD DESCRIPTION
  156. SUCH AS IN "iNSIDE cOMMODORE dos", BY rICHARD iMMERS AND gERALD g nEUFIELD,
  157. isbn 0-88190-366-3, PUBLISHED 1984 BY dATAMOST, 20660 nORDHOFF sTREET,
  158. cHATSWORTH, ca 91311-6152, +1-818-709-1202, IS AN INVALUABLE HELP.
  159.  
  160. tHERE IS TOO MUCH i/o GOING ON. iT LOOKS FROM A SOFTWARE POINT OF VIEW
  161. THAT THERE ARE 4 PAIRS OF i/o PORTS. oN THE HARDWARE SIDE HOWEVER ONE
  162. FINDS ONLY 2 riotS AND 1 via, WHICH IS ONE PAIR SHORT.
  163.  
  164. -oLAF.
  165. --
  166. ___ oLAF 'rHIALTO' sEIBERT    RHIALTO@MBFYS.KUN.NL         wHAT'S THE USE OF
  167. \x/  RACISM IF YOU CAN'T EVEN SEE IF A PERSON BELONGS TO YOUR ABHORRED KIND?
  168.