ZXNet эхоконференция «zxnet.pc»


тема: продолжение про ULA в EmuZWin



от: Владимир Кладов
кому: All
дата: 19 Jan 2007
Hello, boo_boo макросы, продолжение: ┌─- CODE ─── //***************************************************************************** * Delay MACRO Time, Mem, Temp=D .IF MultiColor .IF AntiSlowDown CMP EDI, 71690 JB @@Delay1_&& .IF &Time > 1 ADD EDI, &Time .ELSEIF &Time = 1 INC EDI .ENDIF JMP SHORT @@DelayEnd&& @@Delay1_&&: .ENDIF .IF NoDelay = 0 MOVZX E&Temp.X, &Mem.H MOV &Temp.H, [&ZX].CurRAMBank MOVZX E&Temp.X, B[E&Temp.X+MC_Contended_Mem_Table] ADD EDI, D[EDI*8+E&Temp.X+MC_Contended_Delay_Table] .IF &Time > 2 ADD EDI, &Time-1 .ELSEIF &Time = 2 INC EDI .ENDIF .ELSE NoDelay .IF &Time > 1 ADD EDI, &Time .ELSEIF &Time = 1 INC EDI .ENDIF .ENDIF .IF AntiSlowDown @@DelayEnd&&: .ENDIF .ENDIF END //MACRO Delay //***************************************************************************** * DelayMore MACRO Time=1, Temp=D, Count=1 .IF MultiColor .IF AntiSlowDown CMP EDI, 71690 JB @@DelayMore1_&& .IF &Time * &Count > 1 ADD EDI, &Time * &Count .ELSEIF &Time * &Count = 1 INC EDI .ENDIF JMP SHORT @@DelayMoreEnd&& @@DelayMore1_&&: .ENDIF .IF NoDelay = 0 .REPEAT &Count ADD EDI, D[EDI*8+E&Temp.X+MC_Contended_Delay_Table] .IF &Time > 2 ADD EDI, &Time-1 .ELSEIF &Time = 2 INC EDI .ENDIF .ENDREP .ELSE NoDelay .IF &Time * &Count > 1 ADD EDI, &Time * &Count .ELSEIF &Time * &Count = 1 INC EDI .ENDIF .ENDIF .IF AntiSlowDown @@DelayMoreEnd&&: .ENDIF .ENDIF END //MACRO DelayMore //***************************************************************************** * outDelay MACRO Port, Temp=D, io= .IF MultiColor .IF NoDelay = 0 .IF "&io" = "" //-------------- MOVZX EDX, &Port.H MOV &Temp.H, [&ZX].CurRAMBank MOVZX E&Temp.X, B[E&Temp.X+MC_Contended_Mem_Table] TEST &Port.L, 1 JZ SHORT @@_outFE&& // N:4 or C:1 C:1 C:1 C:1 XOR &Temp.L, 4 JNZ SHORT @@_outN4&& .IF AntiSlowDown CMP EDI, 71690 JB @@outDelay1_&& ADD EDI, 4 JMP SHORT @@_outN4&& @@outDelay1_&&: .ENDIF ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] @@_outN4&&: ADD EDI, E&Temp.X JMP SHORT @@_end_out_contention&& @@_outFE&&: xor &Temp.L, 4 JNZ SHORT @@_outN1C3_&& .IF AntiSlowDown CMP EDI, 71690 JAE @@_outN1C3_&& .ENDIF ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] DEC EDI @@_outN1C3_&&: INC EDI .IF AntiSlowDown CMP EDI, 71690 JB @@outDelay3_&& ADD EDI, 3 JMP SHORT @@_end_out_contention&& @@outDelay3_&&: .ENDIF ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, 3-1 @@_end_out_contention&&: //-------------- .ELSE //-------------- .IF AntiSlowDown CMP EDI, 71690 JAE @@outDelay5&& .ENDIF MOVZX E&Temp.X, &Port.H MOV &Temp.H, [&ZX].CurRAMBank MOVZX E&Temp.X, B[E&Temp.X+MC_Contended_Mem_Table] TEST &Port.L, 1 JNZ SHORT @@outDelay4&& MOV &Temp.L, 4 @@outDelay4&&: ADD EDI, D[EDI*8+E&Temp.X+MC_Contended_Delay_Table] ADD EDI, &io-1 @@outDelay5&&: //-------------- .ENDIF .ELSE NoDelay .IF "&io" = "" ADD EDI, 4 .ELSEIF &io > 1 ADD EDI, &io .ELSEIF &io = 1 INC EDI .ENDIF .ENDIF .ENDIF //MultiColor END //MACRO outDelay //***************************************************************************** * inDelay MACRO Port, Temp=D .IF MultiColor <> 0 .IF NoDelay = 0 MOVZX E&Temp.X, &Port.H MOV &Temp.H, [&ZX].CurRAMBank MOVZX E&Temp.X, B[E&Temp.X+MC_Contended_Mem_Table] TEST &Port.L, 1 JZ SHORT @@_inFE&& // bit 0 of port addr set - N:4 or C:1 C:1 C:1 C:1 XOR &Temp.L, 4 JNZ SHORT @@_inN4&& .IF AntiSlowDown CMP EDI, 71690 JB @@inDelay1_&& ADD EDI, 4 JMP SHORT @@_inN4&& @@inDelay1_&&: .ENDIF ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] @@_inN4&&: ADD EDI, E&Temp.X JMP SHORT @@_end_in_contention&& @@_inFE&&: .IF AntiSlowDown CMP EDI, 71690 JAE @@_end_in_contention&& .ENDIF XOR &Temp.L, 4 JnZ SHORT @@_inN1C3_&& ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] DEC EDI @@_inN1C3_&&: INC EDI ADD EDI, D[EDI*8+4+MC_Contended_Delay_Table] ADD EDI, 3-1 @@_end_in_contention&&: .ELSE NoDelay ADD EDI, 4 .ENDIF .ENDIF //MultiColor //-------------- END //MACRO inDelay //***************************************************************************** * ioDelay MACRO Port, Temp .IF MultiColor .IF NoDelay = 0 .IF AntiSlowDown CMP EDI, 71690 JAE @@ioDelayEnd&& .ENDIF MOVZX E&Temp.X, &Port.H MOV &Temp.H, [&ZX].CurRAMBank MOVZX E&Temp.X, B[E&Temp.X+MC_Contended_Mem_Table] TEST &Port.L, 1 JNZ SHORT @@ioDelay1_&& MOV &Temp.L, 4 @@ioDelay1_&&: ADD EDI, D[EDI*8+ECX+MC_Contended_Delay_Table] .IF AntiSlowDown @@ioDelayEnd&&: .ENDIF .ELSE NoDelay //ADD EDI, 4 .ENDIF .ENDIF END //MACRO ioDelay └── CODE ─── и еще чуть-чуть...




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Обзор Lines - Обзор различных вариантов игры Lines.
Вступление - базар о том,кто мы такие,что за пипл делает эту найкрутейШую газету.
ONlopros - Результаты подсчета ответов на некоторые вопросы,связанные с ZXNet.
Новый год - хочу поздpавить с наступающими пpаздниками всех тех, кто еще не забpосил свой Спектpум!
Премьера - НЛО-2. Дьяволы бездны.

В этот день...   8 мая