问题标签 [floppy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14199 浏览

boot - 操作系统开发 - 使用 qemu 从软驱启动

我一直在阅读 BrokenThorn 的操作系统开发教程,并且正在创建和加载第二阶段引导加载程序。本教程适用于 Windows,但我在 Linux(Ubuntu 13.04)中执行此操作。

这就是我所做的:

  • 使用命令floppy.img在下创建文件~/Documents/floppymkfs.vfat
  • boot.asm使用 nasm 文件编译给我boot.bin
  • 然后我运行了这个命令:dd if=boot.bin of=~/Documents/floppy/floppy.img bs=512 count=1

因此,我有第一阶段引导加载程序的软盘映像。在开始使用 qemu 时,它工作正常。

但是,在我创建第二阶段引导加载程序之后,(如果我是正确的)我必须floppy.img将阶段 2 挂载并复制到已挂载的文件系统上。在这种情况下,如何使用 qemu 引导已安装的软盘?甚至可能吗?如果没有,我如何使用第二阶段引导加载程序。

请原谅我任何愚蠢的假设/问题,因为我是新手。

0 投票
1 回答
72 浏览

assembly - 写入第二个圆柱软盘图像的奇怪结果

我正在尝试写入软盘映像第二个柱面的扇区。为了测试,我尝试在第二个柱面的第一个扇区上写数字 1-9。

逻辑是,一个柱面有 18 个扇区,每个扇区有 512 个字节,这个结果应该出现在字节 9216/0x2400(在字节 8704/0x2200 之后,这是第一个柱面的第 18 个扇区)。奇怪的是,在使用hexdump序列检查结果后,它反而位于字节 18432/0x4800。

我想了解为什么软盘的第一个和第二个圆柱体(从汇编程序的角度来看)不连续。

NASM 组装程序:

0 投票
1 回答
472 浏览

bootloader - OS 开发 - 将逻辑块格式转换为 Cylinder-Head-Sector

我指的是 BrokenThorn 的操作系统开发教程,目前正在阅读有关开发加载第二阶段的完整第一阶段引导加载程序的部分 - Bootloaders 4

在将逻辑块地址 (LBA) 转换为气缸盖扇区 (CHS) 格式的部分中,这是使用的代码 -

我无法理解这种转换背后的逻辑。我尝试使用一些示例值来遍历它并查看它是如何工作的,但这让我更加困惑。有人可以解释这种转换是如何工作的以及使用的逻辑吗?

0 投票
1 回答
998 浏览

raspberry-pi - 直接控制软驱

我正在尝试从 3.5" 软盘中提取数据,该软盘在 ZX 频谱的 +D 接口上格式化。它与 PC 很接近,但并不完全相同。我过去使用 BIOS 编写过软件来执行此操作访问软盘。

但是,有些磁盘很旧并且有坏扇区。我正在尝试创建一个软盘驱动器控制器来读取位级别的磁盘以恢复尽可能多的数据。我完全清楚这可能有多么困难。然而,我已经编写了一个磁盘实用程序,它在原始频谱计算机上以机器代码级别与接口接口,用 Z80 汇编软件编写,以模拟 MSDOS 以访问和写入文件到 FAT12 软盘。访问这些磁盘的原始计算机是使用 3.4MHz 处理器进行的,因此我正在考虑使用的 Rasperry Pi 应该足够快。我什至可以在 Linux 上运行它,但如果不能,我已经想办法使用不需要任何内核来运行它的汇编语言来访问 GPIO 端口、屏幕、键盘和 SD 卡。我'

我做了一些研究,但有几个问题我似乎无法找到答案,想知道这里的人是否知道。

1) 读取数据引脚 (30)。这会返回读取头下方的逻辑高/低值(向上或向下舍入到逻辑高或低),还是模拟?我问是因为如果它是模拟的,取回任何输入将使我能够更好地尝试恢复损坏的扇区,但会使接口电路更难制作,并且取决于所使用的 ADC 使与 GPIO 的接口更难、更慢。

