; ; THIS LITTLE UTILITY ZEROS OUT A 64K BLOCK OF MEMORY ; ; JUST SAY ; ; ZERORAM N ; ; WHERE N IS 0-9 OR A-F ; ORG 0100 ZERORAM: JMP > L0 MSG DB CR,LF,'Block ' ID DB 0,'000 is zeroed out',CR,LF,'$' ERMSG DB CR,LF,'No address given...Aborting',CR,LF,'$' ERMSG1 DB CR,LF,'Bad address range...Aborting',CR,LF,'$' L0: MOV AH,[080] CMP AH,1 JA > L1 PRINT ERMSG ;STANDARD MACRO QUIT 0 L1: MOV SI,081 L2: MOV AH,[SI] INC SI CMP AH,SPACE JE L2 MAKE_CAP AH ;STANDARD MACRO MOV B ID,AH SUB AH,030 CMP AH,9 JBE > L3 SUB AH,7 CMP AH,0F JBE > L3 PRINT ERMSG1 ;STANDARD MACRO QUIT 0 L3: MOV CX,4 ROR AH,CL AND AX,0F000 MOV ES,AX MOV CX,0 XOR SI,SI L4: ES MOV B[SI],0 INC SI LOOP L4 PRINT MSG ;STANDARD MACRO QUIT 0 END