这次的文章超4w字!全是干货!
一、先看看示例代码
; 初始化文本模式视频
mov ah, 0x00
mov al, 0x03 ; 80x25 文本模式
int 0x10
; 设置矩形的起始坐标和大小
mov dh, 0 ; 矩形上边的 y 坐标
mov dl, 0 ; 矩形左边的 x 坐标
mov bh, 0 ; 页面号
mov cx, 0 ; 矩形的宽度和高度
mov cl, 10 ; 宽度
mov ch, 10 ; 高度
; 绘制矩形
draw_rect1:
; 设置光标位置
mov ah, 0x02
int 0x10
; 设置矩形颜色
mov ah, 0x09
mov al, ' ' ; 空格字符
mov bl, 0x1E ; 使用预设的蓝底黄字
int 0x10
add dl, 1
loop draw_rect1
其实多多少少有点伪代码的意思
和ipl编译一下,虚拟机看到蓝屏
!!!IPL.asm更新了!!!亲测有效
; TAB=4
CYLS EQU 10 ; 声明CYLS=10
ORG 0x7c00 ; 指明程序装载地址
; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code
JMP entry
DB 0x90
DB "HAN " ; 启动扇区名称(8字节)
DW 512 ; 每个扇区(sector)大小(必须512字节)
DB 1 ; 簇(cluster)大小(必须为1个扇区)
DW 1 ; FAT起始位置(一般为第一个扇区)
DB 2 ; FAT个数(必须为2)
DW 224 ; 根目录大小(一般为224项)
DW 2880 ; 该磁盘大小(必须为2880扇区1440*1024/512)
DB 0xf0 ; 磁盘类型(必须为0xf0)
DW 9 ; FAT的长度(必??9扇区)
DW 18 ; 一个磁道(track)有几个扇区(必须为18)
DW 2 ; 磁头数(必??2)
DD 0 ; 不使用分区,必须是0
DD 2880 ; 重写一次磁盘大小
DB 0,0,0x29 ; 意义不明(固定)
DD 0xffffffff ; (可能是)卷标号码
DB "HANOS " ; 磁盘的名称(必须为11字?,不足填空格)
DB "FAT12 " ; 磁盘格式名称(必??8字?,不足填空格)
RESB 18 ; 先空出18字节
; 程序主体
entry:
MOV AX,0 ; 初始化寄存器
MOV SS,AX
MOV SP,0x7c00
MOV DS,AX
; 读取磁盘
MOV AX,0x0820
MOV ES,AX
MOV CH,0 ; 柱面0
MOV DH,0 ; 磁头0
MOV CL,2 ; 扇区2
readloop:
MOV SI,0 ; 记录失败次数寄存器
retry:
MOV AH,0x02 ; AH=0x02 : 读入磁盘
MOV AL,1 ; 1个扇区
MOV BX,0
MOV DL,0x00 ; A驱动器
INT 0x13 ; 调用磁盘BIOS
JNC next ; 没出错则跳转到next
ADD SI,1 ; 往SI加1
CMP SI,5 ; 比较SI与5
JAE error ; SI >= 5 跳转到error
MOV AH,0x00
MOV DL,0x00 ; A驱动器
INT 0x13 ; 重置驱动器
JMP retry
next:
MOV AX,ES ; 把内存地址后移0x200(512/16十六进制转换)
ADD AX,0x0020
MOV ES,AX ; ADD ES,0x020因为没有ADD ES,只能通过AX进行
ADD CL,1 ; 往CL里面加1
CMP CL,18 ; 比较CL与18
JBE readloop ; CL <= 18 跳转到readloop
MOV CL,1
ADD DH,1
CMP DH,2
JB readloop ; DH < 2 跳转到readloop
MOV DH,0
ADD CH,1
CMP CH,CYLS
JB readloop ; CH < CYLS 跳转到readloop
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
; 读取完毕,跳转到haribote.sys执行!
MOV [0x0ff0],CH
JMP n
error:
MOV SI,msg
putloop:
MOV AL,[SI]
ADD SI,1 ; 给SI加1
CMP AL,0
JE fin
MOV AH,0x0e ; 显示一个文字
MOV BX,15 ; 指定字符颜色
INT 0x10 ; 调用显卡BIOS
JMP putloop
fin:
HLT ; 让CPU停止,等待指令
JMP fin ; 无限循环
msg:
DB 0x0a, 0x0a ; 换行两次
DB "load error"
DB 0x0a ; 换行
DB 0
n:
times 510-($-$$) db 0 ; 填写0x00直到0x001fe
DB 0x55, 0xaa
不用org了,org在nasm总是出问题
二、结合HanOS内核代码+优化
这里不放代码,太多代码容易晕
效果图
下面提供代码
密集恐惧症慎看
mov ah, 0x00
mov al, 0x03 ; 80x25 文本模式
int 0x10
; 设置矩形的起始坐标和大小
mov dh, 0 ; 矩形上边的 y 坐标
mov dl, 0 ; 矩形左边的 x 坐标
mov bh, 0 ; 页面号
mov cx, 0 ; 矩形的宽度和高度
mov cl, 10 ; 宽度
mov ch, 10 ; 高度
; 绘制矩形
draw_rect:
; 设置光标位置
mov ah, 0x02
int 0x10
; 设置矩形颜色
mov ah, 0x09
mov al, ' ' ; 空格字符
mov bl, 0x04 ; 使用预设的蓝色
int 0x10
add dl, 1
loop draw_rect
mov ah, 02h
xor bh, bh
mov dh, 0
mov dl, 0
int 10h
jmp .start
.wait_input3:
mov ah, 0x00
int 0x16
cmp al, 0x0D
je .error
mov ah, 0x0E
int 0x10
jmp .wait_input3
.wait_input4:
mov ah, 0x00
int 0x16
cmp al, 0x0D
je .error
mov ah, 0x0E
mov al, '*'
int 0x10
jmp .wait_input4
.error:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'E'
int 0x10
mov al, 'R'
int 0x10
mov al, 'R'
int 0x10
mov al, 'O'
int 0x10
mov al, 'R'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
jmp .check_input_pass
.start:
mov si, 0
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '`'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '"'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '('
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ')'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ','
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
.check_input_pass:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '('
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, 'p'
int 0x10
mov al, 'a'
int 0x10
mov al, 's'
int 0x10
mov al, 's'
int 0x10
mov al, 'w'
int 0x10
mov al, 'o'
int 0x10
mov al, 'r'
int 0x10
mov al, 'd'
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'a'
int 0x10
mov al, 'd'
int 0x10
mov al, 'm'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'A'
int 0x10
mov al, 'D'
int 0x10
mov al, 'M'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, ':'
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'l'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'h'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'o'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'g'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'h'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'a'
jne .wait_input3
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input3
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input3
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'S'
int 0x10
mov al, 'S'
int 0x10
mov al, 'W'
int 0x10
mov al, 'O'
int 0x10
mov al, 'R'
int 0x10
mov al, 'D'
int 0x10
mov al, ':'
int 0x10
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
mov ah, 0x00
int 0x16
cmp al, 0x0D
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input4
_start:
; 初始化文本模式视频
mov ah, 0x00
mov al, 0x03 ; 80x25 文本模式
int 0x10
; 设置矩形的起始坐标和大小
mov dh, 0 ; 矩形上边的 y 坐标
mov dl, 0 ; 矩形左边的 x 坐标
mov bh, 0 ; 页面号
mov cx, 0 ; 矩形的宽度和高度
mov cl, 10 ; 宽度
mov ch, 10 ; 高度
; 绘制矩形
draw_rect1:
; 设置光标位置
mov ah, 0x02
int 0x10
; 设置矩形颜色
mov ah, 0x09
mov al, ' ' ; 空格字符
mov bl, 0x1E ; 使用预设的蓝色
int 0x10
add dl, 1
loop draw_rect1
mov ah, 0x0E
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, ' '
int 0x10
mov al, 'C'
int 0x10
mov al, 'o'
int 0x10
mov al, 'm'
int 0x10
mov al, 'm'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'd'
int 0x10
mov dh, 23 ; 矩形上边的 y 坐标
mov dl, 43 ; 矩形左边的 x 坐标
mov bh, 0 ; 页面号
mov cx, 0 ; 矩形的宽度和高度
mov cl, 1 ; 宽度
mov ch, 1 ; 高度
; 绘制矩形
draw_rect2:
; 设置光标位置
mov ah, 0x02
int 0x10
; 设置矩形颜色
mov ah, 0x09
mov al, ' ' ; 空格字符
mov bl, 0xF0 ; 使用预设的蓝色
int 0x10
; 更新坐标并绘制下一个字符
add dl, 1
loop draw_rect2
start:
mov ah, 02h
xor bh, bh
mov dh, 0
mov dl, 0
int 10h
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '`'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '"'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '('
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ')'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ','
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
.print:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, '/'
int 0x10
inc cx
cmp cx, 5
je _start
cmp si, 1
je .c
cmp si, 2
je .d
cmp si, 6
je .cSystem
mov al, '>'
int 0x10
mov al, '>'
int 0x10
.wait_input:
mov ah, 0x00
int 0x16
cmp al, 'c'
je .check_input_c1
cmp al, 'e'
je .check_input_e
cmp al, 'p'
je .check_input_print.py
cmp al, '.'
je .check_input_.
cmp al, 'l'
je .check_input_l
cmp al, 'W'
je .check_input_WiFi
cmp al, 'w'
je .writer
cmp al, 'R'
je .README
cmp al, 'h'
je .help
cmp al, 0x0D
je .bad_input
mov ah, 0x0E
int 0x10
jmp .wait_input
.wait_input2:
mov ah, 0x00
int 0x16
cmp al, 0x0D
je .bad_input
mov ah, 0x0E
mov al, '*'
int 0x10
jmp .wait_input2
.c:
mov al, 'C'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, '>'
int 0x10
mov al, '>'
int 0x10
jmp .wait_input
.cSystem:
mov al, 'C'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, 'S'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, '>'
int 0x10
mov al, '>'
int 0x10
jmp .wait_input
.d:
mov al, 'D'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, '>'
int 0x10
mov al, '>'
int 0x10
jmp .wait_input
.check_input_.:
mov ah, 0x0E
int 0x10
cmp si, 6
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '\'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'O'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'S'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '`'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '"'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '('
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ')'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ','
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
jmp .print
.check_input_l:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 's'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
cmp si, 0
je .check_input_l0
cmp si, 1
je .check_input_l1
cmp si, 6
je .check_input_l6
cmp si, 2
je .check_input_l2
.check_input_l0:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'T'
int 0x10
mov al, 'H'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'F'
int 0x10
mov al, 'O'
int 0x10
mov al, 'L'
int 0x10
mov al, 'D'
int 0x10
mov al, 'E'
int 0x10
mov al, 'R'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'C'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'D'
int 0x10
mov al, ':'
int 0x10
jmp .print
.check_input_l1:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'T'
int 0x10
mov al, 'H'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, '/'
int 0x10
mov al, 'C'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'F'
int 0x10
mov al, 'O'
int 0x10
mov al, 'L'
int 0x10
mov al, 'D'
int 0x10
mov al, 'E'
int 0x10
mov al, 'R'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'S'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'F'
int 0x10
mov al, 'I'
int 0x10
mov al, 'L'
int 0x10
mov al, 'E'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, 'N'
int 0x10
mov al, 'A'
int 0x10
mov al, 'M'
int 0x10
mov al, 'E'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'K'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, 'D'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'B'
int 0x10
mov al, 'I'
int 0x10
mov al, 'T'
int 0x10
mov al, 'S'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'i'
int 0x10
mov al, 'p'
int 0x10
mov al, 'l'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'B'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '1'
int 0x10
mov al, 'K'
int 0x10
mov al, 'B'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'h'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'o'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'S'
int 0x10
mov al, 'Y'
int 0x10
mov al, 'S'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '1'
int 0x10
mov al, '4'
int 0x10
mov al, '4'
int 0x10
mov al, '0'
int 0x10
mov al, 'K'
int 0x10
mov al, 'B'
int 0x10
jmp .print
.check_input_l6:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'T'
int 0x10
mov al, 'H'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, '/'
int 0x10
mov al, 'C'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, 'S'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'F'
int 0x10
mov al, 'I'
int 0x10
mov al, 'L'
int 0x10
mov al, 'E'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, 'N'
int 0x10
mov al, 'A'
int 0x10
mov al, 'M'
int 0x10
mov al, 'E'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'K'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, 'D'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'B'
int 0x10
mov al, 'I'
int 0x10
mov al, 'T'
int 0x10
mov al, 'S'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'L'
int 0x10
mov al, 'H'
int 0x10
mov al, 'H'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '1'
int 0x10
mov al, 'K'
int 0x10
mov al, 'B'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'R'
int 0x10
mov al, 'E'
int 0x10
mov al, 'A'
int 0x10
mov al, 'D'
int 0x10
mov al, 'M'
int 0x10
mov al, 'E'
int 0x10
mov al, ' '
int 0x10
mov al, 'M'
int 0x10
mov al, 'D'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '1'
int 0x10
mov al, 'K'
int 0x10
mov al, 'B'
int 0x10
jmp .print
.check_input_l2:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'T'
int 0x10
mov al, 'H'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, '/'
int 0x10
mov al, 'D'
int 0x10
mov al, ':'
int 0x10
mov al, '/'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'F'
int 0x10
mov al, 'I'
int 0x10
mov al, 'L'
int 0x10
mov al, 'E'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, 'N'
int 0x10
mov al, 'A'
int 0x10
mov al, 'M'
int 0x10
mov al, 'E'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'K'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, 'D'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'B'
int 0x10
mov al, 'I'
int 0x10
mov al, 'T'
int 0x10
mov al, 'S'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'h'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'o'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'B'
int 0x10
mov al, 'I'
int 0x10
mov al, 'N'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '2'
int 0x10
mov al, 'K'
int 0x10
mov al, 'B'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'p'
int 0x10
mov al, 'r'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 't'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 'P'
int 0x10
mov al, 'Y'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '1'
int 0x10
mov al, '2'
int 0x10
mov al, 'B'
int 0x10
jmp .print
.check_input_py:
cmp si, 2
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'h'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'o'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, ' '
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'p'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'r'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '.'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'p'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'y'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '6'
int 0x10
mov al, '6'
int 0x10
mov al, '6'
int 0x10
jmp .print
.check_input_e:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'x'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
MOV AL,0x13
MOV AH,0x00
INT 0x10
jmp .done
.check_input_cd0:
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, ' '
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'H'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'a'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'O'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'S'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '/'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'C'
je .check_input_cd1
cmp al, 'D'
je .check_input_cd2
cmp al, 0x0D
jne .wait_input
mov si, 0
jmp .print
.check_input_cd1:
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, ':'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '/'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'S'
je .cd11
cmp al, 0x0D
jne .wait_input
mov si, 1
jmp .print
.cd11:
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'y'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 's'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'e'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'm'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '/'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 0x0D
jne .wait_input
mov si, 6
jmp .print
.check_input_cd2:
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, ':'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '/'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 0x0D
jne .wait_input
mov si, 2
jmp .print
.check_input_c1:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'd'
je .check_input_cd0
cmp al, 'l'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 's'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ax, 0x0600
mov bx, 0x0700
mov cx, 0
mov dx, 0x184f
int 0x10
mov ah, 02h
xor bh, bh
mov dh, 0
mov dl, 0
int 10h
jmp _start
.help:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'e'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'l'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'p'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'c'
int 0x10
mov al, 'l'
int 0x10
mov al, 's'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'c'
int 0x10
mov al, 'd'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'e'
int 0x10
mov al, 'x'
int 0x10
mov al, 'i'
int 0x10
mov al, 't'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'w'
int 0x10
mov al, 'r'
int 0x10
mov al, 'i'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'W'
int 0x10
mov al, 'i'
int 0x10
mov al, 'F'
int 0x10
mov al, 'i'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'h'
int 0x10
mov al, 'e'
int 0x10
mov al, 'l'
int 0x10
mov al, 'p'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'p'
int 0x10
mov al, 'y'
int 0x10
mov al, 't'
int 0x10
mov al, 'h'
int 0x10
mov al, 'o'
int 0x10
mov al, 'n'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'A'
int 0x10
mov al, 'n'
int 0x10
mov al, 'd'
int 0x10
mov al, ' '
int 0x10
mov al, 'm'
int 0x10
mov al, 'o'
int 0x10
mov al, 'r'
int 0x10
mov al, 'e'
int 0x10
mov al, '.'
int 0x10
mov al, '.'
int 0x10
mov al, '.'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
jmp .print
.README:
mov ah, 0x0E
int 0x10
cmp si, 6
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'E'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'A'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'D'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'M'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'E'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '.'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'm'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'd'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '#'
int 0x10
mov al, ' '
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'O'
int 0x10
mov al, 'S'
int 0x10
mov al, ' '
int 0x10
mov al, 'I'
int 0x10
mov al, 'n'
int 0x10
mov al, 't'
int 0x10
mov al, 'r'
int 0x10
mov al, 'o'
int 0x10
mov al, 'd'
int 0x10
mov al, 'u'
int 0x10
mov al, 'c'
int 0x10
mov al, 'e'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'T'
int 0x10
mov al, 'h'
int 0x10
mov al, 'i'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, 'o'
int 0x10
mov al, 'p'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, 'a'
int 0x10
mov al, 't'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 'g'
int 0x10
mov al, ' '
int 0x10
mov al, 's'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, ' '
int 0x10
mov al, 'i'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, 'm'
int 0x10
mov al, 'a'
int 0x10
mov al, 'd'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'b'
int 0x10
mov al, 'y'
int 0x10
mov al, ' '
int 0x10
mov al, 'l'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 'h'
int 0x10
mov al, 'o'
int 0x10
mov al, 'n'
int 0x10
mov al, 'g'
int 0x10
mov al, 'h'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, ','
int 0x10
mov al, ' '
int 0x10
mov al, 'a'
int 0x10
mov al, ' '
int 0x10
mov al, 'C'
int 0x10
mov al, 'h'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 'e'
int 0x10
mov al, 's'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'p'
int 0x10
mov al, 'r'
int 0x10
mov al, 'i'
int 0x10
mov al, 'm'
int 0x10
mov al, 'a'
int 0x10
mov al, 'r'
int 0x10
mov al, 'y'
int 0x10
mov al, ' '
int 0x10
mov al, 's'
int 0x10
mov al, 'c'
int 0x10
mov al, 'h'
int 0x10
mov al, 'o'
int 0x10
mov al, 'o'
int 0x10
mov al, 'l'
int 0x10
mov al, ' '
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'u'
int 0x10
mov al, 'd'
int 0x10
mov al, 'e'
int 0x10
mov al, 'n'
int 0x10
mov al, 't'
int 0x10
mov al, '.'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'T'
int 0x10
mov al, 'h'
int 0x10
mov al, 'i'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, 'k'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, 'n'
int 0x10
mov al, 'e'
int 0x10
mov al, 'l'
int 0x10
mov al, ' '
int 0x10
mov al, 'o'
int 0x10
mov al, 'f'
int 0x10
mov al, ' '
int 0x10
mov al, 'o'
int 0x10
mov al, 'p'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, 'a'
int 0x10
mov al, 't'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 'g'
int 0x10
mov al, ' '
int 0x10
mov al, 's'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, ' '
int 0x10
mov al, 'w'
int 0x10
mov al, 'a'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, 'm'
int 0x10
mov al, 'a'
int 0x10
mov al, 'd'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'b'
int 0x10
mov al, 'y'
int 0x10
mov al, ' '
int 0x10
mov al, 'h'
int 0x10
mov al, 'i'
int 0x10
mov al, 'm'
int 0x10
mov al, 's'
int 0x10
mov al, 'e'
int 0x10
mov al, 'l'
int 0x10
mov al, 'f'
int 0x10
mov al, '.'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'T'
int 0x10
mov al, 'h'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'a'
int 0x10
mov al, 'r'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 't'
int 0x10
mov al, 'h'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'c'
int 0x10
mov al, 'o'
int 0x10
mov al, 'm'
int 0x10
mov al, 'm'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, 'd'
int 0x10
mov al, ' '
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, ' '
int 0x10
mov al, 't'
int 0x10
mov al, 'h'
int 0x10
mov al, 'e'
int 0x10
mov al, ' '
int 0x10
mov al, 'H'
int 0x10
mov al, 'a'
int 0x10
mov al, 'n'
int 0x10
mov al, ' '
int 0x10
mov al, 'O'
int 0x10
mov al, 'p'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, 'a'
int 0x10
mov al, 't'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 'g'
int 0x10
mov al, ' '
int 0x10
mov al, 'S'
int 0x10
mov al, 'y'
int 0x10
mov al, 's'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'm'
int 0x10
mov al, ':'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'c'
int 0x10
mov al, 'l'
int 0x10
mov al, 's'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'c'
int 0x10
mov al, 'd'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'e'
int 0x10
mov al, 'x'
int 0x10
mov al, 'i'
int 0x10
mov al, 't'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'w'
int 0x10
mov al, 'r'
int 0x10
mov al, 'i'
int 0x10
mov al, 't'
int 0x10
mov al, 'e'
int 0x10
mov al, 'r'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'W'
int 0x10
mov al, 'i'
int 0x10
mov al, 'F'
int 0x10
mov al, 'i'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'h'
int 0x10
mov al, 'e'
int 0x10
mov al, 'l'
int 0x10
mov al, 'p'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '`'
int 0x10
mov al, 'p'
int 0x10
mov al, 'y'
int 0x10
mov al, 't'
int 0x10
mov al, 'h'
int 0x10
mov al, 'o'
int 0x10
mov al, 'n'
int 0x10
mov al, '`'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'A'
int 0x10
mov al, 'n'
int 0x10
mov al, 'd'
int 0x10
mov al, ' '
int 0x10
mov al, 'm'
int 0x10
mov al, 'o'
int 0x10
mov al, 'r'
int 0x10
mov al, 'e'
int 0x10
mov al, '.'
int 0x10
mov al, '.'
int 0x10
mov al, '.'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
jmp .print
.bad_input:
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'b'
int 0x10
mov al, 'a'
int 0x10
mov al, 'd'
int 0x10
jmp .print
.done:
ret
jmp .done
.check_input_WiFi:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'F'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'N'
int 0x10
mov al, 'A'
int 0x10
mov al, 'M'
int 0x10
mov al, 'E'
int 0x10
mov al, ':'
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '1'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '2'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '3'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '4'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '5'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'P'
int 0x10
mov al, 'A'
int 0x10
mov al, 'S'
int 0x10
mov al, 'S'
int 0x10
mov al, 'W'
int 0x10
mov al, 'O'
int 0x10
mov al, 'R'
int 0x10
mov al, 'D'
int 0x10
mov al, ':'
int 0x10
mov ah, 0x00
int 0x16
cmp al, '1'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '2'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '3'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '4'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '5'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '6'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '7'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '8'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '9'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, '0'
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x00
int 0x16
cmp al, 0x0D
mov ah, 0x0E
mov al, '*'
int 0x10
jne .wait_input2
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'W'
int 0x10
mov al, 'i'
int 0x10
mov al, 'F'
int 0x10
mov al, 'i'
int 0x10
mov al, ' '
int 0x10
mov al, 'i'
int 0x10
mov al, 's'
int 0x10
mov al, ' '
int 0x10
mov al, 'r'
int 0x10
mov al, 'e'
int 0x10
mov al, 'a'
int 0x10
mov al, 'd'
int 0x10
mov al, 'y'
int 0x10
jmp .print
.check_input_print.py:
mov ah, 0x0E
int 0x10
cmp si, 2
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'y'
je .check_input_py
cmp al, 'r'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'n'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, '.'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'p'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'y'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, 'p'
int 0x10
mov al, 'r'
int 0x10
mov al, 'i'
int 0x10
mov al, 'n'
int 0x10
mov al, 't'
int 0x10
mov al, '('
int 0x10
mov al, '"'
int 0x10
mov al, '6'
int 0x10
mov al, '6'
int 0x10
mov al, '6'
int 0x10
mov al, '"'
int 0x10
mov al, ')'
int 0x10
jmp .print
.writer:
mov ah, 0x0E
int 0x10
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'r'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'i'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 't'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'e'
jne .wait_input
mov ah, 0x00
int 0x16
mov ah, 0x0E
int 0x10
cmp al, 'r'
jne .wait_input
mov ah, 0x00
int 0x16
cmp al, 0x0D
jne .wait_input
mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '+'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '\'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '|'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '|'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '-'
int 0x10
mov al, '_'
int 0x10
mov al, '-'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '-'
int 0x10
mov al, '\'
int 0x10
mov al, '_'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '\'
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, '|'
int 0x10
mov al, '_'
int 0x10
mov al, '_'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '\'
int 0x10
mov al, '|'
int 0x10
mov al, '\'
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '_'
int 0x10
mov al, '/'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '|'
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, ' '
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, '/'
int 0x10
mov al, '|'
int 0x10
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10
jmp .print
作者自己加了很多命令(如果作者不是小学生,不用做作业的话估计都要几万行了)
现在内核代码足足有4681行
算上ipl差不多5000行
标签:操作系统,int,ah,自制,al,mov,0x10,图形界面,cmp From: https://blog.csdn.net/linhhanpy/article/details/141367630