Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Adding subfolders and HIT specifications.

commit 968d314f8a391451313f9e69690f5aa7d582d8ac 1 parent 4363dd5
Jos Kuijpers authored
189  COMMUNITY/HIT_HMD2043.txt
... ...
@@ -0,0 +1,189 @@
  1
+HIT_HMD2043
  2
+
  3
+                               __    __
  4
+                                ||  ||
  5
+                                ||==|| I T
  6
+                               _||  ||_
  7
+
  8
+                    Harold Innovation Technologies
  9
+                "If it ain't a HIT, it's a piece of..."
  10
+
  11
+
  12
+DCPU-16 Hardware Info:
  13
+    Name: HMD2043 - Harold Media Drive
  14
+    ID: 0x74fa4cae, version: 0x07c2
  15
+    Manufacturer: 0x21544948 (HAROLD_IT)
  16
+    Document version: 1.1
  17
+    
  18
+    
  19
+Change history:
  20
+    1.1: Added command for setting interrupt message.  Fixed manufacturer id
  21
+         which was erroneously word-swapped.
  22
+    1.0: Initial release.
  23
+    
  24
+    
  25
+Description:
  26
+    The HMD2043 is the latest effort on the part of Harold Innovation
  27
+    Technologies to futurise the computing landscape of tomorrow; today!
  28
+    It is a high-quality disk drive made from the finest materials known to 
  29
+    man. It supports a vast panopoly of disk formats:
  30
+    
  31
+    * HMU1440 - 1.44 MB 3.5" Harold Media Unit.
  32
+    
  33
+    Because of its amazing all-American construction, it will also support disks
  34
+    manufactured by other, inferior "technology" companies; YOU KNOW WHO YOU 
  35
+    ARE! The drive incorporates unique "quality sensing" technology to identify 
  36
+    low-quality disks, allowing the system to warn the user. But, I'm a big 
  37
+    enough man to stoop to your level and...
  38
+    
  39
+    Waitaminute; I've just had an idea for a motorised stooping machine;
  40
+    Angela, get the engineers in here and turn this damn recorde
  41
+    
  42
+        -- Harold Lam, Founder and Chief Innovationist.
  43
+    
  44
+    
  45
+Interrupt behaviour:
  46
+    The HMD2043 supports a number of HWI commands based on the value of the A
  47
+    register:
  48
+    
  49
+    0x0000: QUERY_MEDIA_PRESENT
  50
+            If a supported disk is present in the drive, this sets the B
  51
+            register to 1.  Otherwise, it sets the B register to 0.
  52
+            
  53
+            Media should be tested with the 0xFFFF command before use.
  54
+            
  55
+    0x0001: QUERY_MEDIA_PARAMETERS
  56
+            Reads out the physical properties of the media.  They are placed
  57
+            into registers as follows:
  58
+            
  59
+            B = Number of words per sector.
  60
+            C = Number of sectors.
  61
+            X = 1 if media is write-locked, 0 otherwise.
  62
+            
  63
+    0x0002: QUERY_DEVICE_FLAGS
  64
+            Returns the internal device flags in the B register. The meaning 
  65
+            of this field is defined in the UPDATE_DEVICE_FLAGS command.
  66
+            
  67
+    0x0003: UPDATE_DEVICE_FLAGS
  68
+            Sets the internal device flags to the value of the B register. The
  69
+            available bit flags are, by bit number:
  70
+            
  71
+             0: NON_BLOCKING - if set, all slow operations will be performed in
  72
+                "non-blocking" mode; that is, the hardware command will return 
  73
+                control to the DCPU immediately and an interrupt will be issued 
  74
+                upon completion.
  75
+                
  76
+                Note that other commands issued during a non-blocking operation 
  77
+                will silently fail.
  78
+                
  79
+                Until the interrupt is raised, the device will NOT consider the
  80
+                non-blocking operation "complete".
  81
+                
  82
+                Before issuing a non-blocking command, be sure to set an 
  83
