8-Bit Wonderland. Executing custom Code on the Nintendo Game Boy. Belial

Size: px
Start display at page:

Download "8-Bit Wonderland. Executing custom Code on the Nintendo Game Boy. Belial"

Transcription

1 8-Bit Wonderland Executing custom Code on the Nintendo Game Boy Belial

2 Table of contents 1 Fade In 2 Hardware 3 Software 4 Injection 5 Fade Out Belial 8-Bit Wonderland 2 / 36

3 Kickstart Belial 8-Bit Wonderland 3 / 36

4 Motivation Game Boy is well documented but the documentation is spread on the internet Simple architecture and good starting point to learn hardware development Cheap general purpose 8-bit device Fun :-) Belial 8-Bit Wonderland 4 / 36

5 Technical Details Presented in 1989 for the first time CPU: 8-bit (similar to the Z80 processor) 16KB physical RAM Games come on special cartridges containing a ROM and using 5 Volt 160x144 LCD-Display 4-Channel Sound Chip Serial Port Belial 8-Bit Wonderland 5 / 36

6 Memory Layout 0xFFFF 0xE000 0x8000 I/O Ports, Registers,... Internal Main RAM External RAM Internal Video RAM Upper ROM Region (Bank Switching) Lower ROM Region 0x0000 Belial 8-Bit Wonderland 6 / 36

7 Memory Layout 0xFFFF 0xE000 0x8000 I/O Ports, Registers,... Internal Main RAM External RAM Internal Video RAM Upper ROM Region (Bank Switching) Lower ROM Region 0x0000 Belial 8-Bit Wonderland 6 / 36

8 Memory Layout 0xFFFF 0xE000 0x8000 I/O Ports, Registers,... Internal Main RAM External RAM Internal Video RAM Upper ROM Region (Bank Switching) Lower ROM Region 0x0000 Belial 8-Bit Wonderland 6 / 36

9 Bus Introduction Arbiter Slave 1 Slave 2 Master 1 Master 2 Databus Adressbus Belial 8-Bit Wonderland 7 / 36

10 Game Boy Bus Cartridge (Slave) Data 8 16 Adress CS RD WR Game Boy (Master) Belial 8-Bit Wonderland 8 / 36

11 Game Boy Bus Cartridge (Slave) Data 8 16 Adress CS RD WR Game Boy (Master) Belial 8-Bit Wonderland 8 / 36

12 Bank Switching Game Boy maps only 32KB ROM into its memory Game Boy has only 16KB RAM Game Boymaps maps only 8KB external RAM into its memory Problem: What if we need more ROM and RAM? Solution: Bank Switching Belial 8-Bit Wonderland 9 / 36

13 Example: Bank Switching with 4 Banks 0xFFFF Game Boy Memory ROM on Cartridge Bank 3 0xFFFF Bank 2 0xC000 0x8000 Upper ROM Region (Bank Switching) Bank 1 0x8000 0x4000 0x0000 Lower ROM Region Bank 0 0x0000 Belial 8-Bit Wonderland 10 / 36

14 Complex Cartridge complex cartridge RAM with several Banks ROM with several Banks Battery Memory and Bank Switch Controller Game Boy Belial 8-Bit Wonderland 11 / 36

15 Simple Cartridge simple cartridge ROM with 2 Banks Game Boy Belial 8-Bit Wonderland 12 / 36

16 27C256 Belial 8-Bit Wonderland 13 / 36

17 27C256 Pin Layout Pin Name Description 01 OE Inverted Output Enable 07 VCC +5V Power Supply 08 VPP Needed for programming the EPROM 21 VSS Ground 27 CE Inverted Chip Enable 2-6, 9-17, 28 Address Bus 18-20, Data Bus Belial 8-Bit Wonderland 14 / 36

18 27C256 Pin Layout Pin Name Description 01 OE Inverted Output Enable 07 VCC +5V Power Supply 08 VPP Needed for programming the EPROM 21 VSS Ground 27 CE Inverted Chip Enable 2-6, 9-17, 28 Address Bus 18-20, Data Bus Belial 8-Bit Wonderland 14 / 36

19 27C256 Pin Layout Pin Name Description 01 OE Inverted Output Enable 07 VCC +5V Power Supply 08 VPP Needed for programming the EPROM 21 VSS Ground 27 CE Inverted Chip Enable 2-6, 9-17, 28 Address Bus 18-20, Data Bus Belial 8-Bit Wonderland 14 / 36

20 27C256 Pin Layout Pin Name Description 01 OE Inverted Output Enable 07 VCC +5V Power Supply 08 VPP Needed for programming the EPROM 21 VSS Ground 27 CE Inverted Chip Enable 2-6, 9-17, 28 Address Bus 18-20, Data Bus Belial 8-Bit Wonderland 14 / 36

21 27C256 Pin Layout Pin Name Description 01 OE Inverted Output Enable 07 VCC +5V Power Supply 08 VPP Needed for programming the EPROM 21 VSS Ground 27 CE Inverted Chip Enable 2-6, 9-17, 28 Address Bus 18-20, Data Bus Belial 8-Bit Wonderland 14 / 36

22 First Homebrew Cartridge Prototype Belial 8-Bit Wonderland 15 / 36

23 Second Homebrew Cartridge Prototype Belial 8-Bit Wonderland 16 / 36

24 ROM Header Layout 0x150 0x14D 0x134 0x104 0x100 Complement Byte Cartrige Type Informations Nintendo Logo Entry Point 0x060 0x000 Interrupt Entry Points Reset Entry Points Belial 8-Bit Wonderland 17 / 36

25 Interrupts V-Blank LCDC Status Timer Overflow Serial Transfer Completion High-to-Low of P10-P13 Belial 8-Bit Wonderland 18 / 36

