Board logo

标题: [其他] ascode 应用之 仿控制台全屏效果 full.com [打印本页]

作者: CrLf    时间: 2012-12-23 15:20     标题: ascode 应用之 仿控制台全屏效果 full.com

本帖最后由 CrLf 于 2012-12-23 23:33 编辑

作用是模仿 Alt+Enter 的全屏效果(vista 及其后系统不支持控制台全屏)
  1. @echo off&chcp 437|GRAFTABL>nul 936
  2. echo>full.com 4pP_W]5/0)C5)C;(C=5M0,A4@4c,A" //full.com 适用于 xp 系统的全屏工具
  3. full
  4. echo 正处于全屏状态下
  5. pause
复制代码
实际上就是那句广为流传的全屏代码的 ascode 版,优势在于少调用两次外部命令
以前用的全屏代码(来自网络):
  1. @echo off&chcp 437|GRAFTABL>nul 936
  2. echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
  3. echo 正处于全屏状态下
  4. pause
复制代码

作者: cutebe    时间: 2012-12-23 16:22

本帖最后由 cutebe 于 2012-12-23 16:27 编辑

什么是 ascode ? 有点像 ass
不好意思,原来帖已发。
作者: Demon    时间: 2012-12-23 22:40

那个广为流传的代码多调用一次int 10h是啥意思?
作者: CrLf    时间: 2012-12-23 23:46

回复 3# Demon


    之前试过单独的 mov ax,0012 & int 10h 貌似会花屏(话说我的com发错了撒,新的放在虚拟机里忘了),而单独的 mov ax,0003 & int 10h 似乎没有全屏效果,所以这俩应该都不是多余的。
手头一份资料或有参考价值,大意为:
int 10h 中断 ah=0 的功能里,al=0~3 是切换文字模式,al=4~6 是切换图形模式


另一份资料更详细一点,但没有明确说明 文字模式 和 图形模式:
功能号:00H
功能:设置显示模式
入口参数:AH=00H
   AL=显示模式
显示模式列表:

显示模式 显示模式属性
00H       40×25    16色 文本
01H       40×25    16色 文本
02H       80×25    16色 文本
04H       320×200   4色
05H       320×200   4色
06H       640×200   2色
07H       80×25     2色 文本
08H       160×200 16色
09H       320×200 16色
0AH       640×200   4色
0BH       保留
0CH       保留
0DH       320×200 16色
0EH       640×200 16色
0FH       640×350   2色(单色)
10H       640×350   4色
11H       640×480   2色
12H       640×480 16色
13H       320×200 256色


尝试输入运行:
  1. debug
  2. a
  3. mov ah,f
  4. int 10
  5. mov ax,12
  6. int 10
  7. mov ah,f
  8. int 10
  9. ret
  10. p6
复制代码
观察到默认运行于 3 模式下,当使用 12 模式切换到全屏时模式变为 12(此时若 q 退回 cmd 下会出现花屏),所以需要再切回模式 3 以恢复默认的文字模式,知其然,不知其所以然
作者: 老刘1号    时间: 2017-3-7 12:34

哈哈,用纯文本来写汇编程序
这个也是拼了
搞这个至少需要精通8086汇编并且Ascii表倒背如流吧
我还是不掘这个坑了,DEBUG挺好用的说




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2