rpcDrive

rpcDrive

RedPower 2 ComputerCraft 磁盘驱动器兼容附加组件。

技术

在20世纪80年代,软件开发公司使用更强大的计算机来为性能较弱的机器创建和调试软件是非常普遍的现象。本着这种精神,rpcDrive 是一个 Minecraft 模组,它在 RedPower 2 的磁盘驱动器和 ComputerCraft 的计算机之间添加了跨模组兼容性,允许使用 Lua 脚本从 RedPower 2 基于 65EL02 的计算机生态系统中读取数据和向其写入数据。

此外,该模组还附带一个内置(自动安装)的实用工具,名为 rpc/drive,它允许对 RP2 软盘执行基本的读取、写入和复制操作。

ComputerCraft API 文档

RP2 磁盘驱动器被注册为类型为 rp_drive 的外设。需要注意的是,该模组的软盘是以 128 字节扇区为单位进行操作的;rp_drive 外设提供了一个内部 128 字节缓冲区,扇区数据从中读取并写入。

索引和扇区计数均以 1 为起始索引,这与 Lua 中的惯例一致。

名称 参数 描述
isPresent - 如果存在软盘则返回 true。
hasData - 如果软盘包含数据则返回 true。
isReadable - 如果插入的软盘可读取则返回 true。
isWritable - 如果插入的软盘可读取则返回 true。
getSerialNumber => string 以字符串形式返回软盘的内部标识符(其“序列号”)。
getLabel => string 获取软盘的可显示标签。
setLabel newLabel (string) 设置软盘的可显示标签。
getBytesPerSector => number 返回一个扇区中的字节数;通常为 128。
getSectorCount => number 返回插入的软盘当前已写入的扇区数。
getSectorSize => number 返回插入的软盘上的总扇区数,包括从未写入过的扇区。
readSector sectorIndex (number) 从磁盘读取一个扇区到内部缓冲区。
writeSector sectorIndex (number) 将内部缓冲区中的一个扇区写入磁盘。
erase - 擦除软盘的内容。
initialize - 初始化一张空软盘;这会为其分配一个新的序列号。请注意,向空软盘写入扇区会自动初始化它。
getBufferByte index (number) 从内部缓冲区读取一个字节。
setBufferByte index (number), value (number) 向内部缓冲区写入一个字节。