AMATEUR COMPUTER USERS GROUP NEWSLETTER HOMEBREW COMPUTER CLUB Issue Number Two Fred Moore, Editor, 558 Santa Cruz Ave., Menlo Park, Ca
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Also Includes Slides and Contents From
The Compilation Toolchain Cross-Compilation for Embedded Systems Prof. Andrea Marongiu ([email protected]) Toolchain The toolchain is a set of development tools used in association with source code or binaries generated from the source code • Enables development in a programming language (e.g., C/C++) • It is used for a lot of operations such as a) Compilation b) Preparing Libraries Most common toolchain is the c) Reading a binary file (or part of it) GNU toolchain which is part of d) Debugging the GNU project • Normally it contains a) Compiler : Generate object files from source code files b) Linker: Link object files together to build a binary file c) Library Archiver: To group a set of object files into a library file d) Debugger: To debug the binary file while running e) And other tools The GNU Toolchain GNU (GNU’s Not Unix) The GNU toolchain has played a vital role in the development of the Linux kernel, BSD, and software for embedded systems. The GNU project produced a set of programming tools. Parts of the toolchain we will use are: -gcc: (GNU Compiler Collection): suite of compilers for many programming languages -binutils: Suite of tools including linker (ld), assembler (gas) -gdb: Code debugging tool -libc: Subset of standard C library (assuming a C compiler). -bash: free Unix shell (Bourne-again shell). Default shell on GNU/Linux systems and Mac OSX. Also ported to Microsoft Windows. -make: automation tool for compilation and build Program development tools The process of converting source code to an executable binary image requires several steps, each with its own tool. -
Computer Architecture and Assembly Language
Computer Architecture and Assembly Language Gabriel Laskar EPITA 2015 License I Copyright c 2004-2005, ACU, Benoit Perrot I Copyright c 2004-2008, Alexandre Becoulet I Copyright c 2009-2013, Nicolas Pouillon I Copyright c 2014, Joël Porquet I Copyright c 2015, Gabriel Laskar Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being just ‘‘Copying this document’’, no Front-Cover Texts, and no Back-Cover Texts. Introduction Part I Introduction Gabriel Laskar (EPITA) CAAL 2015 3 / 378 Introduction Problem definition 1: Introduction Problem definition Outline Gabriel Laskar (EPITA) CAAL 2015 4 / 378 Introduction Problem definition What are we trying to learn? Computer Architecture What is in the hardware? I A bit of history of computers, current machines I Concepts and conventions: processing, memory, communication, optimization How does a machine run code? I Program execution model I Memory mapping, OS support Gabriel Laskar (EPITA) CAAL 2015 5 / 378 Introduction Problem definition What are we trying to learn? Assembly Language How to “talk” with the machine directly? I Mechanisms involved I Assembly language structure and usage I Low-level assembly language features I C inline assembly Gabriel Laskar (EPITA) CAAL 2015 6 / 378 I Programmers I Wise managers Introduction Problem definition Who do I talk to? I System gurus I Low-level enthusiasts Gabriel Laskar (EPITA) CAAL -
Compiler Construction
Compiler Construction Chapter 11 Compiler Construction Compiler Construction 1 A New Compiler • Perhaps a new source language • Perhaps a new target for an existing compiler • Perhaps both Compiler Construction Compiler Construction 2 Source Language • Larger, more complex languages generally require larger, more complex compilers • Is the source language expected to evolve? – E.g., Java 1.0 ! Java 1.1 ! . – A brand new language may undergo considerable change early on – A small working prototype may be in order – Compiler writers must anticipate some amount of change and their design must therefore be flexible – Lexer and parser generators (like Lex and Yacc) are therefore better than hand- coding the lexer and parser when change is inevitable Compiler Construction Compiler Construction 3 Target Language • The nature of the target language and run-time environment influence compiler construction considerably • A new processor and/or its assembler may be buggy Buggy targets make it difficult to debug compilers for that target! • A successful source language will persist over several target generations – E.g., 386 ! 486 ! Pentium ! . – Thus the design of the IR is important – Modularization of machine-specific details is also important Compiler Construction Compiler Construction 4 Compiler Performance Issues • Compiler speed • Generated code quality • Error diagnostics • Portability • Maintainability Compiler Construction Compiler Construction 5 Compiler Speed • Reduce the number of modules • Reduce the number of passes Perhaps generate machine -
Introduction Mainframes
LL I I I I Introduction . 11.. V ZI i ..O. There is little question that the current enthusiasm in personal computing was catalyzed by the introduction of the MITS Altair computer kit in January 1975. This computer kit demonstrated by its cost (originally less than $400) that individuals could now afford a computer. And by its design the Altair established a standard bus structure for the personal computing industry. Less than six months after MITS announced the Altair computer, other manufacturers were announcing com- patible memory boards, interface boards, and peripherals. Within the year bus-compatible mainframes were also introduced. Today over 50 manufacturers support what is known as the Standard 100 or S-100 bus derived from the 100-wire bus used in the original Altair computer. Over 20,000 mainframes using the S-100 bus are now in the field. One key reason for the rapid growth of the personal computer industry can be found in the widespread adoption of a standard microcomputer bus. A second key reason can be found in the design innovations in mainframes, memories, and I/O interfaces designed for the S-100 bus. Figure 1. The basic personal computer can accept a number of standard 5" x 10" cards designed for the industry standard S-100 microcomputer bus. A large selection of CPU, memory, and interface cards offers a great deal of flexibility in system Mainframes design. The basic personal computer mainframe consists of a CPU, computer bus, and power supply. Most mainframes are sold in kit form (Figure 1). Without exception in the personal computing industry of manufacturer support for the S-100 bus, no fewer than a microprocessor serves as the CPU. -
Timeline of Computer History
Timeline of Computer History By Year By Category Search AI & Robotics (55) Computers (145)(145) Graphics & Games (48) Memory & Storage (61) Networking & The Popular Culture (50) Software & Languages (60) Bell Laboratories scientist 1937 George Stibitz uses relays for a Hewlett-Packard is founded demonstration adder 1939 Hewlett and Packard in their garage workshop “Model K” Adder David Packard and Bill Hewlett found their company in a Alto, California garage. Their first product, the HP 200A A Called the “Model K” Adder because he built it on his Oscillator, rapidly became a popular piece of test equipm “Kitchen” table, this simple demonstration circuit provides for engineers. Walt Disney Pictures ordered eight of the 2 proof of concept for applying Boolean logic to the design of model to test recording equipment and speaker systems computers, resulting in construction of the relay-based Model the 12 specially equipped theatres that showed the movie I Complex Calculator in 1939. That same year in Germany, “Fantasia” in 1940. engineer Konrad Zuse built his Z2 computer, also using telephone company relays. The Complex Number Calculat 1940 Konrad Zuse finishes the Z3 (CNC) is completed Computer 1941 The Zuse Z3 Computer The Z3, an early computer built by German engineer Konrad Zuse working in complete isolation from developments elsewhere, uses 2,300 relays, performs floating point binary arithmetic, and has a 22-bit word length. The Z3 was used for aerodynamic calculations but was destroyed in a bombing raid on Berlin in late 1943. Zuse later supervised a reconstruction of the Z3 in the 1960s, which is currently on Operator at Complex Number Calculator (CNC) display at the Deutsches Museum in Munich. -
FF7W Sponsors ACR Standards Meeting and from There to the Factory It Is Just a Short Walk
HITS MOVING TO EXPANDED FACILITY by David Bunnell tentatively scheduled for March, Altairs to Albuquerque for demonstra- 1976. All Altair owners will be in- tion purposes. Prizes worth several By the end of January, 1976, it vited to attend this convention. thousand dollars will be awarded to is hoped that MITS will be in its the best demonstrations in each of new facility near the Albuquerque While formal plans for this an undetermined number of catagories. Airport. Internal construction has convention have not been finalized, (We will be looking for unique ap- been in progress for several weeks $ an outline of this event calls for a plications as well as well-developed and plans call for moving the pro- weekend of seminars and demonstra- traditional applications.) duction department before Christmas. tions. The seminars will be con- Administrative departments will move ducted by MITS engineers and software writers and will cover a wide range during January. Since the new MITS plant is of topics of interest to Altair users. located close to the Albuquerque In connection with this move, Airport, it will be very convenient there will be a combined open-house, Hobby clubs and individual Al- for out-of-town Altair users to at- World Altair Computer Convention, tair owners are asked to bring their tend the convention. Hotel reserva- tions can be made at the Albuquerque Airport Marina Hotel across the street from the terminal building, FF7W Sponsors ACR Standards Meeting and from there to the factory it is just a short walk. Users and manufacturers of audio The rest of the meeting was cassette data recording hardware at- spent primarily on discussion of mod- tended a symposium sponsored by BYTE ulation techniques. -
Periodical Guide for Computerists 1977
PERIODICAL GUIDE FOR COMPUTERISTS An Index of Magazine Articles for Computer Hobbyists January - December 1977 PERIODICAL GUIDE FOR COMPUTERISTS 1977 TABLE OF CONTENTS AMATEUR RADIO---------------------- 3 MICROCOMPUTERS ANALOG HARDWARE AND CIRCUITS------- 3 GENERAL------------------------- 36 APPLICATIONS, GENERAL-------------- 4 FUNDAMENTALS AND DESIGN--------- 37 ART--------------------------------5 SELECTION GUIDE----------------- 38 ASTRONOMY--------------------------6 AL TAI R 8800 & 680--------------- 38 BAR CODES--------------------------6 APPLE---------------------------39 BIORYTHMS--------------------------6 DI GIT AL GROUP------------------- 39 BIO FEEDBACK------------------------ 6 ELF & VIP ( COSMAC)-------------- 39 BOOKS AND PUBLICATIONS-------------6 HEATHKIT------------------------ 39 BUSINESS AND ACCOUNTING------------ 7 IMSAI--------------------------- 39 CALCULATORS------------------------ 8 INTERCEPT IM6100---------------- 39 CLUBS AND ORGANIZATIONS------------ 9 KIM----------------------------- 39 CLOCKS-----------------------------·9 PET----------------------------- 40 COMMUNICATION---------------------- 10 RADIO SHACK--------------------- 40 CONSTRUCTION----------------------- 10 SOL----------------------------- 40 CONTROL---------------------------- 11 SPHERE-------------------------- 40 CON VE RS ION, CODE------------------- 11 SWTPC--------------------------- 40 CONVERSION, NUMBER BASE------------ 11 WAVE MATE----------------------- 40 DEBUG------------------------------ 12 OTHER MICROCOMPUTERS------------ 41 -
Embedded Firmware Development Languages/Options
Module -4 Embedded System Design Concepts Characteristics & Quality Attributes of Embedded Systems Characteristics of Embedded System Each Embedded System possess a set of characteristics which are unique to it. Some important characteristics of embedded systems are: Application & Domain Specific Reactive & Real Time Operates in ‘harsh’ environment Distributed Small size and Weight Power Concerns Quality Attributes of Embedded Systems: Represent the non-functional requirements that needs to be addressed in the design of an embedded system. The various quality attributes that needs to be addressed in any embedded system development are broadly classified into Operational Quality Attributes Refers to the relevant quality attributes related to tan embedded system when it is in the operational mode or ‘online ’ mode Non-Operational Quality Attributes The Quality attributes that needs to be addressed for the product ‘not’ on the basis of operational aspects are grouped under this category Operational Quality Attributes Response Throughput Reliability Maintainability Security Safety Non-Operational Quality Attributes Testability & Debug-ability Evolvability Portability Time to Prototype and Market Per Unit and Total Cost Washing Machine – Application Specific Embedded System V Extensively used in Home Automation for washing and drying clothes V Contains User Interface units (I/O) like Keypads, Display unit, LEDs for accepting user inputs and providing visual indications V Contains sensors like, water level sensor, temperature -
Assembly Language Programming by James and Jarrod Parkes Abstract
Technical Course Curriculum and Annotated Bibliography CS308: Assembly Language Programming By James and Jarrod Parkes Abstract At the University of Alabama in Huntsville, the Computer Science (CS) Department is facing a decreased student interest in their CS 308 assembly language course. As a result, this new course curriculum and annotated bibliography have been created to restore excitement into the program. Since today's students are seeking innovative applications for programming, this curriculum teaches the 6502 assembly language with a focus on the Nintendo Entertainment System (NES)--a vintage video game console. While linearly covering the required assembly language material, this curriculum incorporates interactive examples from classic NES titles such as Super Mario and The Legend of Zelda. With this curriculum, CS professors are also given the tools to guiding students through the development of their very own NES video games. By the end of the curriculum, professors will be fully equipped to teach the 6502 assembly language while providing students the rewarding experience of game development. Additionally, the annotated bibliography includes supplementary texts and online articles to help reinforce topics for professors and students. Source: Google Images ii Table of Contents Introduction to the Assembly Language Course....................................................... 1! What is an Assembly Language? .................................................................................. 1! How is this Course Structured?................................................................................... -
Chapter 1 Basic Principles of Programming Languages
Chapter 1 Basic Principles of Programming Languages Although there exist many programming languages, the differences among them are insignificant compared to the differences among natural languages. In this chapter, we discuss the common aspects shared among different programming languages. These aspects include: programming paradigms that define how computation is expressed; the main features of programming languages and their impact on the performance of programs written in the languages; a brief review of the history and development of programming languages; the lexical, syntactic, and semantic structures of programming languages, data and data types, program processing and preprocessing, and the life cycles of program development. At the end of the chapter, you should have learned: what programming paradigms are; an overview of different programming languages and the background knowledge of these languages; the structures of programming languages and how programming languages are defined at the syntactic level; data types, strong versus weak checking; the relationship between language features and their performances; the processing and preprocessing of programming languages, compilation versus interpretation, and different execution models of macros, procedures, and inline procedures; the steps used for program development: requirement, specification, design, implementation, testing, and the correctness proof of programs. The chapter is organized as follows. Section 1.1 introduces the programming paradigms, performance, features, and the development of programming languages. Section 1.2 outlines the structures and design issues of programming languages. Section 1.3 discusses the typing systems, including types of variables, type equivalence, type conversion, and type checking during the compilation. Section 1.4 presents the preprocessing and processing of programming languages, including macro processing, interpretation, and compilation. -
Fifty Years in Home Computing, the Digital Computer and Its Private Use(Er)S
International Journal of Parallel, Emergent and Distributed Systems ISSN: 1744-5760 (Print) 1744-5779 (Online) Journal homepage: https://www.tandfonline.com/loi/gpaa20 Fifty years in home computing, the digital computer and its private use(er)s Stefan Höltgen To cite this article: Stefan Höltgen (2020) Fifty years in home computing, the digital computer and its private use(er)s, International Journal of Parallel, Emergent and Distributed Systems, 35:2, 170-184, DOI: 10.1080/17445760.2019.1597085 To link to this article: https://doi.org/10.1080/17445760.2019.1597085 © 2019 The Author(s). Published by Informa UK Limited, trading as Taylor & Francis Group Published online: 26 Mar 2019. Submit your article to this journal Article views: 354 View related articles View Crossmark data Full Terms & Conditions of access and use can be found at https://www.tandfonline.com/action/journalInformation?journalCode=gpaa20 INTERNATIONAL JOURNAL OF PARALLEL, EMERGENT AND DISTRIBUTED SYSTEMS 2020, VOL. 35, NO. 2, 170–184 https://doi.org/10.1080/17445760.2019.1597085 Fifty years in home computing, the digital computer and its private use(er)s Stefan Höltgen Department for Musicology and Media Science, Humboldt University, Berlin, Germany ABSTRACT ARTICLE HISTORY The following chapter will discuss the relation between home computer his- Received 13 March 2019 tory and computer programming – with a focus on game programming. Accepted 16 March 2019 The nurseries of the early 1980s are the origins of the later computer game KEYWORDS industry and the private use of microcomputers becomes an essential part Homecomputer; computer of the ‘playful’ exploration and emancipation of technology. -
Ada: the Maginot Line of Languages -Or
BACKTALK Ada: The Maginot Line of Languages -or- One language to rule them all, One language to find them, One language to (withbring apologiesthem all toan J.R.R.Tolkien)d in the darkness bind them. uring World War I, more than one million French citizens The Ada programming language shall become the single were killed, and another estimated four to five million common programming language for Defense mission-criti- were wounded. Many French politicians and generals thought that cal applications. Effective 1 January 1984 for programs the Treaty of Versailles (which ended the war, and was supposed to entering Advanced Development and 1 July 1984 for pro- punish the defeated countries and prevent further conflict) was grams entering Full-Scale Engineering Development, Ada Dinsufficient protection. France was justifiably concerned that the shall be the programming language. treaty was really just an armistice and that war would ultimately resume (as it did – World War II). To protect France, many influ- The problem was that back in 1983 there weren’t many compil- ential politicians and generals were in favor of an aggressive set of ers, tools, or experienced programmers. Compilers were slow and fortifications. There were many studies and meetings, and based on tended to consume all the resources of even high-end computers. the consensus of opinion, the Maginot Line was built. The general feeling among us Ada zealots was that the DeLauer The Maginot Line, named after French minister of defense memo was premature and actually worked against the cause of Ada. André Maginot, was a line of concrete fortifications, tank obstacles, Because of the lack of tools, compilers, and trained programmers, machine gun posts, and other defenses which were built along the many developers either received a waiver from the Ada mandate or Italian and German border.