* * BOOTSTRAP LOADER FOR HELIOS DISK * COPY DSKPORTS * ORG 0C367H The location in the BOOTLOAD prom * BOOTS MVI A,SD0+NH1+DS1+DS2+DO+NSP * * Load A with: Select left hand drive * Select disk 0 * Load head on 0 * No step * Direction Outward * Restore head to track 0 * OUT DCOM Send out Disk Command port OUT DTADL Clear Status MVI A,-1 Send a 'do nothing' to transfer latch OUT DTCOM * BOOTL IN DSTAT Get Status ANI SC Seek completed to track 0? JNZ BOOTL If not, keep checking * MVI A,SD0+NH1+NRS+DS1+DS2+DO+NSP * * Send same command as before but deactivate Restore * OUT DCOM * IFIN IN DSTAT Check status again RLC . Now we're looking for the index hole JC IFIN Carry means not found LXI B,1290H * IFIN2 DCX B Delay until past Header block MOV A,B ORA C JNZ IFIN2 * IFIN3 IN DSTAT Check for index hole again RLC JC IFIN3 * SWAIT IN DSTAT ANI SR Is status ready? JZ SWAIT Zero = No * XRA A OUT DTADL This is the receiving address in memory OUT DTADH (0000) * LXI H,0340H This is the number of bytes to transfer MOV A,L OUT DTLL Send out low byte MOV A,H OUT DTLH Send out high byte * MVI A,NER+RD Give the read command OUT DTCOM * DLOOP IN DSTAT ANI CC+CE+SR+TC Check for transfer errors JZ DLOOP ANI CE Any CRC errors? JNZ BOOTS If so, start over IN DSTAT ANI TC+SR Check for transfer complete JZ DLOOP RST 0 Looks good, let's go bring up PTDOS HLT * END *