; EXTENDED CAT ; *CAT n ; USING VECTOR ; ; 23/03/1986 ORG #F900 RST #08 DEFB 31 LD HL,STSYN LD (VECTOR),HL RET ; STSYN RST CALBAS DEFW GET_CH CP "*" JR Z,PGM3 JP ERR6 ; ; PGM3 RST CALBAS DEFW NEXTCH CP CAT JR Z,PGM6 JP ERR6 ; ; PGM6 RST CALBAS DEFW NEXTCH CALL EXPT_N CALL ST_END CALL CHK_M2 LD A,2 RST CALBAS DEFW CHANOP CALL SET_TM LD A,(IX+CHDRIV) CALL SEL_DR CATLP CALL GETHD2 LD HL,RDESC LD DE,#18 CALL GETD CALL CHK_HD JR NZ,CATLP LD HL,RDESC BIT 0,(HL) JR NZ,CATLP LD A,(RDESC) LD HL,RDESC+3 OR (HL) AND 2 JR NZ,PRI_NA CALL RESMAP JR CATLP ; PRI_NA LD A,(RDESC+1) OR A JR NZ,CATLP LD A,(IX+HDNUMB) CP (IX+CHREC) JR Z,ENDCAT CALL OUTNAME CALL PRCR LD A,(IX+CHREC) OR A JP NZ,CATLP LD A,(IX+HDNUMB) LD (IX+CHREC),A JP CATLP ; ENDCAT PUSH IX XOR A CALL SEL_DR CALL PRCR PUSH IX POP HL LD DE,#2C ADD HL,DE CALL PRNAME CALL PRCR CALL FRESECT LD A,E SRL A RST CALBAS DEFW STACKA RST CALBAS DEFW PRINTFP CALL PRCR POP IX CALL DEL_MB JP END1 ; PRCR LD A,CR JP PRCHAR ; GETD PUSH HL JP GT_M_BLK ; RDESC DEFS #18 ; OUTNAME LD HL,SCR_CT LD (HL),0 LD HL,RDESC+4 CALL PRNAME LD A,SPACE CALL PRCHAR LD A,(RDESC) BIT 2,A JP NZ,NOTPRN LD A,PRINT JP PRCHAR ; NOTPRN LD A,(HL) OR A JP Z,PROG CP 3 JP Z,BYTES DEC A PUSH AF LD A,DATA CALL PRCHAR LD A,(RDESC+20) AND #1F ADD A,#60 CALL PRCHAR POP AF RET Z LD A,"$" JP PRCHAR ; PROG LD HL,RDESC+23 LD A,(HL) AND #C0 RET Z DEC HL LD A,LINE CALL PRCHAR ; FPRINT LD E,(HL) INC HL LD D,(HL) EX DE,HL ; PRNUM LD DE,10000 CALL PRDIG LD DE,1000 CALL PRDIG LD DE,100 CALL PRDIG LD DE,10 CALL PRDIG LD DE,1 PRDIG LD A,-1 OUTD INC A OR A SBC HL,DE JR NC,OUTD ADD HL,DE OR #30 JP PRCHAR ; BYTES LD A,CODE CALL PRCHAR INC HL PUSH HL INC HL INC HL CALL FPRINT LD A,COMMA CALL PRCHAR POP HL JP FPRINT ; PRNAME LD B,10 PRLOOP LD A,(HL) CP 32 JR NC,PRL2 LD C,A LD A,(P_FLAG) PUSH AF LD A,1 LD (P_FLAG),A LD A,C ADD A,64 CALL PRCHAR POP AF LD (P_FLAG),A JR PNL4 PRL2 CALL PRCHAR PNL4 INC HL DJNZ PRLOOP RET