问题标签 [16-bit]

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 回答
302 浏览

winapi - 无法再启动 16 位应用程序

我正在尝试使用 C++ 编写的 Win32 宏应用程序来调试和解决一些问题,但是我遇到了最奇怪的问题。

我必须启动一个 16 位程序,然后模拟输入数据,并且使用 ShellExecute 已经两年多了。我根本没有接触过这个实际的代码,但现在它不起作用。

我在做ShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);。这多年来一直完美无缺,但突然之间,它停止了工作。它给了我一个 ACCESS_DENIED 错误代码。我在 Google 上搜索过,显然这是启动 16 位应用程序时非常常见的问题。

工作站 XP SP2 环境根本没有改变,它实际上一直在工作,直到我不久前重建(我之前已经重建过很多次)。

代码位于窗口过程函数中,当我将其取出并在 WinMain 函数中启动程序时,它可以工作,但代码必须在窗口过程中......

我尝试了许多替代方案,但它们都给出了相同的问题。

最大的问题是它正在工作,然后突然决定它不会改变代码和环境!事实上,它认为它会停止工作的测试更改大约进行到一半。

请帮忙,因为没有程序启动我什么都做不了。这是我正在调试的代码的第一步!

0 投票
6 回答
6222 浏览

c - 写入 16 位原始 PCM 文件的问题

作为一个小型实验音乐作品,我正在尝试用标准 C 编写一首歌曲。代码输出一个原始 PCM 文件,可以将其导入 Audacity。目前一切都按预期工作,但我在尝试将每个样本写入 16 位而不是我正在使用的当前 8 位时遇到问题。

在写入之前,当前样本被计算为浮点数,其边界几乎保持在有符号 8 位整数的范围内。然后在对下一个样本重复该过程之前将其写入为 8 位整数。这可以正常工作并且可以正常播放。当我尝试将其写为 16 位原始 PCM 文件时会出现问题 - 我将浮点数乘以 256 并将结果复制到一个整数,然后我使用 fwrite 写入生成的 16 位整数。这在导入时没有给出预期的结果,导致我所期望的高度失真的版本。

我在下面添加了有效代码,因为问题只发生在写作阶段。

工作8位代码:

不工作的 16 位代码:

我可能只是遗漏了一些明显的东西,但我一直在努力解决几个小时。提前致谢!

0 投票
1 回答
5303 浏览

assembly - 硬件中断列表

是否有任何硬件中断列表?我正在编写一个 16 位应用程序,我想检查一些 INT,但是我在 google 中找不到任何有用的东西,可以提供一些关于它的文档吗?如果可能,请提供详细信息。

对不起,如果它不是一个有效的请求,但它是我认为唯一适合这个问题的地方

提前致谢

0 投票
3 回答
991 浏览

nasm - 使用 nasm 关闭计算机

是否可以从 nasm 关闭或切断计算机的电源(有区别吗?)。我知道您可以使用它来重新启动:

是否有相当于关闭的方法?我正在制作自己的 16 位操作系统。

0 投票
7 回答
18841 浏览

64-bit - 什么是 16、32 和 64 位架构?

对于微处理器和/或操作系统,16 位、32 位和 64 位架构意味着什么?

在微处理器的情况下,这是否意味着 s 的最大大小General Purpose Register或 s 的大小Integer或数量Address-line或 s 的数量Data Bus line或什么?

DOS is a 16-bit OS我们所说的“ ”、“ ”等是什么意思Windows in a 32-bit OS

0 投票
1 回答
11795 浏览

c# - ushort (UInt16) 上的 C# 按位移位

我需要对 16 位整数(ushort / UInt16)执行按位左移,但 C# 中的按位运算符似乎仅适用于 int(32 位)。如何在 ushort 上使用 <<,或者至少通过简单的解决方法获得相同的结果?

0 投票
6 回答
2399 浏览

c - 16 位 C 编译器是如何工作的?

C 的内存模型,以及它对指针算法的使用,似乎是对平面地址空间的建模。16 位计算机使用分段内存访问。16 位 C 编译器如何处理这个问题并从 C 程序员的角度模拟平面地址空间?例如,以下代码在 8086 上大致会编译成哪些汇编语言指令?

0 投票
1 回答
1066 浏览

installation - 替代 16 位安装程序,程序需要短文件名吗?

我有一个只有 16 位安装程序的旧游戏(Westwood Monopoly CD-ROM),因此它无法在我的 Windows 7 x64 上运行。为了解决这个问题,我决定使用 Inno Setup 来制作一个新的安装程序。游戏本身是 32 位的,但不支持 LFN,可以在 Vista/7 上运行,但是如果我使用 Inno Setup 构建的安装程序未在检查 Windows 95 兼容性的情况下运行,游戏将会崩溃。

通过打开兼容模式生成的文件夹与未检查兼容性设置生成的文件夹之间没有文件或属性差异。但是,游戏只会在安装了兼容模式的文件夹中运行,游戏 exe (Monopoly.exe) 本身无法启用任何兼容模式选项,或者当您尝试保存、加载或选择其中一台计算机时游戏终止。播放器文件。如果在没有为安装程序设置兼容模式的情况下创建的文件夹中的 Monopoly.exe 开启了 95 的兼容模式,则游戏将加载但由于上述原因而无法播放。

我的猜测是 Windows 95 设置强制创建短文件名,而没有它,游戏无法找到它的文件,因为短文件名信息不存在。为安装程序设置兼容模式并不是理想的解决方案,因为我需要能够根据检测到的 Windows 版本复制不同的 exe(Aero 导致部分屏幕被切断,所以我使用带有更大的默认大小)。

所以我的问题是:有没有办法强制 Inno 设置在复制时创建短文件名信息,或者有没有办法在完成后用命令添加它(即修复损坏的文件夹,以便游戏可以找到它的文件)?

0 投票
3 回答
1997 浏览

cocoa - 请帮助 CGBitmapContext 和 16 位图像

我很想知道我在这里做错了什么。我是 CGImageRefs 的新手,所以任何建议都会有所帮助。

我正在尝试创建一个位图图像,其像素值是来自另一个位图的像素的加权和,并且两个位图都是每个通道 16 位。出于某种原因,我可以毫不费力地让它与 8 位图像一起使用,但它在 16 位时却惨遭失败。我的猜测是我只是没有正确设置。我尝试使用 CGFloats、floats 和 UInt16s 作为数据类型,但没有任何效果。输入图像没有 Alpha 通道。我得到的输出图像看起来像彩色雪。

标题中的相关内容:

我使用以下方法为输入位图(使用 CGImageSourceCreateImageAtIndex(source, 0, NULL) 创建的 CGImageRef)创建上下文:

输出位图的上下文以相同的方式创建。我使用以下方法将 inBitmap 绘制到 inContext 中:

然后我像这样初始化 inBaseAddress 和 outBaseAddress:

然后我用 inBaseAddress 中的值填充 outBaseAddress:

作为一个简单的检查,我尝试过:

这有效,至少意味着位图数据的上下文和指针正在工作。

感谢您的任何意见。这非常令人沮丧,因为它适用于 8 位图像。

0 投票
1 回答
1000 浏览

c - 使用 DirectSound 播放立体声 PCM

嘿,我有一个使用 DirectSound 制作的简单 16 位 PCM 播放器。但是当它播放时,它似乎只播放一个扬声器而不是两个。

我不知道要准确发布什么代码,所以如果您需要任何代码,您必须告诉我。我可以说我使用创建声音缓冲区,并使用以下方法锁定流: