Differences
This shows you the differences between two versions of the page.
Next revisionBoth sides next revision | |||
documentation:monitor:directpage [2014/03/22 19:25] – created pulkomandy | documentation: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 " | ||
+ | ===== 4C: DKSEC - Disk sector number ===== | ||
+ | ===== 4D: DKNUM - Sector interleaving factor ===== | ||
+ | The default is 7, which lays out the sectors in this order: | ||
+ | 0, | ||
+ | ===== 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 (' | ||
+ | * 44 (' | ||
+ | |||
+ | ===== 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 ====== | ||