26 Boot Sequence 1 Start internal boot ROM 2 Load Nintendo logo from cartridge and display it 3 Load Nintendo logo again and compare it with internal copy and execution if unequal 4 Add all bytes in cartridge between 0x134 to 0x14d. The sum is increased by 25. Stop execution if unequal to 0. 5 Start the game. Belial 8-Bit Wonderland 19 / 36

27 Vsync Display Content VSYNC Scanlines Pixel Belial 8-Bit Wonderland 20 / 36

28 8x8 Tile Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Belial 8-Bit Wonderland 21 / 36

29 Single Line of a Tile 0x00: x01: Belial 8-Bit Wonderland 22 / 36

30 Tiles in Memory Tile Data Table: Contains the tiles (16 byte per tile). Different tables for backgrounds and sprites. Background Tile Map: Tile numbers which refer to the TDT. Background Tile Map is displayed as background. Object Attribute Table: Is organized in so called blocks. Each blocks has a size of 4 bytes and consists of a tile number (refers to the sprite TDT), X and Y coordinate on screen and one byte for its attributes. Belial 8-Bit Wonderland 23 / 36

31 GBDK Open Source Project Ansi C-Compiler, Linker and Assembler APIs to access every hardware component Creates valid header with checksum, nintendo logo, etc. Belial 8-Bit Wonderland 24 / 36

32 Coding Guidelines Initialized global variables are located on the ROM. Uninitialized global variables are located in RAM and writable. Use 8-bit unsigned variables whenever possible. Avoid multiplication, division, modulo and floating point variables. Belial 8-Bit Wonderland 25 / 36

33 Case Study: Pong Clone 1 Disable display and interrupts. 2 Load sprites from ROM into VRAM TDT. 3 Enable display and interrupts. 4 Sleep until vertical synchronisation phase. 5 Game Logic 6 Update sprite positions on the display. 7 Goto 4. Belial 8-Bit Wonderland 26 / 36

34 Case Study: Pong Clone Demonstration Belial 8-Bit Wonderland 27 / 36

35 Introduction Modify an existing ROM Hide information in the ROM (Steganography) Information is displayed when key combination is hit Idea 1: Hook Interrupt Service Routines Idea 2: Modify ROM entry point Belial 8-Bit Wonderland 28 / 36

36 Injection Workflow 1 Consists of two parts: Injector and Payload 2 Allocate empty space in a ROM file 3 Patch org instructions in Payload asm source code 4 Ask user for secret message and copy it into the Payload source code 5 Assemble the Payload with TASM 6 Patch the ROM file and copy the Payload into it Belial 8-Bit Wonderland 29 / 36

37 Fix source code before injection.org $7B0F ld sp,$fff4 ; Create the Stack ld a,% ; No IRQs at all ldh ($ff),a... Belial 8-Bit Wonderland 30 / 36

38 First Attempt: Hooking Interrupts Before After Injected Code Gamepad Interrupt Game Game 0x150 0x150 Rest of Header Rest of Header 0x100 0x100 0x060 0x000 Gamepad Interrupt Reset Interrupts 0x060 0x000 Hooked Interrupt Reset Interrupts Belial 8-Bit Wonderland 31 / 36

39 Second Attempt: Entry Point Modification Before After Injected Code Old Entry Point Game Game 0x150 0x100 Rest of Header Entry Point 0x150 0x100 Rest of Header New Entry Point 0x060 0x000 Reset Interrupts 0x060 0x000 Reset Interrupts Belial 8-Bit Wonderland 32 / 36

40 Code Injection: Demonstration Demonstration Belial 8-Bit Wonderland 33 / 36

41 Conclusion Technical details about the Game Boy Modify an existing cartridge to execute home brew code Create our own home brew cartridge Developed with C a Pong clone which runs on the Game Boy Inserted code into an existing ROM Belial 8-Bit Wonderland 34 / 36

42 Further Work Sound Maybe Demo stuff Encryption Complexer cartridges Belial 8-Bit Wonderland 35 / 36

43 Questions Mail: Paper with all references and detailed description Beamer Slides All example programs (Pong, Injection,...) Homebrew cartridge Eagle layout Belial 8-Bit Wonderland 36 / 36

Dante Gonzales and Ian Doten

Dante Gonzales and Ian Doten Dante Gonzales and Ian Doten Overview History Game Boy and Game Boy Color Specs CPU architectures Intel 8080 Zilog Z80 Sharp LR35902 Sharp LR35902 in depth Changes from the Z80 to the LR35902 Memory Cartridge

More information

XiNES Design Document. XiNES is a Nintendo Entertainment System simulator coded in pure VHDL

XiNES Design Document. XiNES is a Nintendo Entertainment System simulator coded in pure VHDL XiNES Design Document William Blinn (wb169@columbia.edu) David Coulthart (davec@columbia.edu) Jay Fernandez (jjf112@columbia.ed) Neel Goyal (neel@columbia.edu) Jeffrey Lin (jlin@columbia.edu) XiNES is

More information

VDP plus User s manual. Ian Kim

VDP plus User s manual. Ian Kim VDP- 1000 plus User s manual Ian Kim Introduction VDP- 1000plus has a TMS9918(Video Disply Processor)for extra video output and SN76489(DCSG) for multi tone sound, now, we can use sprites and sound as

More information

6.111 Final Project Jonathan Downey Lauri Kauppila Brian Myhre

6.111 Final Project Jonathan Downey Lauri Kauppila Brian Myhre 6.111 Final Project Jonathan Downey Lauri Kauppila Brian Myhre Project Motivation Distinct Sub-systems Complex Behavior and Architecture FPGA Required Not Possible with Microcontroller Large Amount of

More information

Chapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware

More information

