M100 TS-DOS ROM Cold Boot Recovery

From Bitchin100 DocGarden
Jump to: navigation, search

== TS-DOS Model 100/102 ROM Cold Start Recovery Routines

This source, as you can see, has not been commented yet.

; =========================================================================================
; Cold Start File Recovery routine
; =========================================================================================
7000H  (21H) LXI H,7065H
7003H  (11H) LXI D,FC93H    ; Filename of current BASIC program
7006H  (01H) LXI B,0008H
7009H  (CDH) CALL 705AH
700CH  (2AH) LHLD FBAEH     ; Start of DO files pointer
700FH  (44H) MOV B,H
7010H  (4DH) MOV C,L
7011H  (21H) LXI H,E5F0H
7014H  (08H) DSUB
7015H  (50H) MOV D,B
7016H  (59H) MOV E,C
7017H  (EBH) XCHG
7018H  (D5H) PUSH D
7019H  (7EH) MOV A,M
701AH  (FEH) CPI 0AH
701CH  (CAH) JZ 7030H
701FH  (FEH) CPI 0DH
7021H  (CAH) JZ 7030H
7024H  (FEH) CPI 7FH
7026H  (D2H) JNC 702EH
7029H  (FEH) CPI 20H
702BH  (D2H) JNC 7030H
702EH  (3EH) MVI A,20H
7030H  (77H) MOV M,A
7031H  (23H) INX H
7032H  (1BH) DCX D
7033H  (7AH) MOV A,D
7034H  (B3H) ORA E
7035H  (C2H) JNZ 7019H
7038H  (C1H) POP B
7039H  (E5H) PUSH H
703AH  (2AH) LHLD FBAEH     ; Start of DO files pointer
703DH  (CDH) CALL 7081H
7040H  (E1H) POP H
7041H  (36H) MVI M,1AH
7043H  (2BH) DCX H
7044H  (36H) MVI M,1AH
7046H  (CDH) CALL 706DH
7049H  (EBH) XCHG
704AH  (2AH) LHLD FBAEH     ; Start of DO files pointer
704DH  (2BH) DCX H
704EH  (EBH) XCHG
704FH  (3EH) MVI A,C0H
7051H  (CDH) CALL 7089H
7054H  (CDH) CALL 7085H
7057H  (C3H) JMP 708DH

705AH  (7EH) MOV A,M
705BH  (12H) STAX D
705CH  (23H) INX H
705DH  (13H) INX D
705EH  (0BH) DCX B
705FH  (78H) MOV A,B
7060H  (B1H) ORA C
7061H  (C2H) JNZ 705AH
7064H  (C9H) RET

7065H  (52H) MOV D,D
7066H  (45H) MOV B,L
7067H  (43H) MOV B,E
7068H  (4FH) MOV C,A
7069H  (56H) MOV D,M
706AH  (52H) MOV D,D
706BH  (44H) MOV B,H
706CH  (4FH) MOV C,A
706DH  (21H) LXI H,F9AFH
7070H  (01H) LXI B,000BH
7073H  (09H) DAD B
7074H  (7EH) MOV A,M
7075H  (FEH) CPI FFH
7077H  (CAH) JZ 707FH
707AH  (87H) ADD A
707BH  (DAH) JC 7073H
707EH  (C9H) RET

707FH  (37H) STC
7080H  (C9H) RET

7081H  (CFH) RST 1          ; Call main ROM at address in following 2 bytes
7082H  DW    6B6DH
7084H  (C9H) RET

7085H  (CFH) RST 1          ; Call main ROM at address in following 2 bytes
7086H  DW    2146H
7088H  (C9H) RET

7089H  (CFH) RST 1          ; Call main ROM at address in following 2 bytes
708AH  DW    2239H)
708CH  (C9H) RET

708BH  (CFH) RST 1          ; Call main ROM at address in following 2 bytes
708EH  DW    0000H
7090H  (C9H) RET

Navigate to: