25

很久以前我有一个苹果][。

我记得命令调用 - 151 但我不记得它做了什么?

4

5 回答 5

25

呼叫-151

输入机器码监视器——

http://www.skepticfiles.org/cowtext/apple/memorytx.htm

更新:

该链接似乎已失效,这是 Wayback Machine 替代方案:

http://web.archive.org/web/20090315100335/http://www.skepticfiles.org/cowtext/apple/memorytx.htm

这是完整的文章,以防万一 Wayback 消失:

APPLE CALL、PEEK、POKE LIST CALL 144 扫描输入缓冲区 呼叫 151 输入显示器标准

            APPLE CALL、PEEK、POKE LIST

-------------------------------------------------- ----------------------------
调用 -144 扫描输入缓冲区
呼叫 -151 正常进入显示器
呼叫 -155 进入监视器和响铃
调用 -167 进入监视器并重置
CALL -198 响铃(模拟控制 G)
呼叫 -211 打印“错误”并响铃
CALL -259 从磁带读取
呼叫 -310 写入磁带
调用 -321 显示 A、S、Y、P 和 S 寄存器
CALL -380 设置普通视频模式
CALL -384 设置反向视频模式
呼叫 -415 拆卸 20 条指令
呼叫 -458 验证(比较并列出差异)

拨动 60,61 旧开始 - 62,63 旧结束后调用 -468 内存移动
                          64,65 新结局 - 66,67 新星

呼叫 -484 移动
CALL -517 显示字符和更新屏幕位置
调用 -531 显示字符、掩码控制字符并保存 7 个寄存器。& 累加器
CALL -550 显示 A 寄存器的十六进制值(累加器)
呼叫 -656 响铃并等待回车

CALL -657 GET LINE OF INPUT,NO PROMPT,NO L/F, & WAIT(COMMA,COLON OK
调用 -662 获取输入行,有提示,无 L/F 和等待
调用 -665 获取输入行,带有提示、换行和等待
上述 3 次调用 (-657, -662, -665) 指的是来自 512-767 的输入缓冲区

呼叫 -715 获取字符
呼叫 -756 等待按键
CALL -856 时间延迟(戳 69,XX 设置延迟时间)
调用 -868 清除从光标到行尾的光标行
呼叫 -912 将文本向上滚动 1 行
呼叫 -922 换行
呼叫 -936 清除屏幕(主页)
CALL -958 从光标到屏幕底部清除屏幕
CALL -998 将光标上移 1 行
CALL -1008 将光标向后移动 1 个空格
调用 -1024 仅显示字符
调用 -1036 将光标向前移动 1 个空格
呼叫 -1063 向电流输出设备发送铃
呼叫 -1216 文本和图形模式
调用 -1233 将光标移动到屏幕底部
呼叫 -1321 控制 E
调用 -1717 将光标下移 5 行
呼叫 -1840 拆卸 1 指令
呼叫 -1953 更改颜色 +3
CALL -1994 清除 LO-RES 屏幕(前 40 行)
CALL -1998 清除图形屏幕 (LO-RES)
CALL -2007 垂直线
CALL -2023 水平线
致电 -2458 进入迷你组装机
呼叫 -3100 打开第 1 页,无需清除它
呼叫 -3776 保存整数
CALL -3973 加载整数
调用 -6090 运行整数
CALL -8117 列出整数
呼叫 -8189 输入基本信息并继续
CALL -8192 ENTER BASIC 和 RESET (INTEGER BASIC KILL)
呼叫 -16303 文本模式
呼叫 -16304 图形模式
呼叫 -16336 切换扬声器
致电 42350 目录磁盘
调用 54915 清理堆栈,清除“内存不足”错误
呼叫 64166 启动冷启动(磁盘引导)
致电 64246 全新 - 你想办法

呼叫 64367 扫描内存 LOC 1010 和 1011 并将值插入位置
           1012 等于 (PEEK(1011)-165)

-------------------------------------------------- ----------------------------
PEEK 33 文本窗口宽度 (1-40)
PEEK 34 顶部边缘的文本窗口 (0-22)
PEEK 35 文字窗口底部 (1-24)
PEEK 36 水平光标位置 (0-39)
PEEK 37 垂直光标位置 (0-23)
PEEK 43 引导槽 X 16(引导后)
最后一个 HLIN、VLIN 或绘图的 PEEK 44 端点
PEEK 48 LO-RES 颜色值 X 17

PEEK 50 文本输出格式:63=反向 255=正常
           127=闪光(PEEK 243 设置为 64)

PEEK 51 提示字符
PEEK 74,75 LOMEM 地址 (INT)
PEEK 76,77 HIMEM 地址 (INT)
PEEK 103,104 FP 程序起始地址
PEEK 104 如果返回 8,则 FP 在 ROM 中
PEEK 105,106 FP 可变空间起始地址
PEEK 107,108 FP 阵列起始地址
PEEK 109,110 FP 数字存储地址结束
PEEK 111,112 FP 字符串存储起始地址
PEEK 115,116 FP HIMEM 地址
PEEK 117,118 FP 行号正在执行
程序停止时的 PEEK 119,120 FP 行
PEEK 121,122 FP 行正在执行地址
PEEK 123,124 正在读取数据的行
PEEK 125,126 数据位置地址
PEEK 127,128 输入或数据地址
PEEK 129,130​​ FP 最后使用的变量名
PEEK 131,132 FP 上次使用的变量地址
PEEK 175,176 FP 程序结束地址
PEEK 202,203 INT 程序起始地址
PEEK 204,205 INT 变量存储结束
PEEK 214 FP 运行标志(自动运行 IF >127)
PEEK 216 ONERR 标志(>127 如果 ONERR 处于活动状态)
PEEK 218,219 发生错误的行
PEEK 222 ONERR 错误代码
PEEK 224,225 最后一个 HPLOT 的 X 坐标
最后一个 HPLOT 的 PEEK 226 Y 坐标
PEEK 228 盐酸值 0=0 85=2 128=4 213=6
                42=1 127=3 170=5 255=7
PEEK 230 高分辨率绘图页(32=第 1 页 64=第 2 页 96=第 3 页)
PEEK 231 刻度值
PEEK 232,233 形状表起始地址
PEEK 234 高分辨率碰撞计数器
PEEK 241 256 负速度值
PEEK 243 闪光面罩(64=当 PEEK 50 设置为 127 时闪光)
PEEK 249 腐烂值
PEEK 976-978 DOS 重新进入向量
PEEK 1010-1012 重置矢量
PEEK 1013-1015 与号 (&) 矢量
PEEK 1016-1018 CONTROL-Y 矢量
PEEK 43140-43271 DOS 命令表
PEEK 43378-43582 DOS 错误消息表
PEEK 43607 MAXFILES 值
PEEK 43616,46617 上次加载的长度
PEEK 43624 驱动器号
PEEK 43626 插槽号
PEEK 43634,43635 上次 BLOAD 的起始地址
PEEK 43697 MAXFILES 默认值
PEEK 43698 DOS 命令字符
PEEK 43702 基本标志(0=INT 64=FP ROM 128=FP RAM)
PEEK 44033 目录编号(17 为标准)
PEEK 44567 目录文件名中的字符数减 1
PEEK 44611 位数减 1 扇区数和体积数
PEEK 45991-45998 文件类型代码表
PEEK 45999-46010 磁盘卷标题
PEEK 46017 磁盘卷号
PEEK 46064 扇区数(13=DOS 3.2 16=DOS 3.3)
PEEK 49152 读键盘(如果 >127 则按键已被按下
PEEK 49200 拨动式扬声器(点击)
PEEK 49248 盒式输入(>127=BINARY 1, 127 如果按钮按下)
PEEK 49250 桨 1 按钮 (>127 IF 按钮按下 GD)
PEEK 49251 桨 2 按钮 (>127 如果按钮按下)
PEEK 49252 阅读游戏桨 0 (0-255)
PEEK 49253 阅读游戏桨 1 (0-255)
PEEK 49254 阅读游戏桨 2 (0-255)
PEEK 49255 阅读游戏桨 3 (0-255)
PEEK 49408 读取槽 1
PEEK 49664 读取槽 2
PEEK 49920 读取槽 3
PEEK 50176 读取槽 4
PEEK 50432 读取槽 5
PEEK 50688 读取插槽 6(162=磁盘控制卡)
PEEK 50944 读取槽 7

PEEK 64899 指示您正在使用哪台计算机
           223=Apple II 或 II+,234=FRANKLIN ACE 或?,255=APPLE IIE

POKE 33,33 SCRUNCH 列表并删除报价单中的空格
POKE 36,X 用作打印机选项卡 (X=TAB - 1)
POKE 50,128 使屏幕上的所有输出不可见
POKE 50,随机打乱输出到屏幕
POKE 51,0 击败“非直接命令”,有时不起作用
POKE 82,128 使盒式磁带程序在加载时自动运行
POKE 214,255 设置在 FP 中运行标志和任何键击都将运行磁盘程序
POKE 216,0 取消 ONERR 标志

POKE 1010,3 设置复位向量以启动
POKE 1011,150 冷启动(启动)

戳 1010,102 使
戳 1011,213 重置
戳 1012,112 运行

POKE 1014,165 设置与号 (&) 向量
戳 1015,214 列出您的程序

POKE 1014,110 设置与号 (&) 向量
将 1015,165 插入磁盘目录

POKE 1912+SLOT,1 ON APPLE PARALLEL CARD (with P1-02 PROM) 将启用 L/F'S
POKE 1912+SLOT,0 ON APPLE PARALLEL CARD (with P1-02 PROM) 将启用 L/F'S

POKE 2049,1 这将导致第一行程序重复列出
POKE 40514,20 允许文本文件问候程序
POKE 40514,52 允许二进制文件问候程序

戳 40993,24 这允许
POKE 40994,234 磁盘命令
POKE 40995,234 直接模式

POKE 42319,96 禁用初始化命令

戳 42768,234 全部取消
POKE 42769,234 DOS 错误
戳 42770,234 条消息
POKE 43624,X 选择磁盘驱动器而不执行命令(48K 系统)

POKE 43699,0 关闭执行文件,但在 FP 之前将其打开,关闭
POKE 43699,1 重新打开一个执行文件。初始化或 MAXFILES 问题

POKE 44452,24 允许 20 个文件名(额外 2 个)
在目录暂停前戳 44605,23

POKE 44505,234 显示已删除的文件
在目录中戳 44506,234 个名字

POKE 44513,67 目录将只返回锁定的文件
POKE 44513,2 目录恢复正常
POKE 44578,234 取消运输
POKE 44579,234 目录后返回
戳 44580,234 个文件名

戳 44596,234 取消
POKE 44597,234 目录停止
屏幕已满时戳 44598,234

POKE 44599,234 停止每个文件的目录
POKE 44600,234 命名并等待按键

POKE 46922,96 这允许磁盘
POKE 46923,234 初始化
戳 46924,234 不放
在磁盘上戳 44723,4 DOS

POKE 49107,234 预防语言
加载中的 POKE 49108,234 卡
重新启动期间戳 49109,234

POKE 49168,0 透明键盘
POKE 49232,0 显示图形
POKE 49233,0 显示文本
POKE 49234,0 显示完整图形
POKE 49235,0 显示文本/图形
POKE 49236,0 显示图形第 1 页
POKE 49237,0 显示图形第 2 页
POKE 49238,0 显示知识
POKE 49239,0 显示雇用
-------------------------------------------------- ----------------------------

                48K 内存图

   十进制十六进制用法
-------------------------------------------------- ----------------------------
    0-255 $0-$FF 零页系统存储
  256-511 $100-$1FF 系统堆栈
  512-767 $200-$2FF 键盘字符缓冲器
  768-975 $300-$3CF 通常作为免费空间提供给用户程序
  976-1023 $3D0-3FF 系统向量
 1024-2047 $400-$7FF 文字和 LO-RES 图形 第 1 页
 2048-LOMEM 800 美元的 LOMEM 程序存储
 2048-3071 $800-$BFF 文字和 LO-RES 图形第 2 页或可用空间
 3072-8191 $C00-$1FFF 可用空间,除非 RAM APPLESOFT 正在使用中
 8192-16383 $2000-$3FFF 高分辨率第 1 页或免费空间
16384-24575 $4000-$5FFF 高分辨率第 2 页或免费空间
24576-38999 $6000-$95FF 可用空间和字符串存储
38400-49151 $9600-$BFFF DOS
49152-53247 $C000-$CFFF I/O 硬件(保留)
53248-57343 $D000-$DFFF APPLESOFT 语言卡或 ROM
57344-63487 $E000-$F7FF APPLESOFT 或 INTEGER BASIC 语言卡或 ROM
63488-65535 $F800-$FFFF 系统监视器


PEEK:检查任何内存位置 L,打印 PEEK (L),其中 L 是小数
号码 0-65535。在后续位置 L 和
L+1,打印 PEEK (L) + PEEK (L+1) * 256

POKE:将值 X (0-255) 分配给位置 L;戳 L,X。戳两字节
数字(如果 X>255 则需要)、POKE L,X-INT(X/256)*256 和 POKE L+1,INT(X/256)。

CALL:要在位置 L 执行机器语言子程序,请调用 L。


只是为了好玩试试这个:戳 33,90。然后尝试列出您的程序。或尝试:
0,99 或戳 50,250 或戳 50,127。使用复位返回正常。

对于真正的随机数生成,试试这个:X= RND(PEEK(78)+PEEK(79)*256)

要找到最后一个加载文件的起始地址,请使用:PEEK(-21902)+PEEK
(-21901)*256(结果为十六进制)

确定最后加载文件的长度使用:PEEK(-21920)+PEEK(-21919
*256(结果为十六进制)

要确定导致错误发生的行号,请将 X 设置为:PEEK(218
+窥视(219)*256

-------------------------------------------------- ----------------------------

电子邮件 Fredric L. Rice / 怀疑论者坦克

于 2008-09-27T10:37:13.857 回答
11

调用 -151 进入监视器,3D0G 将您带回 BASIC,然后在监视器中键入插槽 #,然后按 Ctrl-P 将启动该设备。令人惊讶的是20年后的记忆!

于 2010-03-29T01:55:19.723 回答
2

我还可以补充一点,-151 是苹果 ][ 表示十六进制数的方式,应该表示 $FF69(Apple II 中使用的十六进制语法,即 0xFF68)。CALL 是一个 Apple Basic 命令,它调用由参数(此处为 -151)给出的程序集子例程。IIRC,此命令可以接受地址作为负十进制值,用于使用 2 的补码解释在 $8000-$FFFF 之间的地址。

对于那些对历史感兴趣的人,这里是 Apple ][ 的监视器 rom 列表(在 6502 程序集中),地址 $FF69 带有标签 MONZ,它是处理来自用户的机器代码处理命令的命令提示符的开始。使用“*”作为提示符的一种。一个非常原始的命令提示符。

Apple II 系统监视器

于 2015-11-04T13:02:33.123 回答
1

克里基,那是过去的爆炸。我认为它进入了监视器 ROM(我在这和 Integer BASIC 之间纠结,但我很确定它是监视器)。

您可以下载 Apple II 模拟器并找出答案。

于 2008-09-27T10:38:44.617 回答
0

作为旁注,这是一个负数而不是正确的CALL 65385的原因是因为 Apple II 的第一种 BASIC 形式被称为 Integer BASIC。它只理解从-32768到32767的带符号的16位整数值,因此不可能以正常的正值方式直接寻址超过32767的内存。

如果您尝试在 Integer BASIC 中实际输入 POKE 49200,0 或 CALL 65385,您将收到类似“>32767 ERR”的消息

当使用浮点数替换 Microsoft Applesoft BASIC(是的,来自他们)时,它们包括对负 POKE 值的支持,以便在一定程度上向后兼容旧的 Integer BASIC 程序。尽管这种兼容性是有限的,因为 Applesoft 缺少 Integer 的其他编程功能,例如 MOD 除法余数。

由于早期 Integer BASIC 编程方法的强大影响,有许多 PEEK POKE 和 CALL 命令通常只能通过其十六进制和负十进制值来识别,而不能通过其正十进制值来识别。

于 2020-06-27T21:43:39.490 回答