QUBBESoft P/D. QEP III Eprom Programmer For the Sinclair QL. User Manual

QUBBESoft P/D. QEP III Eprom Programmer For the Sinclair QL. User Manual QEP III Eprom Programmer For the Sinclair QL User Manual (Formerly by Care Electronics) QEP III is a very flexible EPROM programmer to be used with the Sinclair QL computer. The principal interface between

More information

Address connections Data connections Selection connections

Address connections Data connections Selection connections Interface (cont..) We have four common types of memory: Read only memory ( ROM ) Flash memory ( EEPROM ) Static Random access memory ( SARAM ) Dynamic Random access memory ( DRAM ). Pin connections common

More information

2. List the five interrupt pins available in INTR, TRAP, RST 7.5, RST 6.5, RST 5.5.

2. List the five interrupt pins available in INTR, TRAP, RST 7.5, RST 6.5, RST 5.5. DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING EE6502- MICROPROCESSORS AND MICROCONTROLLERS UNIT I: 8085 PROCESSOR PART A 1. What is the need for ALE signal in

More information

Contents. Main Memory Memory access time Memory cycle time. Types of Memory Unit RAM ROM

Contents. Main Memory Memory access time Memory cycle time. Types of Memory Unit RAM ROM Memory Organization Contents Main Memory Memory access time Memory cycle time Types of Memory Unit RAM ROM Memory System Virtual Memory Cache Memory - Associative mapping Direct mapping Set-associative

More information

8051 Interfacing: Address Map Generation

8051 Interfacing: Address Map Generation 85 Interfacing: Address Map Generation EE438 Fall2 Class 6 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas 85 Interfacing Address Mapping Use address bus and

More information

CPE/EE 421/521 Fall 2004 Chapter 4 The CPU Hardware Model. Dr. Rhonda Kay Gaede UAH. The CPU Hardware Model - Overview

CPE/EE 421/521 Fall 2004 Chapter 4 The CPU Hardware Model. Dr. Rhonda Kay Gaede UAH. The CPU Hardware Model - Overview CPE/EE 421/521 Fall 2004 Chapter 4 The 68000 CPU Hardware Model Dr. Rhonda Kay Gaede UAH Fall 2004 1 The 68000 CPU Hardware Model - Overview 68000 interface Timing diagram Minimal configuration using the

More information

Battleship. Magnus Hultin, Adam Johansson. Supervisor: Bertil Lindvall

Battleship. Magnus Hultin, Adam Johansson. Supervisor: Bertil Lindvall Battleship Magnus Hultin, Adam Johansson Supervisor: Bertil Lindvall 1 Abstract This project was made during the digital project course (EITF40) at Lund university. The aim of this project was to construct

More information

Programming The Nintendo Game Boy Advance: The Unofficial Guide Copyright (c)2003 by Jonathan S. Harbour --

Programming The Nintendo Game Boy Advance: The Unofficial Guide Copyright (c)2003 by Jonathan S. Harbour -- !"#$ & ' & ' (' ) * + $, Game Boy Handheld Systems -./. 1 2 2 3 ' 4- Table 2.1 Game Boy Specifications Model CPU Memory Display Colors Game Boy 8-bit Z8 4.17 MHz 64 Kbits 16 x 144 4 Game Boy Pocket 8-bit

More information

ECE 471 Embedded Systems Lecture 5

ECE 471 Embedded Systems Lecture 5 ECE 471 Embedded Systems Lecture 5 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 13 September 2016 HW#2 is due Thursday It is going OK? Announcements 1 Homework #1 Review Characteristics

More information

EEE3410 Microcontroller Applications Department of Electrical Engineering Lecture 4 The 8051 Architecture

EEE3410 Microcontroller Applications Department of Electrical Engineering Lecture 4 The 8051 Architecture Department of Electrical Engineering Lecture 4 The 8051 Architecture 1 In this Lecture Overview General physical & operational features Block diagram Pin assignments Logic symbol Hardware description Pin

More information

Memory & Simple I/O Interfacing

Memory & Simple I/O Interfacing Chapter 10 Memory & Simple I/O Interfacing Expected Outcomes Explain the importance of tri-state devices in microprocessor system Distinguish basic type of semiconductor memory and their applications Relate

More information

MEMORY INTERFACING OF 8051/8031 MICROCONTROLLER

MEMORY INTERFACING OF 8051/8031 MICROCONTROLLER MEMORY INTERFACING OF 8051/8031 MICROCONTROLLER An 8031 microcontroller based system requires 8kb program memory and 8kb external data memory. Also it requires 8279 for keyboard/display interface and 8255

More information

Ultimate1MB expansion features

Ultimate1MB expansion features Ultimate1MB expansion features Ultimate1MB expansion was designed with few things in my mind: to be as much solderless as possible (only RW, PHI2, HALT and RESET lines need soldering) fully flashable SpartaDOS-X

More information

CMS-8GP32. A Motorola MC68HC908GP32 Microcontroller Board. xiom anufacturing

CMS-8GP32. A Motorola MC68HC908GP32 Microcontroller Board. xiom anufacturing CMS-8GP32 A Motorola MC68HC908GP32 Microcontroller Board xiom anufacturing 2000 717 Lingco Dr., Suite 209 Richardson, TX 75081 (972) 994-9676 FAX (972) 994-9170 email: Gary@axman.com web: http://www.axman.com

More information

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to?

2. (2 pts) If an external clock is used, which pin of the 8051 should it be connected to? ECE3710 Exam 2. Name _ Spring 2013. 5 pages. 102 points, but scored out of 100. You may use any non-living resource to complete this exam. Any hint of cheating will result in a 0. Part 1 Short Answer 1.

More information

ELEG3924 Microprocessor

