some documentation fixes (mostly spelling mistakes)
This commit is contained in:
1 parent
80d7296cab
commit
44f50cc375
5 files changed
+6
-7
No files matched your search
@@ -141,7 +141,7 @@
|
|||||||
.label CAS1 = $C0 // tape motor interlock
|
.label CAS1 = $C0 // tape motor interlock
|
||||||
.label STAL = $C1 // $C1-$C2 LOAD/SAVE start address
|
.label STAL = $C1 // $C1-$C2 LOAD/SAVE start address
|
||||||
.label MEMUSS = $C3 // $C3-$C4 temporary address for tape LOAD/SAVE
|
.label MEMUSS = $C3 // $C3-$C4 temporary address for tape LOAD/SAVE
|
||||||
.label LSTX = $C5 // last keyy matrix position [!] our usage probably differs in details
|
.label LSTX = $C5 // last key matrix position [!] our usage probably differs in details
|
||||||
.label NDX = $C6 // number of chars in keyboard buffer
|
.label NDX = $C6 // number of chars in keyboard buffer
|
||||||
.label RVS = $C7 // flag, whether to print reversed characters
|
.label RVS = $C7 // flag, whether to print reversed characters
|
||||||
.label INDX = $C8 // end of logical line (column, 0-79)
|
.label INDX = $C8 // end of logical line (column, 0-79)
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
.label BLNSW = $CC // cursor blink disable flag
|
.label BLNSW = $CC // cursor blink disable flag
|
||||||
.label BLNCT = $CD // cursor blink countdown
|
.label BLNCT = $CD // cursor blink countdown
|
||||||
.label GDBLN = $CE // cursor saved character
|
.label GDBLN = $CE // cursor saved character
|
||||||
.label BLNON = $CF // cursor visibilityy flag
|
.label BLNON = $CF // cursor visibility flag
|
||||||
.label CRSW = $D0 // whether to input from screen or keyboard
|
.label CRSW = $D0 // whether to input from screen or keyboard
|
||||||
.label PNT = $D1 // $D1-$D2 pointer to the current screen line
|
.label PNT = $D1 // $D1-$D2 pointer to the current screen line
|
||||||
.label PNTR = $D3 // current screen X position
|
.label PNTR = $D3 // current screen X position
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
// Similar tables are probably used by nearly all the disk turbo loaders,
|
// Similar tables are probably used by nearly all the disk turbo loaders,
|
||||||
// either on the C64 or drive side, soometimes generated in RAM on the fly;
|
// either on the C64 or drive side, soometimes generated in RAM on the fly;
|
||||||
// example disk turbo presented below has a veryy similar table - but the
|
// example disk turbo presented below has a very similar table - but the
|
||||||
// values are in reversed order:
|
// values are in reversed order:
|
||||||
// - https://www.pagetable.com/?p=568
|
// - https://www.pagetable.com/?p=568
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
// see description at https://sites.google.com/site/h2obsession/CBM/C128/JiffySoft128
|
// see description at https://sites.google.com/site/h2obsession/CBM/C128/JiffySoft128
|
||||||
//
|
//
|
||||||
// For simplicity and some space savings, our routine does not check the RUN/STOP key at all;
|
// For simplicity and some space savings, our routine does not check the RUN/STOP key at all;
|
||||||
// the protocol is fast enough (especiallyy with modern flash mediums) that probably nobody
|
// the protocol is fast enough (especially with modern flash mediums) that probably nobody
|
||||||
// will want to terminate the loading.
|
// will want to terminate the loading.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ lvs_display_saving:
|
|||||||
lda (FNADDR), y
|
lda (FNADDR), y
|
||||||
jsr JCHROUT
|
jsr JCHROUT
|
||||||
iny
|
iny
|
||||||
bne !- // jump alwayys
|
bne !- // jump always
|
||||||
!:
|
!:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ For legal reasons, no disassembling of the JiffyDOS ROMs was performed (only IEC
|
|||||||
When sending/receiving a byte, the JiffyDOS protocol timing is much more strict than the standard IEC. It is not enough to mask the interrupts - one has to make sure nothing will steal the CPU cycles. There are two ways to achieve this:
|
When sending/receiving a byte, the JiffyDOS protocol timing is much more strict than the standard IEC. It is not enough to mask the interrupts - one has to make sure nothing will steal the CPU cycles. There are two ways to achieve this:
|
||||||
|
|
||||||
- disable the screen completely for the duration of transmission; since VIC-II checks the bit in SCROLY register once per frame only, the code has to wait till the beginning of the next frame
|
- disable the screen completely for the duration of transmission; since VIC-II checks the bit in SCROLY register once per frame only, the code has to wait till the beginning of the next frame
|
||||||
- disable the sprites for the duration of transmission and synchronize with VIC-II RASTER/SCROLY registers to avoid badlines. Current implementation simply avoids transmission two lines before the badline; I suspect it can be reduced to one line, but it would need even more careful timing and would definitely mean inlining some subroutines - probably not worth the effort and increased code size, especially that 1541 JiffyDOS is not too fast sending bytes nevertheless
|
- disable the sprites for the duration of transmission and synchronize with VIC-II RASTER/SCROLY registers to avoid badlines. Current implementation simply avoids transmission two lines before the badline; I suspect it can be reduced to one line, but it would need even more careful timing and would definitely mean inlining some subroutines - probably not worth the effort and increased code size
|
||||||
|
|
||||||
Timing details are omitted by purpose - they are already described in [2], besides most of the time it was determined by observing VICE IEC logs and (for example) adding NOPs when necessary. The protocool is not cycle-exact, so our implementation probably behaves slightly differently than the original one.
|
Timing details are omitted by purpose - they are already described in [2], besides most of the time it was determined by observing VICE IEC logs and (for example) adding NOPs when necessary. The protocool is not cycle-exact, so our implementation probably behaves slightly differently than the original one.
|
||||||
|
|
||||||
@@ -53,7 +53,6 @@ Encoding the low nibble is done via lookup table, reverse engineered by observin
|
|||||||
|
|
||||||
Afterwards the controller either pulls the CLK quickly, or signals EOI by delaying this action. In our implementation the acceptable timing was adjusted by experimentation (pre-existing delay subroutine was used to reduce code size, also note that NTSC machines have slightly higher CPU frequency) - but it's important not to wait too long, 1541 JiffyDOS ROM can handle it, but SD2IEC implementation can not!
|
Afterwards the controller either pulls the CLK quickly, or signals EOI by delaying this action. In our implementation the acceptable timing was adjusted by experimentation (pre-existing delay subroutine was used to reduce code size, also note that NTSC machines have slightly higher CPU frequency) - but it's important not to wait too long, 1541 JiffyDOS ROM can handle it, but SD2IEC implementation can not!
|
||||||
|
|
||||||
|
|
||||||
## Receiving a byte
|
## Receiving a byte
|
||||||
|
|
||||||
Device ready to send a byte signals it by releasing CLK, bus controller performs the 'badline synchronization' (note: if screen blanking method was choosen, artificial delay has to be inserted, otherwise communication with 1541 fails; also note the slightly faster CPU frequency on NTSC machines!). Controller releases the DATA line to signal it is ready to accept bits.
|
Device ready to send a byte signals it by releasing CLK, bus controller performs the 'badline synchronization' (note: if screen blanking method was choosen, artificial delay has to be inserted, otherwise communication with 1541 fails; also note the slightly faster CPU frequency on NTSC machines!). Controller releases the DATA line to signal it is ready to accept bits.
|
||||||
|
|||||||
Reference in new issue
Block a user