+                appropriate interrupt message with SET_INTERRUPT_MESSAGE.
  84
+                
  85
+             1: MEDIA_STATUS_INTERRUPT - if set, the device will raise an
  86
+                interrupt when the media status changes: new media is inserted 
  87
+                or current media ejected.
  88
+                
  89
+                Before enabling media status interrupts, be sure to set an
  90
+                appropriate interrupt message with SET_INTERRUPT_MESSAGE.
  91
+                
  92
+            The default value is all bits set to zero.
  93
+                
  94
+    0x0004: QUERY_INTERRUPT_TYPE
  95
+            The device will indicate the type of interrupt that it last raised 
  96
+            by placing one of the following values into the B register:
  97
+            
  98
+            0x0000: NONE - No interrupts have been raised yet.
  99
+            
  100
+            0x0001: MEDIA_STATUS - Media status changed.
  101
+            
  102
+            0x0002: READ_COMPLETE - Read operation completed.
  103
+            
  104
+            0x0003: WRITE_COMPLETE - Write operation completed.
  105
+            
  106
+            The value of the A register will be changed to the error status of 
  107
+            the event in question, not the error status of the 
  108
+            QUERY_INTERRUPT_TYPE command itself.
  109
+            
  110
+    0x0005: SET_INTERRUPT_MESSAGE
  111
+            Specifies the message the device should use for software interrupts.
  112
+            Takes one parameter:
  113
+            
  114
+            B = Interrupt number to use when interrupting the DCPU.
  115
+            
  116
+            If the device raises an interrupt before the message is set, it will
  117
+            default to using 0xFFFF.
  118
+            
  119
+    0x0010: READ_SECTORS
  120
+            Reads a contiguous range of sectors into memory.  The parameters
  121
+            are:
  122
+            
  123
+            B = Initial sector to read.
  124
+            C = Number of sectors to read.
  125
+            X = Start of in-memory buffer to read into.
  126
+            
  127
+            The length of time this command will take depends on the state of 
  128
+            the drive and the physical parameters of the media in use.
  129
+            
  130
+            This operation may be performed in non-blocking mode.
  131
+            
  132
+    0x0011: WRITE_SECTORS
  133
+            Writes a contiguous range of sectors to disk.  The parameters are:
  134
+            
  135
+            B = Initial sector to write.
  136
+            C = Number of sectors to write.
  137
+            X = Start of in-memory buffer to read from.
  138
+            
  139
+            The length of time this command will take depends on the state of 
  140
+            the drive and the physical parameters of the media in use.
  141
+            
  142
+            This operation may be performed in non-blocking mode.
  143
+            
  144
+    0xFFFF: QUERY_MEDIA_QUALITY
  145
+            Determines the quality of the media inserted into the drive.  It
  146
+            places this value into the B register. It has the following values:
  147
+            
  148
+            0x7FFF: Authentic HIT media.
  149
+            0xFFFF: Media from other companies.
  150
+            
  151
+    All commands replace the contents of the A register with a flag indicating 
  152
+    whether the command succeeded or failed.  The following result codes are 
  153
+    defined:
  154
+    
  155
+    0x0000: ERROR_NONE - The operation either completed or (for non-blocking 
  156
+            operations) begun successfully.
  157
+    0x0001: ERROR_NO_MEDIA - Operation requires media to be present.  In long 
  158
+            operations, this can occur if the media is ejected during the 
  159
+            operation.
  160
+    0x0002: ERROR_INVALID_SECTOR - Attempted to read or write to an invalid 
  161
+            sector number.
  162
+    0x0003: ERROR_PENDING - Attempted to perform a non-blocking operation 
  163
+            whilst a conflicting operation was already in progress: the most 
  164
+            recent operation has been aborted.
  165
+
  166
+            
  167
+Performance:
  168
+    Full-stroke: 200 ms
  169
+    Spindle speed: 300 RPM, 5 Hz using Constant Angular Velocity
  170