ELEG3924 Microprocessor Department of Electrical Engineering University of Arkansas ELEG3924 Microprocessor Ch.2 Assembly Language Programming Dr. Jing Yang jingyang@uark.edu 1 OUTLINE Inside 8051 Introduction to assembly programming

More information

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor 1 This presentation was part of TI s Monthly TMS320 DSP Technology Webcast Series April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor To view this 1-hour 1 webcast

More information

ELEG3923 Microprocessor Ch.2 Assembly Language Programming

ELEG3923 Microprocessor Ch.2 Assembly Language Programming Department of Electrical Engineering University of Arkansas ELEG3923 Microprocessor Ch.2 Assembly Language Programming Dr. Jingxian Wu wuj@uark.edu OUTLINE 2 Inside 8051 Introduction to assembly programming

More information

Phoenix Technologies, Ltd.

Phoenix Technologies, Ltd. Phoenix Technologies, Ltd. AwardBIOS Version 4.51PG Post Codes & Error Messages Table of Contents POST Codes - 2 Error Messages - 7 ----------------------------------------------- Proprietary Notice and

More information

EE 308 Spring Lecture 28 March 30, 2012 Review for Exam 2. Introduction to the MC9S12 Expanded Mode

EE 308 Spring Lecture 28 March 30, 2012 Review for Exam 2. Introduction to the MC9S12 Expanded Mode Lecture 28 March 30, 2012 Review for Exam 2 Introduction to the MC9S12 Expanded Mode 1 Review for Exam 2 1. C Programming (a) Setting and clearing bits in registers PORTA = PORTA 0x02; PORTA = PORTA &

More information

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly.

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly. Unit I 8085 and 8086 PROCESSOR Introduction to microprocessor A microprocessor is a clock-driven semiconductor device consisting of electronic logic circuits manufactured by using either a large-scale

More information

EE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1. Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University

EE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1. Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University EE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1 Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University What is Assembly Language? Assembly language is a programming language

More information

Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform.

Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform. Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform www.sierraradio.net www.hamstack.com Topics Introduction Hardware options Software development HamStack project

More information

e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interfacing External Devices using Embedded C Module No: CS/ES/22

e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interfacing External Devices using Embedded C Module No: CS/ES/22 e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interfacing External Devices using Embedded C Module No: CS/ES/22 Quadrant 1 e-text In this lecture interfacing of external devices

More information

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: 1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit

More information

CHAPTER TWELVE - Memory Devices

CHAPTER TWELVE - Memory Devices CHAPTER TWELVE - Memory Devices 12.1 6x1,024 = 16,384 words; 32 bits/word; 16,384x32 = 524,288 cells 12.2 16,384 addresses; one per word. 12.3 2 16 = 65,536 words = 64K. Thus, memory capacity is 64Kx4.

More information

ECE254 Lab3 Tutorial. Introduction to MCB1700 Hardware Programming. Irene Huang

ECE254 Lab3 Tutorial. Introduction to MCB1700 Hardware Programming. Irene Huang ECE254 Lab3 Tutorial Introduction to MCB1700 Hardware Programming Irene Huang Lab3 Requirements : API Dynamic Memory Management: void * os_mem_alloc (int size, unsigned char flag) Flag takes two values:

More information

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY CHAPTER 5 : Introduction to Intel 8085 Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY The 8085A(commonly known as the 8085) : Was first introduced in March 1976 is an 8-bit microprocessor with 16-bit address

More information

The purpose of this course is to provide an introduction to the RL78's flash features and archectecture including security features, code and data

The purpose of this course is to provide an introduction to the RL78's flash features and archectecture including security features, code and data 1 The purpose of this course is to provide an introduction to the RL78's flash features and archectecture including security features, code and data flash organization as well as self and external programming

More information

EEM478-WEEK7 PART B Bootloader

EEM478-WEEK7 PART B Bootloader EEM478-WEEK7 PART B Bootloader Learning Objectives Need for a bootloader. What happens during a reset. Boot modes and processes. Memory map. Chapter 9, Slide 2 VCC EPROM What is the bootloader? VCC Boot

More information

Test ROM for Zaccaria 1B1165 CPU Board

Test ROM for Zaccaria 1B1165 CPU Board Introduction Test ROM for Zaccaria 1B1165 CPU Board Version 1.2 13 June 2008 David Gersic http://www.zaccaria pinball.com One of the challenges to working on an unknown CPU board is that Zaccaria's software

More information

Instruction Set Architecture of MIPS Processor

Instruction Set Architecture of MIPS Processor CSE 3421/5421: Introduction to Computer Architecture Instruction Set Architecture of MIPS Processor Presentation B Study: 2.1 2.3, 2.4 2.7, 2.10 and Handout MIPS Instructions: 32-bit Core Subset Read:

More information

8051 INTERFACING TO EXTERNAL MEMORY

8051 INTERFACING TO EXTERNAL MEMORY 8051 INTERFACING TO EXTERNAL MEMORY Memory Capacity The number of bits that a semiconductor memory chip can store Called chip capacity It can be in units of Kbits (kilobits), Mbits (megabits), and so on

More information

8086 Interrupts and Interrupt Responses:

8086 Interrupts and Interrupt Responses: UNIT-III PART -A INTERRUPTS AND PROGRAMMABLE INTERRUPT CONTROLLERS Contents at a glance: 8086 Interrupts and Interrupt Responses Introduction to DOS and BIOS interrupts 8259A Priority Interrupt Controller

More information

FPGABoy An Implementation of the Nintendo GameBoy on an FPGA

FPGABoy An Implementation of the Nintendo GameBoy on an FPGA FPGABoy An Implementation of the Ninto GameBoy on an FPGA Trevor Rundell, Oleg Kozhushnyan 6.111 Final Project May 14, 2009 Table of Contents Table of Figures... 4 Table of Tables... 4 Abstract... 5 System

