128K RAM fitted
Hard disk drive (will be used for swap), or a suitable memory
expander board could be used with a bit of tweaking (or both!)
+ *** NOTE: the current code will simply swap blindly all over the first
+ hard disk ***
Memory Map:
Base memory 0-FFFF (with a fair bit of slack) is used for the kernel
Drivers:
80 column display is done
- Keyboard is not started
- Floppy and Hard disk are fleshed out but not yet tested (need kbd
- first)
+ Keyboard is done
+ Floppy and Hard disk are done and minimally tested
+ Floppy drivers do not yet deal with double sided disks or sd/dd
+ media detection
Hard disk needs to read block 0, and handle partitions of some form
including finding where 'swap' lives
#
sdltrs -emtsafe -disk0 mydisk.jv3 -model 4p
#
-
+ # and remember to mark the fd volume as writeable
int fd_write(uint8_t minor, uint8_t rawflag, uint8_t flag)
{
- flag;
+ flag;rawflag;minor;
+// return 0;
return fd_transfer(minor, false, rawflag);
}
; - track dependant for double density based on trsdos dir pos
;
;
-
.globl _fd_reset
.globl _fd_operation
.globl _fd_motor_on
; to meet timing
ld a, #1
ld (fdc_active), a ; NMI pop and jump
-; set 6,d ; halt mode bit
jr z, fdio_in
jr nc, fdio_out
;
; Read from the disk - HL points to the target buffer
;
fdio_out:
- ld bc, #FDCDATA + 0xFF00 ; 256 bytes/sector, c is our port
+ set 6,d ; halt mode bit
+ ld c, #FDCDATA ; C is our port
ld e, #0x76
fdio_outl:
in a, (FDCREG) ; Wait for DRQ (or error)