DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2045 (0x7fd) Types: TextFile Names: »SUBXDQ.S«
└─⟦31b8a9b6a⟧ Bits:30005199 8" Zilog MCZ/1 Floppy CR80FD_0025 ( TC 500 SEC. PROTOCOL BB V2 830407 NCJ ) └─ ⟦this⟧ »SUBXDQ.S« └─⟦cf416a62a⟧ Bits:30005201 8" Zilog MCZ/1 Floppy CR80FD_0027 ( TC 500 SEC. PROTOCOL BACK UP! (V2) BB SEC 821119 NCJ ) └─ ⟦this⟧ »SUBXDQ.S«
;***************************************************************************** ;* ;* SUBXDQ MODULE ;* ;***************************************************************************** GLOBAL SUBXDQ ;***************************************************************************** ; SUBROUTINE NAME : SUBXDQ ; FUNCTION : DEQUES BUFFER WITH SPECIFIED CLUSTER ADDRESS ; FROM SPECIFIED QUEUE ; INPUTS : (BC) = CLUSTER ADDRESS ; : (HL) = QUEUEHEAD ADDRESS ; OUTPUTS : CY = 1 IF BUFFER FOUND ; : (DE) = BUFFER ADDRESS ; ; ; CY = 0 IF BUFFER NO FOUND ;**************************************************************************** CADOFF EQU 23H CAD1 DEFS 1 CAD2 DEFS 1 SUBXDQ LD A,C LD (CAD1),A LD A,B LD (CAD2),A INC HL ; GET NO. OF ELEMENTS IN QUEU LD A,(HL) ; CP 00H ; IF NO. = 0 SCF ; THEN SET CARRY FLAG ON ZERO AND JUMP OUT JR Z,XDQ ; ELSE CONTINUE EXECUTION INC HL ; PUSH HL ; AGAIN POP IX ; LD E,(IX) ; LD D,(IX+01H) ; DEC A ; IF TOTAL NO. OF ELEMENTS HAS BEEN TESTED JP M,XDQ ; THEN SET CARRY FLAG ON ZERO AND JUMP OUT PUSH AF ; ELSE SEARCH FOR THE FIRST NUMBER "CAD1" LD BC,CAD1 ; PUSH DE ; POP IY ; LD A,(BC) ; LD B,A ; LD A,(IY+CADOFF+1) ; CP B ; IF FIRST NUMBER IS RIGHT JR NZ,NEW ; THEN SEARCH FOR THE SECOND "CAD2" LD BC,CAD2 ; ELSE CONTINUE SEARCHING IN NEXT BUFFER LD A,(BC) ; LD B,A ; LD A,(IY+CADOFF) ; CP B ; IF SECOND NUMBER IS RIGHT ALSO JR Z,FOUND ; THEN WE HAVE FOUND THE RIGHT BUFFER NEW POP AF ; ELSE CONTINUE SEARCHING IN NEXT BUFFER PUSH DE ; JR AGAIN ; FOUND DEC HL ; DEC (HL) ; INC HL ; INC HL ; INC HL ; POP AF ; IF IT WASN'T THE LAST ELEMENT IN QUEU JR NZ,OUT ; THEN ARRANGE THE PRECEDING BUFFER LINK'S LAST PUSH IX ; ELSE ARRANGE THE PRECEDING - AND POP BC ; SUBSEQUENT BUFFER LINK'S PUSH HL ; POP IY ; LD (HL),C ; INC HL ; LD (HL),B ; OUT LD C,(IY) ; LD B,(IY+01H) ; LD (IX),C ; LD (IX+01H),B ; SCF ; RET ; XDQ CCF ; RET ; ;ECHO \f