More information

The Early System Start-Up Process. Group Presentation by: Tianyuan Liu, Caiwei He, Krishna Parasuram Srinivasan, Wenbin Xu

The Early System Start-Up Process. Group Presentation by: Tianyuan Liu, Caiwei He, Krishna Parasuram Srinivasan, Wenbin Xu The Early System Start-Up Process Group Presentation by: Tianyuan Liu, Caiwei He, Krishna Parasuram Srinivasan, Wenbin Xu 1 Boot Process Booting is the initialization of a computerized system In Linux,

More information

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS UNIT I INTRODUCTION TO 8085 8085 Microprocessor - Architecture and its operation, Concept of instruction execution and timing diagrams, fundamentals of

More information

Architecture of Computers and Parallel Systems Part 2: Communication with Devices

Architecture of Computers and Parallel Systems Part 2: Communication with Devices Architecture of Computers and Parallel Systems Part 2: Communication with Devices Ing. Petr Olivka petr.olivka@vsb.cz Department of Computer Science FEI VSB-TUO Architecture of Computers and Parallel Systems

More information

Reset Initialization nc. Table 2. Clock Default Modes MODCK[1 3] Input Clock Frequency CPM Multiplication Factor CPM Frequency Core Multiplication Fac

Reset Initialization nc. Table 2. Clock Default Modes MODCK[1 3] Input Clock Frequency CPM Multiplication Factor CPM Frequency Core Multiplication Fac nc. Rev. 0, 02/2003 Initializing Flash Memory for the MPC8260ADS The MPC8260ADS (Application Development System ADS) can be initialized and configured with data from the programmable Board Control and

More information

)8-,768'HY.LW 2YHUYLHZ. )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein Dreieich-Buchschlag, Germany

)8-,768'HY.LW 2YHUYLHZ. )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein Dreieich-Buchschlag, Germany )8-,768'HY.LW 2YHUYLHZ )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein 6-10 63303 Dreieich-Buchschlag, Germany Revision: V1.0 Date: 05.08.1999 Introduction to FUJITSU Development Kit for 16LX CPU family DevKit16

More information

PCI to SH-3 AN Hitachi SH3 to PCI bus

PCI to SH-3 AN Hitachi SH3 to PCI bus PCI to SH-3 AN Hitachi SH3 to PCI bus Version 1.0 Application Note FEATURES GENERAL DESCRIPTION Complete Application Note for designing a PCI adapter or embedded system based on the Hitachi SH-3 including:

More information

14:332:331. Week 13 Basics of Cache

14:332:331. Week 13 Basics of Cache 14:332:331 Computer Architecture and Assembly Language Fall 2003 Week 13 Basics of Cache [Adapted from Dave Patterson s UCB CS152 slides and Mary Jane Irwin s PSU CSE331 slides] 331 Lec20.1 Fall 2003 Head

More information

Alex Milenkovich 1. CPE/EE 421 Microcomputers: Motorola The CPU Hardware Model. Outline

Alex Milenkovich 1. CPE/EE 421 Microcomputers: Motorola The CPU Hardware Model. Outline Outline CPE/EE 421 Microcomputers: Motorola 68000 The CPU Hardware Model Instructor: Dr Aleksandar Milenkovic Lecture Notes 68000 interface Timing diagram Minimal configuration using the 68000 Extensions

More information

Topic 3. ARM Cortex M3(i) Memory Management and Access. Department of Electronics Academic Year 14/15. (ver )

Topic 3. ARM Cortex M3(i) Memory Management and Access. Department of Electronics Academic Year 14/15. (ver ) Topic 3 ARM Cortex M3(i) Memory Management and Access Department of Electronics Academic Year 14/15 (ver 25-10-2014) Index 3.1. Memory maps 3.2. Memory expansion 3.3. Memory management & Data alignment

More information

Memory Interfacing & decoding. Intel CPU s

Memory Interfacing & decoding. Intel CPU s Memory Interfacing & decoding in Intel CPU s Outline Address decoding Chip select Memory configurations Minimum Mode - - A19 - A19 - Simplified Drawing of 8088 Minimum Mode MEMORY MEMW When Memory is selected?

More information

Chapter 1. Microprocessor architecture ECE Dr. Mohamed Mahmoud.

Chapter 1. Microprocessor architecture ECE Dr. Mohamed Mahmoud. Chapter 1 Microprocessor architecture ECE 3130 Dr. Mohamed Mahmoud The slides are copyright protected. It is not permissible to use them without a permission from Dr Mahmoud http://www.cae.tntech.edu/~mmahmoud/

More information

USB3DevIP Data Recorder by FAT32 Design Rev Mar-15

USB3DevIP Data Recorder by FAT32 Design Rev Mar-15 1 Introduction USB3DevIP Data Recorder by FAT32 Design Rev1.1 13-Mar-15 Figure 1 FAT32 Data Recorder Hardware on CycloneVE board The demo system implements USB3 Device IP to be USB3 Mass storage device

More information

University of Florida EEL 4744 Fall 1998 Dr. Eric M. Schwartz

University of Florida EEL 4744 Fall 1998 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering 15 October 199 Professor in ECE 31-Dec-9 12:22 PM Page 1/ Instructions: Show all work on the front of the test papers. If you need more room, make a clearly

More information

8051 I/O and 8051 Interrupts

8051 I/O and 8051 Interrupts 8051 I/O and 8051 Interrupts Class 7 EE4380 Fall 2002 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas Agenda 8051 I/O Interfacing Scanned LED displays LCD displays

More information

ECE254 Lab3 Tutorial. Introduction to Keil LPC1768 Hardware and Programmers Model. Irene Huang

