Date : Sun, 08 Jul 1984 02:25:00-EDT
From : Paul L. Kelley <PLK@Mit-Mc.ARPA>
Subject: movcpm synchronization errors
BDOS jump checking in MOVCPM.
LXI B,STORAGE ;MOVCPM has already read the presumed address
;of the running BDOS from 0006 and stored it
;away
LDAX B ;get least significant byte of running BDOS
;address
CPI 6 ;is it really BDOS or perhaps DDT?
MVI A,0 ;get ready to put the address of the running
;serial number in STORAGE
JNZ SYNCERR ;give synchronization error if not the correct
;BDOS address modulo a page
STAX B ;STORAGE now has address of start of running
;serial number
Serial number checking in MOVCPM.
LXI D,MOVCPM$SERNO ;location of serial number in MOVCPM's
;relocatable version of BDOS. This is at
;the start of the relocatable BDOS.
LHLD STORAGE ;get the address of the running serial number
MVI C,6 ;length of serial number
LOOP: LDAX D ;compare MOVCPM's serial number with
CMP M ;running BDOS's serial number
JNZ SYNCERR ;give synchronization error if CMP fails
INX H ;check
INX D ; all
DCR C ; six
JNZ LOOP ; bytes