mirror of
https://github.com/romychs/SprinterESP.git
synced 2025-04-18 01:32:42 +03:00
78 lines
1.2 KiB
NASM
78 lines
1.2 KiB
NASM
|
|
|
|
MODULE UTIL
|
|
|
|
; ------------------------------------------------------
|
|
; Small delay
|
|
; Inp: HL - number of cycles, if HL=0, then 2000
|
|
; ------------------------------------------------------
|
|
DELAY
|
|
PUSH AF
|
|
PUSH HL
|
|
LD A,H
|
|
OR L
|
|
JP NZ,DELAY_L1
|
|
LD HL,2000
|
|
DELAY_L1:
|
|
DEC HL
|
|
LD A,H
|
|
OR L
|
|
JP NZ,DELAY_L1
|
|
POP HL
|
|
POP AF
|
|
RET
|
|
|
|
; TODO: Do it with timer
|
|
DELAY_1MS
|
|
PUSH HL
|
|
LD HL,100
|
|
CALL DELAY
|
|
POP HL
|
|
RET
|
|
|
|
; ------------------------------------------------------
|
|
; Calc length of zero ended string
|
|
; Inp: HL - pointer to string
|
|
; Out: BC - length of string
|
|
; ------------------------------------------------------
|
|
STRLEN
|
|
PUSH DE,HL,HL
|
|
LD BC,MAX_BUFF_SIZE
|
|
XOR A
|
|
CPIR
|
|
POP DE
|
|
SUB HL,DE ; llength of zero ended string
|
|
LD BC,HL
|
|
LD A, B
|
|
OR C
|
|
JR Z, STRL_NCOR
|
|
DEC BC
|
|
STRL_NCOR
|
|
POP HL,DE
|
|
RET
|
|
|
|
; ------------------------------------------------------
|
|
; Compare zero-ended strings
|
|
; Inp: HL, DE - pointers to strinngs to compare
|
|
; Out: CF=0 - equal, CF=1 - not equal
|
|
; ------------------------------------------------------
|
|
STRCMP
|
|
PUSH DE,HL
|
|
STC_NEXT
|
|
LD A, (DE)
|
|
CP (HL)
|
|
JR NZ, STC_NE
|
|
AND A
|
|
JR Z, STC_EQ
|
|
INC DE
|
|
INC HL
|
|
JR STC_NEXT
|
|
STC_NE
|
|
SCF
|
|
STC_EQ
|
|
POP HL,DE
|
|
RET
|
|
|
|
|
|
|
|
ENDMODULE |