In tutorial 18 where a basic virtual memory manager/pager is implemented, you have added the initialization of the virtual memory manager as the first task in the init()-function and initialization of the physical memory manager as the last task. I don't think this is going to work.
The first thing vmmngr_initialize() does is a call to physical memory manager to allocate a block (pmmngr_alloc_block) for a page table. This function then checks the pmmngr_get_free_block_count() <= 0. The variables used in this function are set in the pmmgr_init(), which you haven't yet called therefore causing block allocation to fail by returning zero which causes the vmmgr_initialize() to return too soon. I think you should move the vmm initialization after the pmm initilization.
The same mistake exists in the Tutorial 19 demo.
The floppy tutorial states that the floppy connector/cable is similar to IDE cables. This is true, but you have described them too similar. The floppy cable actually has only 34 pins and the table "Floppy Interface Cable Pins" is actually for IDE-cables not floppy cables. (For more believable pinouts, check http://www.interfacebus.com/PC_Floppy_Drive_PinOut.html for instance). Also the picture of "physical layout of a generic 3-1/2" floppy disk" is clearly for a hard disk. I think you should edit that picture and remove the two extra platters or put a comment.
I'd also like to remind you that there are other types of floppy disks, too, than the 3,5" 1,44 MB. I still have a 5,25" floppy drive in my computer (stole it from a 386 machine
