; ***************** SHIFT SUBROUTINE ***************** ; SHIFTS CONTENTS OF (DE,HL) ONE BIT LEFT. ; SHIFTING CONTENTS TO THE LEFT IS MULTIPLICATION. ; EACH BIT SHIFT LEFT IS DOUBLING OR MULTIPLYING BY 2. ; ; ENTRY: NUMBER TO BE SHIFTED IS IN (DE,HL). ; EXIT: (DE,HL) SHIFTED LEFT ONE BIT, LOGICAL. ; CHECK FLAGS REGISTER FOR CARRY BIT. ; ALL REGISTERS SAVED EXCEPT DE,HL. ; ; **************************************************** .ORG 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. LD DE, 8111h ; ADDED FOR TESTING PURPOSES. LD HL, 8222h ; ADDED FOR TESTING PURPOSES. CALL SHIFT ; ADDED FOR TESTING PURPOSES. HALT ; ADDED FOR TESTING PURPOSES. SHIFT: ADD HL, HL ; SHIFT HL BYTES. EX DE, HL ; GET MOST SIGNIFICANT BYTES. ADC HL, HL ; SHIFT MS BYTES AND CARRY. EX DE, HL ; NOW THE ORIGINAL IS DOUBLED. RET ; RETURN .END