📄 describe.asm
字号:
.xlist
include stdlib.a
includelib stdlib.lib
matchfuncs
.list
include fpgm.a
; DESCRIBE.ASM- This file contains the routines which print room and
; inventory descriptions.
cseg segment para public 'code'
assume ds:dseg
; LongDesc- Long description of an item.
; DI points at an item- Give the long description of it.
LongDesc proc
push di
test di, di
jz NoDescription
mov di, [di].item.LongDesc
puts
putcr
NoDescription: pop di
ret
LongDesc endp
; ShortDesc- Print the short description of an object.
; DI points at an item (possibly NULL). Print the short description for it.
ShortDesc proc
push di
test di, di
jz NoDescription
mov di, [di].item.ShortDesc
puts
putcr
NoDescription: pop di
ret
ShortDesc endp
; Describe: "CurRoom" points at the current room. Describe it and its
; contents.
Describe proc
push es
push bx
push di
mov di, ds
mov es, di
mov bx, CurRoom
mov di, [bx].room.Description
print
byte "You are currently ",0
puts
putcr
print
byte "Here you find the following:",cr,lf,0
ItemCnt = 0
repeat MaxWeight
mov di, [bx].room.ItemList[ItemCnt]
call LongDesc
ItemCnt = ItemCnt+2
endm
pop di
pop bx
pop es
ret
Describe endp
cseg ends
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -