Commit Graph

38 Commits

Author SHA1 Message Date
Nero 84b754551c Restructure kernel to use 1-segment COM convention 2021-02-07 16:17:31 +00:00
Nero ebd356ed8e Implement file search in directory 2021-01-23 17:32:53 +00:00
Nero 440187c2a8 Harden drive.asm against unexpected DS and ES values 2021-01-13 18:32:17 +00:00
Nero 750bfbdc60 Remove outdated comments 2021-01-05 00:15:36 +00:00
Nero 3f8cfaac42 Remove debugging output 2021-01-03 18:10:54 +00:00
Nero 9a1c4139a6 Implement searching directory for exact matches 2021-01-02 02:07:40 +00:00
Nero 2bb40e315c Fix ebios dap packet: wrong size 2020-12-26 20:58:51 +00:00
Nero af5df85c16 Use ebios extensions if enabled 2020-12-26 20:54:39 +00:00
Nero c75b323d31 Add support for hard disks 2020-12-26 17:44:48 +00:00
Nero b8b56e1f45 make logdrv also use int13 stub 2020-12-26 16:43:04 +00:00
Nero c5afc6ec61 Add printf facility for kernel to allow debug messages on phys. system 2020-12-26 16:03:15 +00:00
Nero 424e174523 drive i/o: improvements regarding reset and stack usage
- read and write now run in the same function, less branching
- implemented on-demand controller reset
- set up a function stub for int 0x13 for later stack switching
2020-12-26 14:40:43 +00:00
Nero 0a2a0e4659 Support managing floppy parameter table 2020-12-22 21:14:16 +00:00
Nero f10fa026cf Add support for floppy types with other geometry than 18/2/80 2020-12-18 18:29:26 +00:00
Nero de04b5ca01 Make logging in drive a no-op if drive already logged in 2020-12-17 00:41:53 +00:00
Nero bd3b27362d skip reads when sector number already matches 2020-12-17 00:10:02 +00:00
Nero e096745c13 Implement map-like sector access for floppy drives 2020-12-15 23:29:35 +00:00
Nero 6bdb1da2ed Read disk geometry and DPT from BIOS 2020-10-30 09:29:22 +00:00
Nero dc6035fe9d Protypical implementation of DPT copying 2020-10-24 22:50:23 +00:00
Nero c41782c78f Build drive selection logic for FCBs 2020-10-13 20:10:23 +00:00
Nero 4e779c5a22 Lay out skeletons for FCB handling 2020-10-11 21:33:01 +00:00
Nero 79c902c197 kernel: Fix borked ax assignment 2020-08-31 20:21:10 +00:00
Nero 352540bd25 kernel: First steps of calculating drive tab data from BPB 2020-08-31 20:11:05 +00:00
Nero f0a000b7d1 kernel: implement diskio using drive table 2020-08-27 20:52:16 +00:00
Nero 4a294ee21c kernel: fix advancing of drive table pointer during drive init 2020-08-22 23:38:11 +00:00
Nero 3b39572043 kernel: fall back to defaults if int 13h/ah=8 spews bogus data 2020-08-22 23:36:25 +00:00
Nero ff3a59c71e kernel: properly loop over floppies 2020-08-22 23:36:09 +00:00
Nero fde87d651c kernel: read A: geometry from BIOS 2020-08-15 21:15:31 +00:00
Nero e86b1ba004 Another attempt at implementing a block layer 2019-10-20 09:56:27 +00:00
Nero e70386bcfb Mask raw directory bit when giving drive number to int13 2019-10-17 19:19:12 +00:00
Nero 66f54f639c WIP on fcb io 2019-10-14 17:59:48 +00:00
Nero a65f54b121 Advance on FCB disk i/o 2019-10-12 18:33:26 +00:00
Nero 7877809bc1 WIP on FCB disk i/o 2019-10-08 17:54:39 +00:00
Nero a0f2a71066 WIP on loading files from disk 2019-09-29 21:25:29 +00:00
Nero 56f9df5773 Throw DOS api away, re-layout memory to fit CP/M model 2019-09-29 08:52:00 +00:00
Nero 6411dc0c9c Turn CHS fields in drive table into words
CHS arithmetic will be done on 32-bit integers, the operand for division
of DX:AX is a word, so we save a conversion step.

Additionally, i might reuse these fields for pointing to a SYS driver later.
2019-09-24 08:16:22 +00:00
Nero 93a9c3d5e9 Make drive table data offsets available via defines 2019-09-19 20:12:35 +00:00
Nero d23bba5bdd Add attempt for drive table to kernel 2019-09-19 20:02:16 +00:00