LIST 46 ============================================================================ 自動的に組み込まれる[IOLIBZ.LIB](ファイル名は予約)の内容 MC_GCHAR: LD A,(HL) MC_SXT: LD L,A RLCA SBC A,A LD H,A RET MC_CDR: INC HL INC HL MC_GINT: LD A,(HL) INC HL LD H,(HL) LD L,A RET MC_PINT: POP BC POP DE PUSH BC LD A,L LD (DE),A INC DE LD A,H LD (DE),A RET MC_OROR: POP BC POP DE PUSH BC LD A,L OR H JP NZ,__OR2R LD A,E OR D JP NZ,__OR2R LD HL,0 RET __OR2R: LD HL,1 RET MC_OR: POP BC POP DE PUSH BC LD A,L OR E LD L,A LD A,H OR D LD H,A RET MC_XOR: POP BC POP DE PUSH BC LD A,L XOR E LD L,A LD A,H XOR D LD H,A RET MC_ANDAND: POP BC POP DE PUSH BC LD A,L OR H JP Z,__AND2R LD A,E OR D JP Z,__AND2R LD HL,1 RET __AND2R: LD HL,0 RET MC_AND: POP BC POP DE PUSH BC LD A,L AND E LD L,A LD A,H AND D LD H,A RET MC_EQ: POP BC POP DE PUSH BC CALL MC_CMP RET Z DEC HL RET MC_NE: POP BC POP DE PUSH BC CALL MC_CMP RET NZ DEC HL RET MC_GT: POP BC POP DE PUSH BC EX DE,HL CALL MC_CMP RET C DEC HL RET MC_LE: POP BC POP DE PUSH BC CALL MC_CMP RET Z RET C DEC HL RET MC_GE: POP BC POP DE PUSH BC CALL MC_CMP RET NC DEC HL RET MC_LT: POP BC POP DE PUSH BC CALL MC_CMP RET C DEC HL RET MC_CMP: LD A,E SUB L LD E,A LD A,D SBC A,H LD HL,00001H JP M,MC_CMP1 OR E RET MC_CMP1: OR E SCF RET MC_LNEG: LD A,H OR L LD HL,0 JR Z,MC_LNEG1 RET MC_LNEG1: INC L RET MC_UGE: POP BC POP DE PUSH BC CALL MC_UCMP RET NC DEC HL RET MC_ULT: POP BC POP DE PUSH BC CALL MC_UCMP RET C DEC HL RET MC_UGT: POP BC POP DE PUSH BC EX DE,HL CALL MC_UCMP RET C DEC HL RET MC_ULE: POP BC POP DE PUSH BC CALL MC_UCMP RET Z RET C DEC HL RET MC_UCMP: LD A,D CP H JR NZ,CUCMP1 LD A,E CP L CUCMP1: LD HL,00001H RET MC_ASR: EX DE,HL DEC E RET M LD A,H RLA LD A,H RRA LD H,A LD A,L RRA LD L,A JR MC_ASR+1 MC_ASL: POP BC POP DE PUSH BC EX DE,HL MC_ASL4: DEC E RET M ADD HL,HL JR MC_ASL4 MC_SUB: POP BC POP DE PUSH BC LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET MC_NEG: CALL MC_COM INC HL RET MC_COM: LD A,H CPL LD H,A LD A,L CPL LD L,A RET MC_MULT: POP BC POP DE PUSH BC LD B,H LD C,L LD HL,00000H MC_MLT1: LD A,C RRCA JR NC,CMLT2 ADD HL,DE CMLT2: XOR A LD A,B RRA LD B,A LD A,C RRA LD C,A OR B RET Z XOR A LD A,E RLA LD E,A LD A,D RLA LD D,A OR E RET Z JR MC_MLT1 MC_DIV: LD B,H LD C,L LD A,D XOR B PUSH AF LD A,D OR A CALL M,MC_DENEG LD A,B OR A CALL M,MC_BCNEG LD A,010H PUSH AF EX DE,HL LD DE,00000H MC_DIV1: ADD HL,HL CALL MC_RDEL JR Z,MC_DIV2 CALL MC_PBCDE JP M,MC_DIV2 LD A,L OR 001H LD L,A LD A,E SUB C LD E,A LD A,D SBC A,B LD D,A MC_DIV2: POP AF DEC A JR Z,MC_DIV3 PUSH AF JR MC_DIV1 MC_DIV3: POP AF RET P CALL MC_DENEG EX DE,HL CALL MC_DENEG EX DE,HL RET MC_DENEG: LD A,D CPL LD D,A LD A,E CPL LD E,A INC DE RET MC_BCNEG: LD A,B CPL LD B,A LD A,C CPL LD C,A INC BC RET MC_RDEL: LD A,E RLA LD E,A LD A,D RLA LD D,A OR E RET MC_PBCDE: LD A,E SUB C LD A,D SBC A,B RET MC_SWITCH: EX DE,HL POP HL SWLOOP: LD C,(HL) INC HL LD B,(HL) INC HL LD A,B OR C JR Z,SWEND LD A,(HL) INC HL CP E LD A,(HL) INC HL JR NZ,SWLOOP CP D JR NZ,SWLOOP LD H,B LD L,C SWEND: JP (HL) DEBUGSP: LD HL,2 DEBUGSP2: ADD HL,SP PUSH HL POP IY RET ============================================================================