ECE254 Lab3 Tutorial. Introduction to Keil LPC1768 Hardware and Programmers Model. Irene Huang ECE254 Lab3 Tutorial Introduction to Keil LPC1768 Hardware and Programmers Model Irene Huang Lab3 Part A Requirements (1) A function to obtain the task information OS_RESULT os_tsk_get(os_tid task_id,

More information

Errata details published in this document refer to the following silicon: netx100, Revision A (Step A, ROM Rev. 2, Boot loader major vers.

Errata details published in this document refer to the following silicon: netx100, Revision A (Step A, ROM Rev. 2, Boot loader major vers. 1/10 A. Affected Silicon Revision Errata details published in this document refer to the following silicon: netx100, Revision A (Step A, ROM Rev. 2, Boot loader major vers. 0x41) B. Document Revision History

More information

_ V Intel 8051 Family In-Circuit Emulation. Contents. Technical Notes

_ V Intel 8051 Family In-Circuit Emulation. Contents. Technical Notes _ V9.12. 225 Technical Notes Intel 8051 Family In-Circuit Emulation This document is intended to be used together with the CPU reference manual provided by the silicon vendor. This document assumes knowledge

More information

Assembly Language for x86 Processors 7 th Edition. Chapter 2: x86 Processor Architecture

Assembly Language for x86 Processors 7 th Edition. Chapter 2: x86 Processor Architecture Assembly Language for x86 Processors 7 th Edition Kip Irvine Chapter 2: x86 Processor Architecture Slides prepared by the author Revision date: 1/15/2014 (c) Pearson Education, 2015. All rights reserved.

More information

_ V Intel 8085 Family In-Circuit Emulation. Contents. Technical Notes

_ V Intel 8085 Family In-Circuit Emulation. Contents. Technical Notes _ V9.12. 225 Technical Notes Intel 8085 Family In-Circuit Emulation This document is intended to be used together with the CPU reference manual provided by the silicon vendor. This document assumes knowledge

More information

ECE 598 Advanced Operating Systems Lecture 4

ECE 598 Advanced Operating Systems Lecture 4 ECE 598 Advanced Operating Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 January 2016 Announcements HW#1 was due HW#2 was posted, will be tricky Let me know

More information

Microprocessor Architecture. mywbut.com 1

Microprocessor Architecture. mywbut.com 1 Microprocessor Architecture mywbut.com 1 Microprocessor Architecture The microprocessor can be programmed to perform functions on given data by writing specific instructions into its memory. The microprocessor

More information

HOW TO DIVIDE BOOT AND FLASH AREAS

HOW TO DIVIDE BOOT AND FLASH AREAS HOW TO DIVIDE BOOT AND FLASH AREAS CC-RL C COMPILER FOR RL78 FAMILY Oct 10, 2016 Rev. 2.00 Software Product Marketing Department, Software Business Division Renesas System Design Co., Ltd. R20UT3475EJ0200

More information

PCMCIA Flash Memory Card

PCMCIA Flash Memory Card Eight Bit Flash Memory Card (Intel based) General Description 512KB, 1, 2, 4 and 8 MEGABYTE Features The FEA Econo Flash card series offers a low cost and high performance eight bit linear Flash solid

More information

NES FPGA Emulator. Sergio Morales Hector Dominguez Omar Torres Randy Truong Kevin Mitton

NES FPGA Emulator. Sergio Morales Hector Dominguez Omar Torres Randy Truong Kevin Mitton NES FPGA Emulator UCR CS 179J Sergio Morales Hector Dominguez Omar Torres Randy Truong Kevin Mitton SUMMER 2014 Who are We? Computer Science and Engineering Students trying to implement an NES emulator

More information

s132_nrf52 release notes

s132_nrf52 release notes s132_nrf52 release notes Table of Contents Introduction to the s132_nrf52 release notes These release notes describe the changes in the s132_nrf52 from version to version. The release notes are intended

More information

ME 475 Lab2 Introduction of PIC and Programming. Instructor: Zhen Wang

ME 475 Lab2 Introduction of PIC and Programming. Instructor: Zhen Wang ME 475 Lab2 Introduction of PIC and Programming Instructor: Zhen Wang 2013.1.25 Outline Lecture Introduction of PIC microcontroller Programming cycle Read CH5 Programming guidelines Read CH6 Sample program

More information

Mobile Operating Systems Lesson 01 Operating System

Mobile Operating Systems Lesson 01 Operating System Mobile Operating Systems Lesson 01 Operating System Oxford University Press 2007. All rights reserved. 1 Operating system (OS) The master control program Manages all software and hardware resources Controls,

More information

Solutions - Homework 2 (Due date: October 4 5:30 pm) Presentation and clarity are very important! Show your procedure!

Solutions - Homework 2 (Due date: October 4 5:30 pm) Presentation and clarity are very important! Show your procedure! Solutions - Homework 2 (Due date: October 4 th @ 5:30 pm) Presentation and clarity are very important! Show your procedure! PROBLEM 1 (28 PTS) a) What is the minimum number of bits required to represent:

More information

3. (a) Explain the steps involved in the Interfacing of an I/O device (b) Explain various methods of interfacing of I/O devices.

3. (a) Explain the steps involved in the Interfacing of an I/O device (b) Explain various methods of interfacing of I/O devices. Code No: R05320202 Set No. 1 1. (a) Discuss the minimum mode memory control signals of 8086? (b) Explain the write cycle operation of the microprocessor with a neat timing diagram in maximum mode. [8+8]

More information

8051 Microcontroller

8051 Microcontroller 8051 Microcontroller The 8051, Motorola and PIC families are the 3 leading sellers in the microcontroller market. The 8051 microcontroller was originally developed by Intel in the late 1970 s. Today many

More information

Operating Systems Course 2 nd semester 2016/2017 Chapter 1: Introduction

Operating Systems Course 2 nd semester 2016/2017 Chapter 1: Introduction Operating Systems Course 2 nd semester 2016/2017 Chapter 1: Introduction Lecturer: Eng. Mohamed B. Abubaker Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition What is an

More information

1. Attempt any three of the following: 15

1. Attempt any three of the following: 15 (2½ hours) Total Marks: 75 N. B.: (1) All questions are compulsory. (2) Make suitable assumptions wherever necessary and state the assumptions made. (3) Answers to the same question must be written together.

More information

CISC RISC. Compiler. Compiler. Processor. Processor

CISC RISC. Compiler. Compiler. Processor. Processor Q1. Explain briefly the RISC design philosophy. Answer: RISC is a design philosophy aimed at delivering simple but powerful instructions that execute within a single cycle at a high clock speed. The RISC

More information

Module 3. Embedded Systems I/O. Version 2 EE IIT, Kharagpur 1

Module 3. Embedded Systems I/O. Version 2 EE IIT, Kharagpur 1 Module 3 Embedded Systems I/O Version 2 EE IIT, Kharagpur 1 Lesson 15 Interrupts Version 2 EE IIT, Kharagpur 2 Instructional Objectives After going through this lesson the student would learn Interrupts

More information

Chapter TEN. Memory and Memory Interfacing

Chapter TEN. Memory and Memory Interfacing Chapter TEN Memory and Memory Interfacing OBJECTIVES this chapter enables the student to: Define the terms capacity, organization, and speed as used in semiconductor memories. Calculate the chip capacity

More information

Adding PC Connectivity to the MTS-88 Microcomputer Teaching. Omar Walid Abdul-Wahab, Wameedh Nazar Flayyih. System

Adding PC Connectivity to the MTS-88 Microcomputer Teaching. Omar Walid Abdul-Wahab, Wameedh Nazar Flayyih. System Adding PC Connectivity to the MTS-88 Microcomputer Teaching System Computer Engineering Department, University of Baghdad, Baghdad, Iraq omarwalid1@yahoo.com, wam_nazar@yahoo.com doi: 10.4156/ijact.vol2.issue2.16

More information

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes Course Introduction Purpose: This course provides an overview of the Direct Memory Access Controller and the Interrupt Controller on the SH-2 and SH-2A families of 32-bit RISC microcontrollers, which are

More information

The SMCS332SpW and SMCS116SpW: Development Status

The SMCS332SpW and SMCS116SpW: Development Status SpaceWire-SnP Working Group ESTEC, Sept 15 th, 2004 The SMCS332SpW and SMCS116SpW: Development Data Systems Division luca.tunesi@esa.int What is the SMCS? SMCS (Scalable Multi-channel Communication Sub-system)!

More information

CPSC 352. Chapter 7: Memory. Computer Organization. Principles of Computer Architecture by M. Murdocca and V. Heuring

CPSC 352. Chapter 7: Memory. Computer Organization. Principles of Computer Architecture by M. Murdocca and V. Heuring 7- CPSC 352 Computer Organization 7-2 Chapter Contents 7. The Memory Hierarchy 7.2 Random Access Memory 7.3 Chip Organization 7.4 Commercial Memory Modules 7.5 Read-Only Memory 7.6 Cache Memory 7.7 Virtual

More information

SEIKO EPSON CORPORATION

SEIKO EPSON CORPORATION CMOS 16-bit Application Specific Controller 16-bit RISC CPU Core S1C17 (Max. 33 MHz operation) 128K-Byte Flash ROM 16K-Byte RAM (IVRAM are shared by CPU and LCDC) DSP function (Multiply, Multiply and Accumulation,

More information

The Microcontroller Idea Book

The Microcontroller Idea Book The following material is excerpted from: The Microcontroller Idea Book Circuits, Programs, & Applications featuring the 8052-BASIC Microcontroller by Jan Axelson copyright 1994, 1997 by Jan Axelson ISBN

More information

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University Virtual addresses Virtual memory addresses (what the process uses) Page

More information

Resident Program Manager Liberation Software

Resident Program Manager Liberation Software Resident Program Manager Liberation Software Version 1.0 (c) 1988 Liberation Software Introduction Resident Program Manager is a utility program for creating resident tiles. A resident file contains one

More information

EB-51 Low-Cost Emulator

EB-51 Low-Cost Emulator EB-51 Low-Cost Emulator Development Tool for 80C51 Microcontrollers FEATURES Emulates 80C51 Microcontrollers and Derivatives Real-Time Operation up to 40 MHz 3.3V or 5V Voltage Operation Source-Level Debugger

More information

The Freescale MC908JL16 Microcontroller

The Freescale MC908JL16 Microcontroller Ming Hsieh Department of Electrical Engineering EE 459Lx - Embedded Systems Design Laboratory The Freescale MC908JL16 Microcontroller by Allan G. Weber 1 Introduction The Freescale MC908JL16 (also called

More information

Assembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture

Assembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 2: IA-32 Processor Architecture Chapter Overview General Concepts IA-32 Processor Architecture IA-32 Memory Management Components

More information

Contents. Cortex M On-Chip Emulation. Technical Notes V

Contents. Cortex M On-Chip Emulation. Technical Notes V _ Technical Notes V9.12.225 Cortex M On-Chip Emulation Contents Contents 1 1 Introduction 2 2 Access Breakpoints 3 3 Trace 5 4 NXP LPC 5 4.1 Boot and Memory Remapping 5 4.2 LPC17xx Startup 5 4.1 LPC11A02/04

More information

Microprocessors and Microcontrollers Prof. Santanu Chattopadhyay Department of E & EC Engineering Indian Institute of Technology, Kharagpur

Microprocessors and Microcontrollers Prof. Santanu Chattopadhyay Department of E & EC Engineering Indian Institute of Technology, Kharagpur Microprocessors and Microcontrollers Prof. Santanu Chattopadhyay Department of E & EC Engineering Indian Institute of Technology, Kharagpur Lecture - 09 8085 Microprocessors (Contd.) (Refer Slide Time:

More information

µtasker Document µtasker Bare-Minimum Boot Loader

µtasker Document µtasker Bare-Minimum Boot Loader Embedding it better... µtasker Document µtasker Bare-Minimum Boot Loader utasker_bm_loader.doc/1.04 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. µtasker bare-minimum loader...4

More information

Evolution of CPUs & Memory in Video Game Consoles. Curtis Geiger & Matthew Meehan

Evolution of CPUs & Memory in Video Game Consoles. Curtis Geiger & Matthew Meehan Evolution of CPUs & Memory in Video Game Consoles Curtis Geiger & Matthew Meehan 1 ST GENERATION Magnavox Odyssey first console, released 1972 No CPU or Memory entirely made up of transistors, resistors,

More information

A.N.A.L.O.G. #15, January 1984 TRANSPORTING ATARI COMPUTER PROGRAMS TO THE ATARI by Claus Buchholz 6502 CPU 16K RAM ANTIC

A.N.A.L.O.G. #15, January 1984 TRANSPORTING ATARI COMPUTER PROGRAMS TO THE ATARI by Claus Buchholz 6502 CPU 16K RAM ANTIC A.N.A.L.O.G. #15, January 1984 TRANSPORTING ATARI COMPUTER PROGRAMS TO THE ATARI 5200 by Claus Buchholz Annotations by Dan Boris 4/2002 When Atari designed the 5200 "Supersystem" as a successor to the

More information

CS 16: Assembly Language Programming for the IBM PC and Compatibles

CS 16: Assembly Language Programming for the IBM PC and Compatibles CS 16: Assembly Language Programming for the IBM PC and Compatibles Discuss the general concepts Look at IA-32 processor architecture and memory management Dive into 64-bit processors Explore the components

More information

Data Sheet W65C02DB Developer Board

Data Sheet W65C02DB Developer Board THE WESTERN DESIGN CENTER, INC. 2166 E. Brown Rd. Mesa, AZ 85213 Ph 480-962-4545 Fx 480-835-6442 www.westerndesigncenter.com Data Sheet W65C02DB Developer Board Copyright 2001 by The Western Design Center,

More information

EE251: Thursday November 15

EE251: Thursday November 15 EE251: Thursday November 15 Major new topic: MEMORY A KEY topic HW #7 due today; HW #8 due Thursday, Nov. 29 Lab #8 finishes this week; due week of Nov. 26 All labs MUST be completed/handed-in by Dec.

More information

PIC Microcontroller Introduction

PIC Microcontroller Introduction PIC Microcontroller Introduction The real name of this microcontroller is PICmicro (Peripheral Interface Controller), but it is better known as PIC. Its first ancestor was designed in 1975 by General Instruments.

More information

CPCI-IPC. Intelligent DSP Based Dual IndustryPack Carrier for CompactPCI systems REFERENCE MANUAL Version 2.

CPCI-IPC. Intelligent DSP Based Dual IndustryPack Carrier for CompactPCI systems REFERENCE MANUAL Version 2. CPCI-IPC Intelligent DSP Based Dual IndustryPack Carrier for CompactPCI systems REFERENCE MANUAL 724-20-000-4000 Version 2.0 May 1998 ALPHI TECHNOLOGY CORPORATION 6202 S. Maple Avenue #120 Tempe, AZ 85283

More information

APPLICATION NOTE 3575 In-Application Programming (IAP) of the MAXQ7665 Sector-Erasable Program and Data Flash

APPLICATION NOTE 3575 In-Application Programming (IAP) of the MAXQ7665 Sector-Erasable Program and Data Flash Maxim > Design Support > Technical Documents > Application Notes > Automotive > APP 3575 Maxim > Design Support > Technical Documents > Application Notes > Basestations/Wireless Infrastructure > APP 3575

More information

Allmost all systems contain two main types of memory :

Allmost all systems contain two main types of memory : Memory Interface Allmost all systems contain two main types of memory : read-only memory (ROM) system software and permanent system data random access memory (RAM) or read/write memory application software

More information

Game Boy Color. System Design. David Campbell, Jonathan Leung, Bailey Forrest

Game Boy Color. System Design. David Campbell, Jonathan Leung, Bailey Forrest Game Boy Color System Design David Campbell, Jonathan Leung, Bailey Forrest Fall 2014 1 Table of Contents Forward 1 Design Overview 1.1 What was built 1.2 Credit 1.3 Detailed Software Description 1.4 System

More information

POD 51EH C517A 24 XH0 XH1 XH2 XH3 XH4 XH5 XH6 XH7 XL7 XL6 XL5 XL4 XL3 XL2 XL1 XL0 PE EA ALE PSEN JP1. Figure 1. POD 51EH C517A 24

POD 51EH C517A 24 XH0 XH1 XH2 XH3 XH4 XH5 XH6 XH7 XL7 XL6 XL5 XL4 XL3 XL2 XL1 XL0 PE EA ALE PSEN JP1. Figure 1. POD 51EH C517A 24 6 7.. P P POD 5EH C57A 4 RST R PWD Y IDL Y EML G MON Y MERR R JP T JP7 ANB FLF EMUL XH0 XH XH XH XH4 XH5 XH6 XH7 T XS MCU XS T 7 6 5 4 0 P P P6 P7 JP0 XL7 XL6 XL5 XL4 XL XL XL XL0 PE EA ALE PSEN JP P5

More information