Quicksort (for 16-bit Elements)
|
|
- Leslie Henderson
- 6 years ago
- Views:
Transcription
1 :30 1/9 Quicksort (for 16-bit Elements) Quicksort (for 16-bit Elements) by Vladimir Lidovski aka litwr, 13 Aug 2016 (with help of BigEd) It is well known that the best, the fastest sort routine is Quicksort. It is very odd that its implementations for 6502 for all of 42 years (from 1975 to 2016) have a bit blurred and unofficial status. The main problem is in the stack depending nature of Quicksort and the stack limit of 256 bytes of 6502 architecture. It is solvable. The next Pascal code was translated to 6502 assembler. (* it sorts array of longint Basearray with the index range from 1 to Size *) (* it should be invoked by QuickSort(1, Size) *) (* Basearray elements and x local variable type maybe any numeric, string, set,... type *) Procedure QuickSort(LBound, UBound: word); var i, j: word; x: longint; begin i := LBound; j := UBound; x := BaseArray[(i + j) div 2]; repeat while BaseArray[i] > x do inc(i); while x > BaseArray[j] do dec(j); if i <= j then begin Exchange(i, j); inc(i); dec(j) end until i > j; if LBound < j then QuickSort(LBound, j); if i < UBound then QuickSort(i, UBound) end; TMPx assembler is used but it is very easy to convert it to any other 6502 assembler syntax. i2lo = zp0lo i2hi = zp0hi j2lo = zp2lo j2hi = zp2hi x_lo = m2lo x_hi = m2hi quicksort cpx #16 ;stack limit bcs qsok
2 Last update: :28 qs_csp ldx #0 dex dex txs qsok lda $103,x lda $104,x sta i2hi ldy $106,x sty j2hi lda $105,x clc and #$fc sta zp1lo tya adc i2hi ror sta zp1hi ror zp1lo base:quicksort_16-bit_elements ;this code works only for the even align ldy #0 lda (zp1lo),y sta x_lo lda (zp1lo),y sta x_hi qsloop1 ldy #0 cmp x_lo sbc x_hi bcs qs_l1 ;compare array[i] and x lda #2 bcc qsloop1 inc i2hi bne qsloop1 ;=jmp qs_l1 ldy #0 ;compare array[j] and x lda x_lo cmp (j2lo),y lda x_hi sbc (j2lo),y bcs qs_l3 Printed on :30
3 :30 3/9 Quicksort (for 16-bit Elements) sbc #1 bcs qs_l1 dec j2hi bne qs_l1 ;=jmp qs_l3 ;compare i and j cmp i2lo sbc i2hi bcc qs_l8 qs_l6 lda (j2lo),y ;exchange elements with i and j indices tax sta (j2lo),y txa sta (i2lo),y dey bpl qs_l6 ;clc lda #1 bcc *+4 inc i2hi sec sbc #2 bcs *+4 dec j2hi ; cmp i2lo sbc i2hi ;bcc *+5 ;jmp qsloop1 bcs qsloop1 ;CY=1 qs_l8 lda $103,x cmp j2lo lda $104,x sbc j2hi bcs qs_l5
4 Last update: :28 base:quicksort_16-bit_elements qs_l5 qs_l7 lda $104,x lda $103,x jsr quicksort sta i2hi cmp $105,x sbc $106,x bcs qs_l7 lda $106,x lda $105,x jsr quicksort rts zp0lo, zp0hi, zp1lo, zp1hi, zp2lo, zp2hi are zero page bytes. Low byte should precede high. m2lo and m2hi are bytes which maybe situated anywhere in RAM but it is better for speed to put them at zero page too. The invocation should be in the next form. lda #>array+size2-2 lda #<array+size2-2 lda #>array Printed on :30
5 :30 5/9 Quicksort (for 16-bit Elements) lda #<array stx qs_csp+1 jsr quicksort array is the address of the array and size2 is its size in bytes. So size2 is twice bigger then the number of 2 bytes integer in the array for the sort. array maybe any even address above $200. The main trick is the work with the stack. The routine reserves 16 stack bytes for interrupts. It is possible to reduce this number to 0 if all interrupts are disabled. It maybe made dynamically. So if the stack has only 16 bytes free then the interrupts should be disabled and if there is more than 16 free bytes than the interrupts should be enabled. This dynamic control will consume only about 10 more bytes in the code but its effect is small. Some systems use NMI interrupts and this makes such dynamic control more complex. The systems with NMI may require more than 16 free bytes in the stack. IMHO 30 bytes will be enough for any system. Several time measurements (in seconds) were made for the Quicksort and the Fredrik Ramsberg's Shell and Insertion sorts. Commodore +4 is used. Its CPU works at 1.14 MHz average frequency Integers Sort Type Random Ordered Reversed Zeros Insertion Shell Quick Integers Sort Type Random Ordered Reversed Zeros Insertion Shell Quick Integers Sort Type Random Ordered Reversed Zeros Insertion Shell Quick Random, Ordered, Reversed, Zeros mean the type of array filling. Random filling just copies ROM content into array. Ordered filling uses numbers from 0 with step 1. Reversed filling uses numbers from $ffff with step -1. Zeros filling is just an array filled with the zeros only. So Quicksort is more than two times faster than Shell Sort. Its code occupies together with its call wrapping 259 bytes. It also uses 6 bytes of zero page and 2 bytes of any RAM. The Shell sort requires about 250 bytes for the code and data and it doesn't use stack. It also uses up to 14 bytes at zero page. All these 14 bytes were used in the mentioned above measurements. This version of Quicksort requires almost all stack (about 240 bytes) to sort fast more than 32 KB of data. The required minimum is about 176 bytes but the stack with the only such minimum may slow down sorting dramatically. If the stack has less free bytes than this minimum then this may give the
6 Last update: :28 base:quicksort_16-bit_elements meditation, the endless loop. It is possible to reduce the stack load by tail call elimination. It makes Quicksort slightly faster (only by 3-4%) but reduces the stack load more than 50%. So 128 free bytes in the stack will make the sort of 60 KB data without delays. i2lo = zp0lo i2hi = zp0hi j2lo = zp2lo j2hi = zp2hi x_lo = m2lo x_hi = m2hi ublo = m3lo ubhi = m3hi lblo = m4lo lbhi = m4hi quicksort0 cpx #16 ;stack limit bcs qsok qs_csp ldx #0 dex dex txs quicksort lda #>array+size2-2 sta ubhi lda #<array+size2-2 sta ublo lda #>array sta lbhi lda #<array sta lblo qsok lda lblo lda lbhi sta i2hi ldy ubhi sty j2hi lda ublo clc ;this code works only for the even align and #$fc sta zp1lo tya adc i2hi ror sta zp1hi Printed on :30
7 :30 7/9 Quicksort (for 16-bit Elements) ror zp1lo ldy #0 lda (zp1lo),y sta x_lo lda (zp1lo),y sta x_hi qsloop1 ldy #0 ;compare array[i] and x cmp x_lo sbc x_hi bcs qs_l1 lda #2 bcc qsloop1 inc i2hi bne qsloop1 ;=jmp qs_l1 ldy #0 ;compare array[j] and x lda x_lo cmp (j2lo),y lda x_hi sbc (j2lo),y bcs qs_l3 sbc #1 bcs qs_l1 dec j2hi bne qs_l1 ;=jmp qs_l3 ;compare i and j cmp i2lo sbc i2hi bcc qs_l8 qs_l6 lda (j2lo),y ;exchange elements with i and j indices tax sta (j2lo),y txa
8 Last update: :28 base:quicksort_16-bit_elements sta (i2lo),y dey bpl qs_l6 ;sec lda #1 bcc *+4 inc i2hi sec sbc #2 bcs *+4 dec j2hi ; cmp i2lo sbc i2hi ;bcc *+5 ;jmp qsloop1 bcs qsloop1 ;CY=1 qs_l8 lda lblo cmp j2lo lda lbhi sbc j2hi bcs qs_l5 lda ubhi lda ublo sta ubhi sta ublo jsr quicksort0 sta ublo sta ubhi sta i2hi Printed on :30
9 :30 9/9 Quicksort (for 16-bit Elements) qs_l5 qs_l7 cmp ublo sbc ubhi bcs qs_l7 sta lbhi sta lblo jmp qsok rts The locations m3hi, m3lo, m4hi, m4lo maybe situated anywhere in RAM. The invocation should be in the next form. stx qs_csp+1 jsr quicksort It is required to put the proper constants after quicksort label. This makes the invocation code more complex in the general case. The other published 6502 Quicksort is at Vintage Computer Federation From: - Codebase 64 wiki Permanent link: Last update: :28
COSC 243. Instruction Sets And Addressing Modes. Lecture 7&8 Instruction Sets and Addressing Modes. COSC 243 (Computer Architecture)
COSC 243 Instruction Sets And Addressing Modes 1 Overview This Lecture Source Chapters 12 & 13 (10 th editition) Textbook uses x86 and ARM (we use 6502) Next 2 Lectures Assembly language programming 2
More informationThe 6502 Instruction Set
The 6502 Instruction Set Load and Store Group LDA Load Accumulator N,Z LDX Load X Register N,Z LDY Load Y Register N,Z STA Store Accumulator STX Store X Register STY Store Y Register Arithmetic Group ADC
More information; Once Initialized, monitor character in calls to CN05 ; set carry for input, to be tested CN35 C SEC
// // Serialcode.s // 256 Byte Prom P8 and 512 Byte PROM P9A (second version) for Apple II Serial Card // P9A differs from P9 by adding RTS/ACK software flow control to output and // by removing batch
More informationCOSC 243. Assembly Language Techniques. Lecture 9. COSC 243 (Computer Architecture)
COSC 243 Assembly Language Techniques 1 Overview This Lecture Source Handouts Next Lectures Memory and Storage Systems 2 Parameter Passing In a high level language we don t worry about the number of parameters
More informationRegarding the change of names mentioned in the document, such as Mitsubishi Electric and Mitsubishi XX, to Renesas Technology Corp.
To all our customers Regarding the change of names mentioned in the document, such as Mitsubishi Electric and Mitsubishi XX, to Renesas Technology Corp. The semiconductor operations of Hitachi and Mitsubishi
More informationA. CPU INSTRUCTION SET SUMMARY
A. CPU INSTRUCTION SET SUMMARY This appendix summarizes the CPU instruction set. Table A-1 is a matrix of CPU instructions and addressing modes arranged by operation code. Table A-2 lists the CPU instruction
More informationA Technical Overview of Commodore Copy Protection. Glenn Holmer ( ShadowM ) World of Commodore Expo, 12/01/2007
A Technical Overview of Commodore Copy Protection Glenn Holmer ( ShadowM ) www.lyonlabs.org/commodore/c64.html World of Commodore Expo, 12/01/2007 Why Talk About This? These skills were a black art to
More informationCode Secrets of Wolfenstein 3D IIGS. Eric Shepherd
Code Secrets of Wolfenstein 3D IIGS Eric Shepherd Fast Screen Refresh with PEI Slamming Or, Dirty Tricks with the Direct Page IIGS Features We Can Abuse Super high-resolution graphics shadowing Bank $01
More informationinstruction 1 Fri Oct 13 13:05:
instruction Fri Oct :0:0. Introduction SECTION INSTRUCTION SET This section describes the aressing modes and instruction types.. Aressing Modes The CPU uses eight aressing modes for flexibility in accessing
More informationDAN64: an AVR based 8-bit Microcomputer
DAN64: an AVR based 8-bit Microcomputer Juan J. Martínez jjm@usebox.net Manual for V.R - May 0, 06 Features Composite video black and white output, 56 x 9 resolution, x 4 characters (8 x 8 pixels font,
More information:31 1/9 RLE Toolkit for CC65 v 1.0
2017-09-21 17:31 1/9 RLE Toolkit for CC65 v 1.0 RLE Toolkit for CC65 v 1.0 By MagerValp. The homepage and sources to this Toolkit is available here. Check that page for potential updates to this code.
More informationApple /// Business BASIC Peek/Poke Invokable Module Information
APPLE /// COMPUTER INFORMATION Apple /// Business BASIC Peek/Poke Invokable Module Information Source Dr. John Jeppson SOFTALK magazine -- August 1982 -- pages 38-48 Compiled By David T Craig -- December
More informationExample Programs for 6502 Microprocessor Kit
Example Programs for 6502 Microprocessor Kit 0001 0000 0002 0000 GPIO1.EQU $8000 0003 0000 0004 0000 0005 0200.ORG $200 0006 0200 0007 0200 A5 00 LDA $0 0008 0202 8D 00 80 STA $GPIO1 0009 0205 00 BRK 0010
More informationIII. Flags of the Processor Staus Register
III. Flags of the Processor Staus Register INHALT 1. Meaning 2. Application 2.1 Shifts 2.2 Branches 2.3 Addition and Subtraction 2.4 Comparisons in magnitude 1. Meaning processor status register Overflow
More informationBINARY LOAD AND PUNCH
BINARY LOAD AND PUNCH To easily decrease the amount of time it takes to load a long tape (Cassette or paper) a BINARY formatting technique can be used instead of the conventional ASCII format used by the
More informationUser Manual for KRUSADER. Ken s Rather Useless Symbolic Assembly Development Environment for the Replica 1 or is that Reasonably Useful? You decide!
User Manual for KRUSADER Ken s Rather Useless Symbolic Assembly Development Environment for the Replica 1 or is that Reasonably Useful? You decide! Ken Wessen ken.wessen@gmail.com Version 1.3 December
More informationCOMPUTE! ISSUE 36 / MAY 1983 / PAGE 244
Versatile Data Acquisition with VIC Doug Homer and Stan Klein COMPUTE! ISSUE 36 / MAY 1983 / PAGE 244 This simple method of adjusting the VIC's internal jiffy dock can slow it down to match your timing
More informationJBit E1 (1) Subroutines. Preface. Usage. Tables. Program Layout
JBit E1 (1) Preface, Usage, Program Layout, Subroutines, Tables Preface JBit E1 (1) The E1 series will show you how to write a complete application with JBit. While the application is trivial by today
More informationTable 1: Mnemonics Operations Dictionary. Add Accumulators Add B to Y. Add with carry to B. Add Memory to B. Add 16-bit to D And B with Memory
Table 1: Mnemonics s Dictionary ABA ABX ABY ADCA ADCB ADDA ADDB ADDD ANDA ANDB ASL ASLA ASLB ASLD ASR ASRA ASRB BCC BCLR BCS BEQ BGE BGT BHI BHS BITA BITB BLE BLO BLS BLT Add Accumulators Add B to X Add
More informationContent. 1. General informations 2. direct addressing 3. indirect addressing 4. Examples including informations
IV. Addressing Modi Content 1. General informations 2. direct addressing 3. indirect addressing 4. Examples including informations 1. General Informations Address range for data and program : the 65xx
More informationUser s Guide. pico Viewer v.1.01
User s Guide pico Viewer 6502 v.1.01 ii User s Guide Copyright Notice This documentation and the software described herein are copyrighted with all rights reserved. Under the copyright laws, neither this
More informationThe Motorola 68HC11 Instruc5on Set
The Motorola 68HC11 Instruc5on Set Some Defini5ons A, B * accumulators A and B D * double accumulator (A + B) IX, IY * index registers X and Y SP * stack pointer M * some memory loca5on opr * an operand
More informationProgramming the Motorola MC68HC11 Microcontroller
Programming the Motorola MC68HC11 Microcontroller COMMON PROGRAM INSTRUCTIONS WITH EXAMPLES aba Add register B to register A Similar commands are abx aby aba add the value in register B to the value in
More information1 Introduction Forth, the Language Why Forth? Comparing to other Forths Stack Checking... 5
1 Contents 1 Introduction 4 1.1 Forth, the Language......................... 4 1.1.1 Why Forth?.......................... 4 1.1.2 Comparing to other Forths................. 4 1.1.3 Stack Checking........................
More informationMicro-KIM Tutorial. Aart J.C. Bik
Micro-KIM Tutorial Aart J.C. Bik http://www.aartbik.com/ 1 Getting Started Perhaps reminiscing the past is a sign of getting older, but I cannot help but look back fondly at the times I learned programming
More informationDecoding bitstreams for fun and profit
2018-12-01 11:25 1/13 Decoding bitstreams for fun and profit Decoding bitstreams for fun and profit by lft This article describes a technique for extracting bitfields from a long sequence of bytes stored
More informationNAM M6800 DISK-BUG DS VER 3.5 OPT PAG
NAM M6800 DISK-BUG DS VER 3.5 OPT PAG Floppy Disk Controller Debug Monitor Written 27 Aug 1980 Michael Holley Record of modifications 18 OCT 1981 Disk routines DC-1 23 JAN 1982 Command Table 8 MAY 1982
More informationMC68705P3 Bootstrap ROM
MC68705P3 Bootstrap ROM ;This is a listing of the Bootstrap ROM which resides in Motorola's MC68705P3 single chip ;micros. Its sole purpose is to program its own EPROM by copying the data from an external
More informationLecture #2 January 30, 2004 The 6502 Architecture
Lecture #2 January 30, 2004 The 6502 Architecture In order to understand the more modern computer architectures, it is helpful to examine an older but quite successful processor architecture, the MOS-6502.
More informationLecture #3 Microcontroller Instruction Set Embedded System Engineering Philip Koopman Wednesday, 20-Jan-2015
Lecture #3 Microcontroller Instruction Set 18-348 Embedded System Engineering Philip Koopman Wednesday, 20-Jan-2015 Electrical& Computer ENGINEERING Copyright 2006-2015, Philip Koopman, All Rights Reserved
More informationG65SC802 G65SC816. Microcircuits. CMOS 8-Bit/16-Bit Microprocessor Family ADVANCE INFORMATION. Features. General Description. Features (G65SC802 Only)
G65SC802 G65SC816 Microcircuits CMOS 8-Bit/16-Bit Microprocessor Family Features Advanced CMOS design for low power consumption and increased noise immunity Emulation mode for total software compatibility
More informationME4447/6405. Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics. Instructor: Professor Charles Ume LECTURE 7
ME4447/6405 Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics Instructor: Professor Charles Ume LECTURE 7 Reading Assignments Reading assignments for this week and next
More information0b) [2] Can you name 2 people form technical support services (stockroom)?
ECE 372 1 st Midterm ECE 372 Midterm Exam Fall 2004 In this exam only pencil/pen are allowed. Please write your name on the front page. If you unstaple the papers write your name on the loose papers also.
More informationMC68705U3 Bootstrap ROM
MC68705U3 Bootstrap ROM ;This is a listing of the Bootstrap ROM which resides in Motorola's MC68705U3 single chip ;micros. Its sole purpose is to program its own EPROM by copying the data from an external
More informationAN1287. MC68HC708LN56 LCD Utilities. Introduction. LCD Hardware General Information
Order this document by /D MC68HC708LN56 LCD Utilities By Rick Cramer CSIC Product Engineering Austin, Texas Introduction LCD Hardware General Information A set of software utilities that causes the LCD
More informationAltirra Hardware Reference Manual 05/17/17 Edition Avery Lee
Altirra Hardware Reference Manual 05/17/17 Edition Avery Lee Table of Contents 1.1. Introduction... 7 1.2. What's new in this edition... 8 1.3. Conventions in this manual... 11 1.4. Basic characteristics...
More informationProgramming Book for 6809 Microprocessor Kit
Programming Book for 6809 Microprocessor Kit Wichit Sirichote, wichit.sirichote@gmail.com Image By Konstantin Lanzet - CPU collection Konstantin Lanzet, CC BY-SA 3.0, Rev1.2 March 2018 1 Contents Lab 1
More informationFloating Point Routines for the 6502 by Roy Rankin and Steve Wozniak
http://www.6502.org/source/floats/wozfp1.txt 31 October 2004 TABLE OF CONTENTS Floating Point Routines for the 6502 by Roy Rankin and Steve Wozniak Originally published in the August 1976 issue of Dr.
More informationNMOS 6510 Unintended Opcodes
NMOS 6510 Unintended Opcodes no more secrets (v0.92-24/12/17) (w) 2013-2017 groepaz/solution, all rights reversed Contents Preface...I Scope of this Document...I Intended Audience...I License...I What
More informationSwiftLink-232 Application Notes (revised)
SwiftLink-232 Application Notes (revised) Introduction The SwiftLink-232 ACIA cartridge replaces the Commodore Kernal RS-232 routines with a hardware chip. The chip handles all the bit-level processing
More informationCall A.P.P.L.E. TOME OF COPY PROTECTION
Call A.P.P.L.E. World s Largest Apple User Group Since 1978 www.callapple.org TOME OF COPY PROTECTION Technical Errata for First Printing Compiled August 2018 Changes are Bold Page 20 Half Tracks * BE5A:
More information1. Memory Mapped Systems 2. Adding Unsigned Numbers
1 Memory Mapped Systems 2 Adding Unsigned Numbers 1 1 Memory Mapped Systems Our system uses a memory space Address bus is 16-bit locations Data bus is 8-bit 2 Adding Unsigned Numbers 2 Our system uses
More informationApple /// Disk /// Floppy Disk Formatter Driver 1.30 Source Code Listing
Apple /// Computer Technical Information Apple /// Disk /// Floppy Disk Formatter Driver 1.30 Source Code Listing Created by David T. Craig 06 January 1998 71533.606@compuserve.com --- 1 / 19 ; # PROJECT
More informationPurpose of this ebook Background history with computers Passion for programming My experience with the Commodore 64
Table of Contents Introduction: About the author Purpose of this ebook Background history with computers Passion for programming My experience with the Commodore 64 Chapter 1: Memory Where in memory to
More informationEnhanced 6502 BASIC reference manual
Enhanced 6502 BASIC reference manual Preface This manual has been compiled in October 2013 from a snapshot of Lee Davison s website http://mycornerno-iporg/6502/ehbasic/indexhtml after it had been off
More informationCPU08RM/AD REV 3 8M68HC08M. CPU08 Central Processor Unit. Reference Manual
CPU08RM/AD REV 3 68HC08M6 HC08M68HC 8M68HC08M CPU08 Central Processor Unit Reference Manual blank CPU08 Central Processor Unit Reference Manual Motorola reserves the right to make changes without further
More informationCOSC345 Software Engineering. Basic Computer Architecture and The Stack
COSC345 Software Engineering Basic Computer Architecture and The Stack Outline Architectural models A little about the 68HC11 Memory map Registers A little bit of assembly (never did us any harm) The program
More informationAug.3, W65C816S 8/16 bit Microprocessor
Aug., 9 WC8S 8/ bit Microprocessor WDC reserves the right to make changes at any time without notice in order to improve design and supply the best possible product. Information contained herein is provided
More informationW65C816S 8/16 bit Microprocessor
November 9, 8 WC8S 8/ bit Microprocessor WDC reserves the right to make changes at any time without notice in order to improve design and supply the best possible product. Information contained herein
More informationTable 1-1 Instruction Operation (continued on following 4 pages)
Kris Bleakley S Commands Table - Instruction Operation (continued on following pages) Address Mode Note Cycle Address Bus Bus RWB a. Absolute!abs s, bytes, and cycles () a + + L H b. Absolute!abs CALL,
More informationSWTPC 6800/CT-1024/AC-30 Cassette Tape
SWTPC 6800/CT-1024/AC-30 Cassette Tape Diagnostic Programs These two diagnostic programs have been written to generate and verify respectively cassette tapes generated on the SWTPC 6800 Computer System
More informationASSEMBLY LANGUAGE PROGRAMMING with the Commodore 64
ASSEMBLY LANGUAGE PROGRAMMING with the Commodore 64 Marvin L DeJong i^s *>- Assembly Language Programming with the Commodore 64 Publishing Director: David Culverwell Acquisitions Editor: Terrell Anderson
More informationMOS 6502 Architecture
MOS 6502 Architecture Lecture 3 Fall 17 1 History Origins lie in the Motorola 6800. Was very expensive for consumers. ($300, or about $1500 in 2017 $s) Chuck Peddle proposes lower-cost, lower-area 6800
More informationAN1818. Motorola Semiconductor Application Note
Order this document by /D Motorola Semiconductor Application Note Software SCI Routines with the 16-Bit Timer Module By Brad Bierschenk MMD Applications Engineering Austin, Texas Introduction Many applications
More informationAN2093. Motorola Semiconductor Application Note. Creating Efficient C Code for the MC68HC08. Freescale Semiconductor, I.
nc. Motorola Semiconductor Application Note Order this document by /D Creating Efficient C Code for the MC68HC08 by Stuart Robb East Kilbride, Scotland 1 Introduction The C programming language is a powerful,
More informationMotorola 6809 and Hitachi 6309 Programmer s Reference
Motorola 6809 and Hitachi 6309 Programmer s Reference 2009 by Darren Atkinson A note about cycle counts The MPU cycle counts listed throughout this document will sometimes show two different values separated
More informationW65C816S Microprocessor DATA SHEET
Updated June, W6C86S Data Sheet W6C86S Microprocessor DATA SHEET The Western Design Center, Inc.,. All rights reserved WDC W6C86S Data Sheet WDC reserves the right to make changes at any time without notice
More informationFreescale Semiconductor, Inc.
Order this document by /D Software I 2 C Communications By Brad Bierschenk MMD Applications Engineering Austin, Texas Introduction I 2 C Overview The I 2 C (inter-integrated circuit) protocol is a 2-wire
More informationMIGRATING TO THE 68HC12 IN C
MIGRATING TO THE 68HC12 IN C by Jean-Pierre Lavandier (Cosmic Software) and Greg Viot (Motorola) INTRODUCTION An important design goal of the 68HC12 was to maintain software compatibility with the 68HC11
More informationLecture 6 Assembly Programming: Branch & Iteration
CPE 390: Microprocessor Systems Spring 2018 Lecture 6 Assembly Programming: Branch & Iteration Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ
More informationNMOS 6510 Unintended Opcodes
NMOS 6510 Unintended Opcodes no more secrets (Christmas release, 24/12/14) (w) 2013-2014 groepaz/hitmen, all rights reversed Contents Preface...I Scope of this Document...I Intended Audience...I What you
More informationOSIAC Read OSIAC 5362 posted on the course website
OSIAC 5362 Read OSIAC 5362 posted on the course website The Basic Structure of Control Unit m CLK Run/Inhibit Control Step Counter m Preset (to any new state) Reset IR Decoder/Encoder (combinational logic)
More informationFree for personal use but you must have written permission to reproduce
www.commodore.ca www.commodore.ca Commodore Business Machines, Inc. 901 California Avenue Palo Alto, California 94304, USA Commodore/MOS Valley Forge Corporate Center 950 Rittenhouse Road Norristown, Pennsylvania
More information10-1 C D Pearson Education, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 4e
10-1 C D E A B 10-2 A B A B C (A B) C D A A B (A B) C E D (A B) C D E (A B) C + D E (A B) C 10-3 Opcode Mode Address or operand 10-4 Memory 250 Opcode Mode PC = 250 251 ADRS 252 Next instruction ACC Opcode:
More informationAssembler Manual THE COMMODORE PET ASSEMBLER DEVELOPMENT SYSTEM
THE COMMODORE PET ASSEMBLER DEVELOPMENT SYSTEM Copyright 1979, Commodore Business Machines Professional Computer Division 1200 Wilson Drive West Chester, PA 19380 COPYRIGHT This software product is copyrighted
More informationECET Chapter 2, Part 2 of 3
ECET 310-001 Chapter 2, Part 2 of 3 W. Barnes, 9/2006, rev d. 10/07 Ref. Huang, Han-Way, The HCS12/9S12: An Introduction to Software and Hardware Interfacing, Thomson/Delmar. In This Set of Slides: 1.
More informationCONTENTS. I. Installation. 2. The *ROMS command. 3. The *MENU command. 4. The *RAMDISK command. 5. The *SHADOW command. 6. The *PRINTER command
CONTENTS I. Installation 2. The *ROMS command 3. The *MENU command 4. The *RAMDISK command 5. The *SHADOW command 6. The *PRINTER command Appendices A1 The MANAGER commands A2 The TOOLKIT commands A3 The
More informationECE331 Handout 3- ASM Instructions, Address Modes and Directives
ECE331 Handout 3- ASM Instructions, Address Modes and Directives ASM Instructions Functional Instruction Groups Data Transfer/Manipulation Arithmetic Logic & Bit Operations Data Test Branch Function Call
More informationSOEN228, Winter Revision 1.2 Date: October 25,
SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003 1 Contents Flags Mnemonics Basic I/O Exercises Overview of sample programs 2 Flag Register The flag register stores the condition flags that retain
More informationApple II Technical Notes
Apple II Technical Notes Developer Technical Support #50: Extended Serial Interface Error Handling Written by: Dan Strnad January 1989 This Technical Note discusses error reporting by the Extended Serial
More informationTest ROM V2 for MPU boards System 3, 4, 6, 7 and corresponding driver boards. Author: André Boot corrections in this document by coinop
Test ROM V2 for MPU boards System 3, 4, 6, 7 and corresponding driver boards Author: André Boot corrections in this document by coinop 1. INTRODUCTION... 2 2. INSTALLATION OF THE BOOT TEST ROM... 3 3.
More informationNET3001. Advanced Assembly
NET3001 Advanced Assembly Arrays and Indexing supposed we have an array of 16 bytes at 0x0800.0100 write a program that determines if the array contains the byte '0x12' set r0=1 if the byte is found plan:
More informationUNIVERSITY OF MANITOBA DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING. Term Test #2 Solution ECE 3610 MICROPROCESSING SYSTEMS
ECE 3610 Test 2 Solution 1 of 7 PRINT LAST NAME: STUDENT NUMBER PRINT FIRST NAME: UNIVERSITY OF MANITOBA DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING DATE: Feb. 28, 11; TIME: 6:00-8:00 P.M. Term Test
More informationAN-HK-33. In-Circuit Programming of FLASH Memory in the MC68HC908JL3. Roger Fan Applications Engineering Microcontroller Division Hong Kong
Order this document by AN-HK-33/H Rev. 1 AN-HK-33 In-Circuit Programming of FLASH Memory in the MC68HC908JL3 By Roger Fan Applications Engineering Microcontroller Division Hong Kong This application note
More informationRyerson University Department of Electrical and Computer Engineering ELE 538 Microprocessor Systems Final Examination December 8, 2003
Ryerson University Department of Electrical and Computer Engineering ELE 538 Microprocessor Systems Final Examination December 8, 23 Name: Student Number: Time limit: 3 hours Section: Examiners: K Clowes,
More informationAN1742. Programming the 68HC705J1A In-Circuit By Chris Falk CSG Product Engineering Austin, Texas. Introduction. Overview
Order this document by /D Programming the 68HC705J1A In-Circuit By Chris Falk CSG Product Engineering Austin, Texas Introduction Overview This application note describes how a user can program the 68HC705J1A
More informationMSMF GATE CENTRE. Sub: MICROPROCESSORS. Time: 50min Date: Marks:33
MSMF GATE CENTRE Sub: MICROPROCESSORS Time: 50min Date:20-12-16 Marks:33 1. Which interrupt has highest priority in 8085 microprocessor? a) INTR b) RST 4.5 c) RST 6.5 d) RST 7.5 2. In 8085 microprocessor,
More informationAN-HK-32. In-Circuit Programming of FLASH Memory in the MC68HC908GP32. nc... Freescale Semiconductor, I. PART 1 Introduction
Order this document by AN-HK-32/H Rev. 2.0 AN-HK-32 In-Circuit Programming of FLASH Memory in the MC68HC908GP32 By T.C. Lun Applications Engineering Microcontroller Division Hong Kong PART 1 Introduction
More informationMCM6830L7 MIKBUG/ MINIBUG ROM
MCM6830L7 MIKBUG/ MINIBUG ROM Prepared by Mike Wiles Computer Systems Andre Felix Support Products Group The MIKBUG/MINIBUG ROM is an MCM6830 ROM of the M8800 Family of parts. This ROM provides an asynchronous
More informationINSTRUCTION SET AND EXECUTION
SECTION 6 INSTRUCTION SET AND EXECUTION Fetch F1 F2 F3 F3e F4 F5 F6 Decode D1 D2 D3 D3e D4 D5 Execute E1 E2 E3 E3e E4 Instruction Cycle: 1 2 3 4 5 6 7 MOTOROLA INSTRUCTION SET AND EXECUTION 6-1 SECTION
More informationLecture 9 Subroutines
CPE 390: Microprocessor Systems Spring 2018 Lecture 9 Subroutines Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 Adapted from HCS12/9S12
More informationBasic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh
Basic Concepts COE 205 Computer Organization and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals [Adapted from slides of
More informationTABLE 9-1. Symbolic Convention for Addressing Modes. Register indirect LDA (R1) ACC M[ R1] Refers to Figure 9-4. Addressing mode. Symbolic convention
T-236 Symbolic Convention for Addressing Modes TABLE 9-1 Symbolic Convention for Addressing Modes Refers to Figure 9-4 Addressing mode Symbolic convention Register transfer Effective address Contents of
More informationRun-Time Environments
1 Run-Time Environments Chapter 7 COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University, 2007-2011 2 Procedure Activation and Lifetime A procedure is activated when called
More informationSEPTEMBER nd Edition Cornell Blvd North Ridgeville, OH 44039
SEPTEMBER 2007 2nd Edition 5392 Cornell Blvd North Ridgeville, OH 44039 All materials, schematics, and hardware designs provided without any warranties. Although this material has been carefully examined,
More informationMOS 6509 DATASHEET REVISION 10/86 WARNING
MOS 6509 DATASHEET REVISION 10/86 WARNING This datasheet contains an error in the pinout: pins 38 and 40 are swapped. Pin 38 should be ^2 and Pin 40 should be ^1. For verification, see the CBM-II computer
More informationCOE538 Lecture Notes Week 3 (Week of Sept 17, 2012)
COE538 Lecture Notes: Week 3 1 of 11 COE538 Lecture Notes Week 3 (Week of Sept 17, 2012) Announcements My lecture sections should now be on Blackboard. I've also created a discussion forum (and anonymous
More information68HC11 PROGRAMMER'S MODEL
8H11 PROGRMMER'S MODEL s (,, and D) s and are general-purpose 8-bit accumulators used to hold operands and results of arithmetic calculations or data manipulations. Some instructions treat the combination
More informationComputers and Microprocessors
Computers and Microprocessors - Introduction Over the last few decades, computers, and microprocessors in particular, have begun to have an enormous impact upon our lives. In early stages of development,
More informationArchitecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller
of 8085 microprocessor 8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology. It has the following configuration 8-bit
More information2) [ 2 marks] Both of the following statements cause the value $0300 to be stored in location $1000, but at different times. Explain the difference.
1) [ 9 marks] Write a sequence of directives for an HCS12 assembly language program that performs all of these tasks, in this order: a) Define an array called Measurements starting from memory location
More informationAN1239. HC05 MCU Keypad Decoding Techniques Using the MC68HC705J1A. Introduction
Order this document by /D Rev. 1.0 HC05 MCU Keypad Decoding Techniques Using the MC68HC705J1A By David Yoder CSIC Applications Introduction This application note demonstrates the use of a matrix keypad
More informationSample Problem Set #1
Sample Problem Set #1 Notes: These problems are typical exam problems; most are drawn from previous homeworks and exams. This exam is open book, open notes. It may help to have a calculator. For partial
More informationME 6405 Introduction to Mechatronics
ME 6405 Introduction to Mechatronics Fall 2005 Instructor: Professor Charles Ume LECTURE 9 Homework 1 Solution 1. Write an assembly language program to clear the usable internal RAM in the M68HC11E9. Solution:
More information; export symbols XDEF Entry ; export 'Entry' symbol ABSENTRY Entry ; for assembly entry point
**************************************************************** * This program for CMPEN 472, Flash Memory Writing * * By Kyusun Choi, ID=0000 * * Date: 11/15/2017 * * Freescale CodeWarrior, for the HCS12C128
More information538 Lecture Notes Week 2
538 Lecture Notes Week 2 (Sept. 13, 2017) 1/15 Announcements 538 Lecture Notes Week 2 Labs begin this week. Lab 1 is a one-week lab. Lab 2 (starting next week) is a two-week lab. 1 Answers to last week's
More informationIntroduction to Programming the 9S12 in C Huang Sections 5.2 and 5.3. You will be able to use all of the Motorola data manuals on the exam.
Introduction to Programming the 9S12 in C Huang Sections 5.2 and 5.3 o Comparison of C and Assembly programs for the HC12 o How to compile a C program using the GNU-C compiler o Using pointers to access
More informationTiming Generation and Measurements
Timing Generation and Measurements Lab #7 Robert McManus & Junsang Cho April 2, 2004 Timing Generation and Measurements 1. Objective To gain experience using input capture to measure pulse width. To gain
More information[55] QUICKSORT: ANALYSIS
Auteur : GUIDAL (Philippe) Titre : Quicksort Lieu : Nottingham Éditeur : Ipso Facto Date : October 1995 (vol. IX, n 7, pp. 55-56) Dewey : 005.741 GUI Classe : Méthodes d accès et organisation des fichiers
More informationm 1 se 7 m 23 Introduction to Embedded Microcomputer Systems Lecture 16.1 Recap Finite State Machines Pointer implementation
Introduction to Embedded Microcomputer Systems Lecture 16.1 Recap Finite State Machines Pointer implementation Overview Fixed-point: why, when, how Local variables: scope and allocation How these concepts
More information