Estex-DSS/SHELL/Commands/VER.ASM
2023-08-11 04:54:30 +10:00

85 lines
1.3 KiB
NASM

;///////////////////////////////////////////////////
;
; VER, VERSION. ‚뢮¤ ¢¥àᨨ „Ž‘
;
;///////////////////////////////////////////////////
cmd_version:
LD C,Dss.Version
RST ToDSS
LD L,D
LD H,E
LD DE,PRM1
CALL .Set_Ver_to_PRM ; set DSS version
;R13
LD HL,256*CONSOLE_MODF + CONSOLE_VERS
LD BC,CONSOLE_BUILD
LD DE,PRM2
CALL .Set_Ver_to_PRM ; set Shell version
;R13
LD DE,VERSMSG
JP MESSAGE
; ¢å®¤: hl=ç¨á«®, de=¡ãä¥à
.num_ver:
.num_mod:
ld ix,.tmp1__
res 7,(ix+0)
jr .decim
; ¢å®¤: hl=ç¨á«®, de=¡ãä¥à
.num_build:
ld ix,.tmp1__
res 7,(ix+0)
ld bc,100 ; 100
call .num16
.decim: ld bc,10 ; 10
call .num16
ld a,l
add a,"0"
jr .num16_exit
.tmp1__: BYTE 0
.num16: ld a,'0'-1
and a
inc a
sbc hl,bc
jr nc,$-3
add hl,bc
cp "0"
jr z,$+6
set 7,(ix+0)
bit 7,(ix+0)
ret z
.num16_exit:
ld (de),a ; á®åà. ¢ ¡ãä¥à¥
inc de
ret
;
; ‚室:
; L - ­®¬¥à ¢¥àᨨ (0..9)
; H - ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
; BC - ­®¬¥à ¡¨«¤  (0..999)
; DE - ­®¬¥à ¯ à ¬¥âà 
.Set_Ver_to_PRM:
PUSH BC
PUSH HL
LD H,0
CALL .num_ver ;decim2 ­®¬¥à ¢¥àᨨ (0..9)
LD A,'.'
LD (DE),A
INC DE
POP HL
LD L,H
LD H,0
CALL .num_mod ;decim2 ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
POP HL
LD A,'.'
LD (DE),A
INC DE
CALL .num_build ;decim3 ­®¬¥à ¡¨«¤  (0..999)
XOR A
LD (DE),A
RET
;