2)我知道+5V和+12V的摩尔功率。但是软盘期望的电流是多少?

3) 我假设软盘上带状电缆的控制引脚工作在 0 或 +5V,但人们似乎能够在 +3.3V 下运行它们。有谁知道他们应该以什么运行,以及他们的电流容差是多少:输入期望的电压和电流,以及输出提供的电流/电压?

非常感谢您提供的任何信息/知识。

0 投票
2 回答
1176 浏览

assembly - 如何使用我自己的超过 512 字节的可启动软盘

我正在学习汇编语言,我按照http://mikeos.berlios.de/write-your-own-os.html的步骤制作了一个可启动的图形游戏,但我有一个问题:我不能使用超过 512我的程序的内存字节。

我怎么解决这个问题?

我很感激任何帮助。

这是我的代码(仍然小于 512 字节): http: //pastebin.com/i6ehx8dT

编辑:我解决了我的问题,这里是用 16 位汇编语言制作的软盘引导加载程序的最小示例:http: //pastebin.com/x1SawyjN

最后这个链接很有帮助:http ://www.nondot.org/sabre/os/files/Booting/nasmBoot.txt

0 投票
1 回答
250 浏览

bootloader - 软盘扇区数

我试图理解为什么 lseek() 在这个图像创建器中使用。为什么距离文件开头 5 个字节?如果我更改了该号码,操作系统将无法启动。

镜像创建者创建一个.img包含 bootloader.bin 的文件。

源代码(图像生成器): http ://pastebin.com/raw.php?i=MuDpYP3Y

引导加载程序: http://pastebin.com/raw.php?i= kzw2ZaU1

带有 lseek() 的 hexdump 并将扇区数写入偏移量 5 处的字节: 在此处输入图像描述

没有 lseek() 操作系统无法正确启动。

0 投票
1 回答
783 浏览

virtual-machine - 将 .img 文件加载到虚拟盒中的软盘

我有一个 Hello World 程序Assembly language

我已经使用nasm并得到了img文件。当我使用它时,Floppy Controller它给出了一个错误..

0 投票
2 回答
915 浏览

gcc - 程序集:第一条磁道后无法读取扇区

作为我的操作系统的一部分,我编写了这个读取扇区函数。

从 BIOS 设备 ID 读取扇区地址。但是当我设置从第 19 扇区(磁头:0,磁道:1,第 2 扇区)读取时,0x1000:0x0000 处的结果可能超过了该扇区(我用十六进制查看器检查了几次)。

此外,当我读取多个扇区时,包括扇区 19,在上述地址,我可以毫无问题地读取在 0x1000:(512*19) 处复制的扇区 19。

0 投票
1 回答
229 浏览

disk - 软盘扇区如何编号

我想知道软盘扇区是如何排序的,我目前正在编写一个程序来访问软盘的根目录(fat12 格式的高密度),我可以在第 13h 扇区进行调试,但在汇编中它位于磁头 1 磁道0 扇区 2 为什么是扇区 13h,而不是磁头 0 磁道 1 扇区 1?

0 投票
2 回答
1228 浏览

operating-system - 制作定制版mikeOS的可启动闪存驱动器

使用 Hyper-V,我正在运行 Windows XP 机器,并且我还安装了一个虚拟软盘驱动器,使用以下代码,我将 bootloader.bin 写入虚拟软盘驱动器。

这适用于虚拟软盘驱动器。我正在使用 NASM 编译 asm 文件。但是,我想在闪存驱动器上获取我的自定义操作系统以及新的 kernel.bin。现在,我看到 mikeOS 源有一个 ISO 映像,但我无法使用传统方法在我的闪存驱动器上获取它,因为它使用自己的引导程序。

我正在寻找一种可以让这个操作系统在任何 x86 PC 上运行的方法。我需要一种迁移存储的方法。另外,我不想为此使用 CD-R。内存应该是可重写的。