OpenCores
URL https://opencores.org/ocsvn/light8080/light8080/trunk

Subversion Repositories light8080

[/] [light8080/] [trunk/] [ucode/] [light8080.m80] - Diff between revs 58 and 64

Show entire file | Details | Blame | View Log

Rev 58 Rev 64
Line 1... Line 1...
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// LIGHT8080 CORE MICROCODE (V.1 November 1st 2007)
// LIGHT8080 CORE MICROCODE (V.2 February 12th 2012)
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// NOTE: Except for bug fixing, there's no need to tinker with the microcode.
// NOTE: Except for bug fixing, there's no need to tinker with the microcode.
// Once the microcode table has been generated, this file is is not needed to
// Once the microcode table has been generated, this file is is not needed to
// synthesize or use the core.
// synthesize or use the core.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
Line 59... Line 59...
// #ei :      Set interrupt enable register.
// #ei :      Set interrupt enable register.
// #di :      Reset interrupt enable register.
// #di :      Reset interrupt enable register.
// #halt :    Jump to microcode address 0x07 without saving return value.
// #halt :    Jump to microcode address 0x07 without saving return value.
//
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
 
// V.1 November 1st 2007    -- Original version
 
// V.2 February 12th 2012   -- Fixed CY/AC clear bug with clr_acy flag
 
////////////////////////////////////////////////////////////////////////////////
 
 
 
 
// RESET ucode: from 0 to 2, but uinst at address 0 is never executed
// RESET ucode: from 0 to 2, but uinst at address 0 is never executed
__reset
__reset
 
 
NOP           ; NOP
NOP           ; NOP
Line 231... Line 235...
 
 
__code  "11100110"
__code  "11100110"
__asm   ANI #imm
__asm   ANI #imm
 
 
JSR read_imm
JSR read_imm
T2 = _a       ; _a = AND      ; #end, #fp_rc
T2 = _a       ; _a = AND      ; #end, #fp_rc, #clr_acy
 
 
__code  "11101110"
__code  "11101110"
__asm   XRI #imm
__asm   XRI #imm
 
 
JSR read_imm
JSR read_imm
T2 = _a       ; _a = XRL      ; #end, #fp_rc
T2 = _a       ; _a = XRL      ; #end, #fp_rc, #clr_acy
 
 
 
 
__code  "11110110"
__code  "11110110"
__asm   ORI #imm
__asm   ORI #imm
 
 
JSR read_imm
JSR read_imm
T2 = _a       ; _a = ORL      ; #end, #fp_rc
T2 = _a       ; _a = ORL      ; #end, #fp_rc, #clr_acy
 
 
 
 
__code  "11111110"
__code  "11111110"
__asm   CPI #imm
__asm   CPI #imm
 
 
Line 283... Line 287...
 
 
__code  "10100sss"
__code  "10100sss"
__asm   ANA {s}
__asm   ANA {s}
 
 
T1 = {s}      ; NOP
T1 = {s}      ; NOP
T2 = _a       ; _a = AND      ; #end, #fp_rc
T2 = _a       ; _a = AND      ; #end, #fp_rc, #clr_acy
 
 
__code  "10101sss"
__code  "10101sss"
__asm   XRA {s}
__asm   XRA {s}
 
 
T1 = {s}      ; NOP
T1 = {s}      ; NOP
T2 = _a       ; _a = XRL      ; #end, #fp_rc
T2 = _a       ; _a = XRL      ; #end, #fp_rc, #clr_acy
 
 
__code  "10110sss"
__code  "10110sss"
__asm   ORA {s}
__asm   ORA {s}
 
 
T1 = {s}      ; NOP
T1 = {s}      ; NOP
T2 = _a       ; _a = ORL      ; #end, #fp_rc
T2 = _a       ; _a = ORL      ; #end, #fp_rc, #clr_acy
 
 
__code  "10111sss"
__code  "10111sss"
__asm   CMP {s}
__asm   CMP {s}
 
 
T1 = {s}      ; NOP
T1 = {s}      ; NOP
Line 332... Line 336...
 
 
__code  "10100110"
__code  "10100110"
__asm   ANA M
__asm   ANA M
 
 
JSR read_m
JSR read_m
T2 = _a       ; _a = AND      ; #end, #fp_rc
T2 = _a       ; _a = AND      ; #end, #fp_rc, #clr_acy
 
 
__code  "10101110"
__code  "10101110"
__asm   XRA M
__asm   XRA M
 
 
JSR read_m
JSR read_m
T2 = _a       ; _a = XRL      ; #end, #fp_rc
T2 = _a       ; _a = XRL      ; #end, #fp_rc, #clr_acy
 
 
__code  "10110110"
__code  "10110110"
__asm   ORA M
__asm   ORA M
 
 
JSR read_m
JSR read_m
T2 = _a       ; _a = ORL      ; #end, #fp_rc
T2 = _a       ; _a = ORL      ; #end, #fp_rc, #clr_acy
 
 
 
 
__code  "10111110"
__code  "10111110"
__asm   CMP M
__asm   CMP M
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.