4a294ee21c
kernel: fix advancing of drive table pointer during drive init
2020-08-22 23:38:11 +00:00
3b39572043
kernel: fall back to defaults if int 13h/ah=8 spews bogus data
2020-08-22 23:36:25 +00:00
ff3a59c71e
kernel: properly loop over floppies
2020-08-22 23:36:09 +00:00
fde87d651c
kernel: read A: geometry from BIOS
2020-08-15 21:15:31 +00:00
734ab3852a
Remove skeleton of rom-based kernel
2020-08-15 21:02:30 +00:00
f9b180ea57
Implement file descriptor table and CON as file descriptor
2020-06-28 19:01:14 +02:00
65564b78af
Start working on rom-based kernel
2020-05-29 00:32:30 +02:00
5129a5499e
Implement calculation of number of clusters
2020-05-11 21:19:51 +00:00
1b42f1a480
Implement calculation for FAT position
2020-05-10 16:47:48 +00:00
2cb39a4ff1
Implement lba read
2020-05-08 20:48:23 +00:00
a472c396e7
Implement reading of BPB from FAT partition
2020-05-07 22:56:37 +00:00
8d28dc9f85
Implement reading of partition offset and size
2020-05-06 20:28:30 +00:00
9377924eab
Implement reading geometry info from floppy BPB
2020-05-04 19:49:26 +00:00
36f4673c91
Another attempt on disk i/o
2020-05-02 23:57:23 +02:00
6d1befb49f
kernel/diskio: EBIOS access is first class citizen in kernel
2020-04-28 22:09:56 +02:00
b73bfbe043
Split out kernel components in kernel/
2020-04-27 15:56:41 +02:00
4a92c4bc1e
Drop MCBs as mean to manage memory
2020-04-18 22:59:46 +02:00
f7d3d5c62f
Fix addressing mistake when splitting MCB
2020-04-17 23:59:57 +02:00
6d38a313c7
Implement MCB splitting
2020-04-17 23:33:42 +02:00
6c165f40c0
Create basic MCB at boot
2020-04-17 01:24:23 +02:00
f81de2bfe8
Rename kernel to bdos
2019-10-27 18:59:42 +00:00
da506d36ac
Preserve AX on buffered input
2019-10-20 19:45:55 +00:00
f3a6ae338f
Move out console interfacing into separate file
2019-10-20 19:11:44 +00:00
e86b1ba004
Another attempt at implementing a block layer
2019-10-20 09:56:27 +00:00
e70386bcfb
Mask raw directory bit when giving drive number to int13
2019-10-17 19:19:12 +00:00
b3014ef8e4
Meh
2019-10-16 21:09:31 +00:00
4abfab2812
Test with easier to implement EQU syntax
2019-10-15 20:37:14 +00:00
66f54f639c
WIP on fcb io
2019-10-14 17:59:48 +00:00
a65f54b121
Advance on FCB disk i/o
2019-10-12 18:33:26 +00:00
e07e13fd35
Add hexdump for kernel
2019-10-12 15:10:39 +00:00
7ba68e13f7
Implement CP/M basic char io
2019-10-08 19:53:41 +00:00
7877809bc1
WIP on FCB disk i/o
2019-10-08 17:54:39 +00:00
6e7a6563d5
Improve register hygiene
2019-09-29 21:33:28 +00:00
a0f2a71066
WIP on loading files from disk
2019-09-29 21:25:29 +00:00
1ae3c7a0b9
Implement FCB parsing in kernel
2019-09-29 12:23:39 +00:00
56f9df5773
Throw DOS api away, re-layout memory to fit CP/M model
2019-09-29 08:52:00 +00:00
cc28b42897
Factor out string token search
2019-09-28 12:37:16 +00:00
df8e47803a
Generate rconfig.sys from distfile
...
*.sys files are affected by make clean.
2019-09-25 20:49:32 +00:00
2c2720323c
WIP for config.sys parsing
2019-09-25 20:45:50 +00:00
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
cd7aafde09
Run kernel with from offset 0
...
I try to get the interrupt handlers into a offset as low as possible.
This is necessity if i want to relocate it later on its own.
For running from HMA, a minimal offset of 16 bytes would still be
necessary.
2019-09-23 22:06:29 +00:00
93a9c3d5e9
Make drive table data offsets available via defines
2019-09-19 20:12:35 +00:00
d23bba5bdd
Add attempt for drive table to kernel
2019-09-19 20:02:16 +00:00
fc0dd47d48
Remove rom and serial boot methods from qemu testing
2019-09-15 18:01:48 +00:00
6cbcc3efca
Experimental cache.asm not checked in yet
2019-09-10 22:03:50 +00:00
d5ba0f3e30
Remove intr function not in line with int 21h
...
If we have them, use them for setting up ourselves
2019-09-10 21:50:58 +00:00
e86bde72f8
Rework interrupt handling, realign stuff for relative jumps
2019-09-10 21:38:52 +00:00
cd258ccbe4
Work on interrupt subfunctions, remove drvtab experiments
2019-09-08 15:18:37 +00:00
d853b87ec7
Use COM-based format, get bootloader working
2019-09-08 01:04:01 +00:00
11b4d07dc1
Split up kernel and debug rom
2019-09-06 23:42:39 +00:00
4fa383bb2e
Add basic 21h functions
2019-09-05 22:24:39 +00:00
b1e9b75693
Remove unused nop area
2019-09-04 16:41:07 +00:00
a0adadeaf4
Add drive table initialisation
2019-09-03 10:58:06 +00:00
e6e75082e3
Register IV 1 and 3 per default
2019-09-01 14:16:47 +00:00
dcbb719488
Fix broken intr_load, use LDS instruction
2019-09-01 14:15:26 +00:00
de90b9cfd1
Routine for loading far ptr from IVT
2019-09-01 14:05:40 +00:00
809a959608
Improve register hygiene for interrupt setup
2019-09-01 13:48:28 +00:00
b5cc332a02
Remove malloc, pursue a more DOS-like MM approach
2019-09-01 13:46:48 +00:00
abe7d1c5f4
Add free_sector
2019-08-31 12:00:33 +00:00
ffe6eb0904
Add malloc_sector
2019-08-31 11:57:15 +00:00
126e3aae74
implement malloc and free for default 16 byte paragraphs
2019-08-30 23:15:20 +00:00
4e188235f9
Add malloc table dump
2019-08-30 22:18:05 +00:00
aec0218ccf
Mark reserved memory ranges as allocated on start
2019-08-30 21:48:39 +00:00
9443996f56
Notes on malloc functions
2019-08-30 17:43:46 +00:00
385bf15414
Add malloc
2019-08-30 17:40:47 +00:00
a0ea232b7c
Remove attempt of ramdisk layer
2019-06-24 16:50:51 +00:00
4b35c68345
debugger: Use opcode order for arithmetic register display
2019-06-24 16:49:36 +00:00
8aafa98c6a
Revamp debugger, including support for printing padded numbers
2019-05-05 11:18:55 +00:00
dab565ee41
debug ISR: display flags
2019-05-02 21:06:02 +00:00
ff552ac242
Prevent announce from spoiling DS
2019-05-02 20:26:11 +00:00
932aa06874
Add back vendor strings
2019-05-02 20:25:50 +00:00
e47d107b5f
Remove dosapi stub, not intended to implement
2019-05-02 20:21:31 +00:00
90c6b3dcca
Remove unused hma and heap code
2019-05-02 20:16:37 +00:00
0622188353
Get rid of pre-tables for interrupts and kprintf
2019-05-02 20:14:31 +00:00
49ae13c73a
debug: use printf instead of kprintf
2019-05-02 20:12:45 +00:00
bc6a49c54d
Implement ramdisk i/o, advance kernel printf
2019-04-28 22:01:30 +00:00
d8fe1b211c
Change kernel blob format to be option rom compatible
2019-04-20 21:02:35 +00:00
3b3fa349d4
Make interrupt landing pads safe against external DS values
2019-04-16 07:23:22 +00:00
0094ee6b95
Add 01h and 02h for DOSAPI
2019-04-14 19:35:55 +00:00
4b9d6da85c
Clarify comment
2019-04-14 15:30:29 +00:00
ac8e07d5ce
intr: Ship table with first 16 ISR offsets
2019-04-09 22:38:20 +00:00
517c156c3d
kernel: relocate to HMA if available
2019-03-31 22:58:19 +00:00
fa6e624604
kernel: wip
2019-03-31 20:54:51 +00:00
a46114f6bd
kernel: strip down to dumb binary, expect bootloader to load into sane location and setup stack
2019-03-27 23:07:04 +00:00
414f35a1ce
Trying to figure out best directory structure...
2019-03-24 18:30:49 +00:00
8b750aabe9
kernel: Generalize startup code into main
2019-03-24 18:24:25 +00:00
8d12a42442
Make setup generic for both NBP and DOS startup
2019-03-24 17:59:45 +00:00
bcff1efe59
Add routine to backup IVT
2019-03-24 17:59:03 +00:00
0414af640a
Implement block-based heap
2019-03-24 14:45:53 +00:00
40a7c52bae
kernel heap: dont trash ES
2019-03-23 21:27:06 +00:00
4489dd1b47
de-inline debug_init from main
2019-03-23 21:26:46 +00:00
d54f8ac4b9
Make relocation code not trash potentially important registers
2019-03-23 20:54:08 +00:00
1005a24c7f
Split nbp up into startup code and main
2019-03-23 20:23:17 +00:00
260db9f8d7
Move kernel libs into subdir, create NBP-specific entrypoint
2019-03-23 20:17:47 +00:00