home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 3
/
FreeSoftwareCollection3pd199x-jp.img
/
oh_fm
/
ab_com
/
ab.asm
< prev
next >
Wrap
Assembly Source File
|
1980-01-02
|
4KB
|
176 lines
; 'CLOCK WAIT' COMMAND FOR REAL-MODE
; cw n(0-3,4-7)
.8086
CODE segment
assume cs:CODE,ds:CODE,es:CODE,ss:CODE
org 100h ; .COM model
cmdln equ 80h
cmdprm equ 81h
CW proc
mov si,cmdprm ; 空白スキップ
skipf: cmp byte ptr [si],0Dh ; パラメータ終わり?
je check
cmp byte ptr [si],' ' ; スペース?
je next
cmp byte ptr [si],09h ; タブ?
jne check
next: inc si
jmp skipf
check: mov dx,0030h ; 機種判別
in al,dx
cmp al,1
jne not_towns
inc dx
in al,dx
cmp al,1
je old_towns
cmp al,2
je new_towns
cmp al,4
jne not_towns
jmp new2_towns
not_towns: ; TOWNSではない
mov dx,offset msg4
exit2: mov ah,09h
int 21h
exit: mov ax,4C00h
int 21h
old_towns: ; 旧TOWNSの場合
mov dx,05E0h
mov al,[si]
cmp al,'N'
jne lp1
mov al,1
out dx,al
jmp exit
lp1: cmp al,'B'
jb status_old
cmp al,'E'
ja status_old
sub al,'B'-4
out dx,al
jmp exit
status_old:
mov dx,offset msg5
mov ah,09h
int 21h
mov dx,offset msg2
mov ah,09h
int 21h
mov dx,05E0h
in al,dx
mov dx,offset msg
cmp al,1
jne lp2
mov byte ptr cs:msg[21],'N'
jmp exit2
lp2: add al,'B'-4
mov msg[21],al
jmp exit2
new_towns: ; 新TOWNSの場合
mov dx,05E2h
mov al,[si]
cmp al,'N'
jne lp3
mov al,83h
out dx,al
jmp exit
lp3: cmp al,'A'
jb status_new
cmp al,'E'
ja status_new
sub al,'A'-1
out dx,al
jmp exit
status_new:
mov dx,offset msg5
mov ah,09h
int 21h
mov dx,offset msg3
mov ah,09h
int 21h
mov dx,05E2h
in al,dx
mov dx,offset msg
cmp al,83h
jne lp4
mov byte ptr cs:msg[21],'N'
jmp exit2
lp4: add al,'A'-1
mov msg[21],al
jmp exit2
new2_towns: ; 新新TOWNSの場合
mov dx,05E2h
mov al,[si]
cmp al,'N'
jne lp5
mov al,83h
out dx,al
jmp exit
lp5: cmp al,'0'
je lp5_2
cmp al,'A'
jb status_new2
cmp al,'E'
ja status_new2
sub al,'A'-1
lp5_: out dx,al
jmp exit
lp5_2: mov al,0
jmp lp5_
status_new2:
mov dx,offset msg5
mov ah,09h
int 21h
mov dx,offset msg3_
mov ah,09h
int 21h
mov dx,05E2h
in al,dx
mov dx,offset msg
cmp al,83h
jne lp6
mov byte ptr cs:msg[21],'N'
jmp exit2
lp6: add al,'A'-1
cmp al,'A'-1
je lp8
lp7: mov msg[21],al
jmp exit2
lp8: mov al,'0'
jmp lp7
CW endp
cr equ 0Dh
lf equ 0Ah
msg db "現在のウェイトモ-ド= ",cr,lf,cr,lf
db "HELP: AB <mode(A-E & N)>",cr,lf
db "mode:高速 0 <- A <- B <- C <- D <- E 低速",cr,lf
db " ノーマル N(速度はCと同等)",cr,lf
db "注:FM TOWNS モデル1/2では「B mode」まで、モデル1F/2F/1H/2Hでは「A mode」までしか指定できません。",cr,lf,"$"
msg2 db "< FM TOWNS モデル1/2 >",cr,lf,"$"
msg3 db "< FM TOWNS モデル1F/2F/1H/2H >",cr,lf,"$"
msg3_ db "< FM TOWNS モデル10F/20F/40H/80H >",cr,lf,"$"
msg4 db "< これはFM TOWNSではありません >",cr,lf,"$"
msg5 db "<<< AfterBurner.COM Version 2.0 >>>",cr,lf,"$"
CODE ends
end cw