Differences

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

Link to this comparison view

Next revisionBoth sides next revision
documentation:monitor:directpage [2014/03/22 19:25] – created pulkomandydocumentation:monitor:directpage [2014/03/22 21:02] – [3A: TEMPO] pulkomandy
Line 86: Line 86:
  
 ===== 3A: TEMPO ===== ===== 3A: TEMPO =====
 +Note length multiplier
  
 +===== 3C: DUREE =====
 +Note length
  
 +===== 3D: WAVE =====
 +Sound wave shape (values from 0 to 5)
  
 +===== 3E: OCTAVE =====
 +Note octave multiplier (16, 8, 4, 2, 1, from bass to treble)
  
 +====== Tape drive ======
 +Note: this needs a tape drive.
  
 +===== 40: K7DATA =====
 +Byte being read or written to tape
  
 +===== 41: K7LENG =====
 +Byte counter for current block being written to tape
  
 +====== Printer ======
 +Note: this needs a printer port, which is an extension on some machines.
  
 +===== 42: PROPC - Printer Operation Code =====
 +===== 43: PRSTA - Printer status =====
 +  * 4: port open
 +  * 8: ready
 +  * 10: port closed
  
 +====== System support ======
 +===== 44-45: TEMP - Temporary register =====
 +Used as temporary storage by various routines.
 +===== 46-47: SAVEST - System stack pointer backup =====
 +S register is saved here when a routine needs to modify it.
  
 +====== Disk operations ======
 +These variables are only used by the floppy controller ROM, not the monitor one.
 +===== 48: DKOPC - Disk Operation =====
 +Used by DKCONT system call. Possible operations:
 +  * 1: initialize controller
 +  * 2: read a sector
 +  * 4: switch to single density
 +  * 8: write a sector
 +  * 10: switch to double density
 +  * 20: seek track 0
 +  * 40: seek track
 +  * 80: verify sector.
  
 +Some of these can be combined (88 is "write and verify sector").
  
 +===== 49: DKDRV - Active drive =====
 +  * 0: Drive A, top side
 +  * 1: Drive A, bottom side
 +  * 2: Drive B, top side
 +  * 3: Drive B, bottom side
 +  * 4: RAM disk
 +===== 4A-4B: DKTRK - Disk track =====
 +This is a 16 bit variable because of the use on QDD as the "LBA" block number.
 +===== 4C: DKSEC - Disk sector number =====
 +===== 4D: DKNUM - Sector interleaving factor =====
 +The default is 7, which lays out the sectors in this order:
 +0,7,14,6,13,5,12,4,11,3,10,2,9,1,8
  
 +===== 4E: DKSTA - Disk status =====
 +Used as error bits after executing disk operations:
 +  * bit 0: write protection
 +  * bit 1: track error
 +  * bit 2: sector error
 +  * bit 3: data error
 +  * bit 4: drive not ready, no disk or motor off
 +  * bit 5: compare error (data read from disk and memory version are different)
 +  * bit 6: not formatted
 +
 +Used as information about the type of controller aftre initialisation:
 +  * 43 ('C'): single density controller
 +  * 44 ('D'): double density controller
 +
 +===== 4F-50: DKBUF - Disk buffer =====
 +Pointer to 256 byte work buffer for the floppy controller
 +
 +===== 51-58: working area =====
 +Used for several different purposes by the floppy ROM.
 +
 +====== Keyboard scanning, interrupts, custom character tables ======
  
documentations/monitor/directpage.txt · Last modified: 2015/02/28 17:08 by 127.0.0.1
CC0 1.0 Universal
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0