+    Maximum data transfer speed: 768 kbit/s, 48 kw/s
  171
+    Head position on media insertion: innermost track
  172
+    Head mode: full duplex [1]
  173
+    
  174
+    Time to seek to sector =
  175
+        floor( abs(target sector - current sector)
  176
+                / (disk sectors per track) )
  177
+         * full stroke time / (disk tracks - 1)
  178
+        
  179
+    Time to read/write a sector =
  180
+        1 / (spindle speed * disk sectors per track)
  181
+        
  182
+    Example times:
  183
+        1.44 MB 3.5" Disk:
  184
+            Time to seek to adjacent track  = 2.5 ms
  185
+            Time to read/write a sector     = 11 ms
  186
+            Time to read/write entire disk  = 16 s
  187
+            
  188
+    [1] The head is capable of reading/writing both sides of the disc at the 
  189
+        same time.
53  COMMUNITY/HIT_HMU1440.txt
... ...
@@ -0,0 +1,53 @@
  1
+HIT_HMU1440
  2
+
  3
+                               __    __
  4
+                                ||  ||
  5
+                                ||==|| I T
  6
+                               _||  ||_
  7
+
  8
+                    Harold Innovation Technologies
  9
+                "If it ain't a HIT, it's a piece of..."
  10
+
  11
+
  12
+Media Info:
  13
+    Name: HMU1440 - 1.44 MB 3.5" Harold Media Unit
  14
+    Document version: 1.1
  15
+    
  16
+    
  17
+Description:
  18
+    The HMU1440 is the latest effort on the part of Harold Innovation
  19
+    Technologies to futurise the computing landscape of tomorrow; today!
  20
+    It is a high-density, double-sided magnetic storage device.  That's right, 
  21
+    it uses MAGNETS to store DATA.  Isn't technology amazing?
  22
+    
  23
+    It packs a whopping 1,440 512-word sectors into 80 beautifully delineated 
  24
+    tracks for a total stuff-icity of 1,474,560 octets.
  25
+    
  26
+    It also comes complete with a precision Write Lock slide-switch to protect 
  27
+    your many and varied files and a super high-quality Label, pre-lined for 
  28
+    your convenience and compatible with most writing implements on the market 
  29
+    today!  It is also available in a wide variety of colors including Blue and 
  30
+    White, but NOT Red.
  31
+    
  32
+    This disc is of such high quality of construction and design that it can 
  33
+    only be reliably WRITTEN to by Harold Innovation Technologies' HMD2043 
  34
+    Harold Media Drive.  However, this disc is of such high quality of 
  35
+    construction and design that it can be reliably READ from by even the most 
  36
+    basic and technologically backward of disk drives.
  37
+    
  38
+    So enjoy, and may this happy little disk provide you years of faithful 
  39
+    service before inexplicably failing, but not so fast that you cannot buy a 
  40
+    new disk and save almost all of your data.
  41
+    
  42
+        -- Harold Lam, Founder and Chief Innovationist.
  43
+
  44
+
  45
+Specification:
  46
+    Data surfaces: 2
  47
+    Tracks: 80
  48
+    Sectors per track: 18
  49
+    Total sectors: 1440
  50
+    
  51
+    Note: sectors are spread across both data surfaces; specifically, even bits 
  52
+    of a sector are stored on the "top" data surface, odd bits on the "bottom" 
  53
+    data surface.  This doubles effective read/write speed.
0  NE_LEM1802.txt → MOJANG/NE_LEM1802.txt
File renamed without changes
0  NE_SPC2000.txt → MOJANG/NE_SPC2000.txt
File renamed without changes
0  clock.txt → MOJANG/clock.txt
File renamed without changes
0  dcpu16.txt → MOJANG/dcpu16.txt
File renamed without changes
0  keyboard.txt → MOJANG/keyboard.txt
File renamed without changes

0 notes on commit 968d314

Please sign in to comment.
Something went wrong with that request. Please try again.