DEVEX ASM;-- ROUTINE DEVEX.KCC -- ; \ ;BC00H ... BDFFH \ ; \ ; ` ml 28.12.1990 \ ;----------------------- SUTAB EQU 0B7B0H PV1 EQU 0F003H WAIT EQU 14H ERRM EQU 19H AHEX EQU 1CH CRLF EQU 2CH ;------- ORG 0BC00H START LD HL,0 LD B,80H DEV02 LD A,M CP 7FH ;TEST PROLOG? INC HL JR Z,DEV01 DJNZ DEV02 JR DEV03 DEV01 LD M,0 ;LOESCHEN DEV03 LD HL,(SUTAB) LD (SUBALT),HL ;MERKEN LD DE,SUBNEU LD (SUTAB),DE LD BC,90H ;LAENGE SUTAB LDIR LD HL,MBO ;BCBFH LD (SUBNEU+2),HL LD HL,MBI ;BCEBH LD (SUBNEU+10),HL LD HL,STAB LD DE,SUBNEU+16 LD C,8 LDIR RET ;------- STAB DW ISRO ;BC6EH DW CSRO ;BCC3H DW ISRI ;BCD3H DW CSRI ;BD0FH ;------- DW 0DDDDH DEFM 'TAPE' DB 1 JR DEV04 DW 07F7FH DEFM 'TAPE' DB 1 DEV04 LD HL,(SUBALT) ;SUTAB ALT DEV06 LD (SUTAB),HL RET ;------- DW 0DDDDH DEFM 'DISK' DB 1 JR DEV05 DW 07F7FH DEFM 'DISK' DB 1 DEV05 LD HL,SUBNEU ;SUTAB NEU JR DEV06 ;------- ISRO LD (IX+2),0 ;BLOOCKNUMMER LD L,(IX+5) LD H,(IX+6) ;BLOCKPUFFER LD BC,83F3H ;NAME LD E,11 ;ANZAHL DEV07 OUTI INC B INC B DEC E JR NZ,DEV07 ;NAME AUSGEBEN LD D,11 ;NAME EINTRAGEN DEV10 INC (IX+2) ;NAECHSTER BL. LD H,(IX+6) LD L,(IX+5) LD BC,81F2H ;SEKTOR LD E,80H ;BLOCKLAENGE DEV08 OUTI INC B INC B DEC E JR NZ,DEV08 DEV11 LD BC,80F3H ;STEUERBYTE OUT (C),D DEV09 PUSH BC LD A,1 CALL PV1 DB WAIT POP BC IN A,(C) BIT 0,A ;FERTIG? JR NZ,DEV09 AND A BIT 7,A ;FEHLER RET Z INC B IN A,(C) CALL PV1 DB AHEX ;FEHLERNUMMER CALL PV1 DB ERRM SCF RET ;------- MBO LD D,3 ;SCHREIBEN NORM JR DEV10 ;------- CSRO CALL MBO RET C LD D,43H ;SCHREIBEN CLOSE LD (IX+5),0 LD (IX+6),0B7H JR DEV11 ;------- ISRI LD (IX+2),0 POP DE POP HL PUSH HL PUSH DE LD BC,83F3H ;NAME LD DE,090BH ;OPEN/LAENGE DEV12 OUTI INC B INC B DEC E JR NZ,DEV12 PUSH DE JR DEV13 ;------- MBI PUSH DE LD D,1 ;LESEN NORM DEV13 CALL DEV11 ;STEUERBYTE POP DE RET C PUSH DE PUSH HL PUSH AF LD L,(IX+5) LD H,(IX+6);PUFFER LD BC,80F2H;SEKTOR LD E,80H ;LAENGE DEV14 INI INC B INC B DEC E JR NZ,DEV14 INC (IX+2) ;BLOCKNUMMER POP AF POP HL POP DE RET ;------- CSRI CALL PV1 DB CRLF RET ;----------------------- ;BD14H SUBALT DW 0FBA8H ;SUTAB ALT ;BD16H SUBNEU DW 0E329H ;CRT DW 0BCBFH ;MBO DW 0B7BDH ;UOT1 DW 0B7C3H ;UOT2 DW 0F238H ;KBD DW 0BCEBH ;MBI DW 0B7C0H ;USIN1 DW 0B7C6H ;USIN2 DW ISRO ;BC6EH DW CSRO ;BCC3H DW ISRI ;BCD3H DW CSRI ;BD0FH DW 0E3CAH ;KBDS DW 0F0F6H ;BYE DW 0E3D5H ;KBDZ DW 0F621H ;COLOR DW 0F577H ;LOAD DW 0F56AH ;VERIF DW 0F17EH ;LOOP DW 0F1FAH ;NORM DW 0F1E0H ;WAIT DW 0F4EBH ;LARG DW 0F217H ;INTB DW 0F334H ;INLIN DW 0F392H ;RHEX DW 0F361H ;ERRM DW 0F354H ;HLHX DW 0F389H ;HLDE DW 0F376H ;AHEX DW 0F1B1H ;ZSUCH DW 0F200H ;SOUT DW 0F20DH ;SIN DW 0F1FDH ;NOUT DW 0F20AH ;NIN DW 0F3C7H ;GARG DW 0F1EEH ;OSTR DW 0F21DH ;OCHR DW 0F74AH ;CUCP DW 0E404H ;MODU DW 0E49BH ;JUMP DW 0E316H ;LDMA DW 0E318H ;LDAM DW 0E3DEH ;BRKT DW 0F35CH ;SPACE DW 0F36BH ;CRLF DW 0F372H ;HOME DW 0F65AH ;MODI DW 0F771H ;PUDE DW 0F760H ;PUSE DW 0F40BH ;SIXD DW 0E06AH ;DABR DW 0E05EH ;TCIF DW 0E04EH ;PADR DW 0F925H ;TON DW 0F4A5H ;SAVE DW 0F873H ;MBIN DW 0F86BH ;MBOUT DW 0F6E2H ;KEY DW 0F741H ;KEYLI DW 0F641H ;DISP DW 0F694H ;WININ DW 0F69EH ;WINAK DW 0F863H ;LINE DW 0F77AH ;CIRCLE DW 0FB81H ;SQR DW 0FB79H ;MULT DW 0F62AH ;CSTB DW 0F451H ;INIEA DW 0F45AH ;INIME DW 0F91CH ;ZKOUT DW 0F147H ;MENU DW 0F9CFH ;V24OUT ;BDA6H DS 0BDFFH-$,0 ½ SUBNEU:½ SUBALT:½ CSRI:½ DEV14:î¼ DEV13:ëDW 0F91CH ;ZKOUT DW 0F147H ;MENU DW 0F9CFH ;V24OUT ;BDA6H DS 0BDFFH-$,0 ½ SUBNEU:½ SUBALT:½ CSRI:½ DEV14:î¼ DEV13:ë