Bruce Smith http://www.brucesmith.info Books for the serious programmer Fri, 23 Jun 2017 11:29:13 +0000 en-GB hourly 1 Welcome http://www.brucesmith.info/711/ Mon, 16 Mar 2015 23:06:03 +0000 http://chasingthepast.com/?p=711 Continue Reading]]> Welcome

BS

Hi I’m Bruce Smith, thanks for taking the time to check out my website and books. Books about ARM and the Raspberry Pi can be found on this page and you can use the menus to find details of previous computer and sport related titles I have written over the past thirty years.

Lastest Book

To the right, you can see details of my latest book – ARM A32 ASSEMBLY LANGUAGE.This is now available to purchase!  If you purchase the print book then you get the eBook free!

Where to Buy

Is this the book for you? You will find a detailed contents list and description, plus a review or two for each of the Raspberry Pi books on the associated book page (click on the book image). You can buy my books online and through major distribution channels. Click on any of the links below for your preferred sales option. Some of my books are even available via iTunes. Print books are available on Amazon and Wordery. EBooks are available through Amazon, Gumroad and Smashwords. Several of my books can also be found on the book subscription site Scribd.

Digital Age

I write and produce my own books. The advantage of this is that I can ensure they are up-to-date and as accurate as possible by revising them regularly. Changes and updates, as and when they occur, are notified on the book resource and errata pages mentioned above, so please check them out.

Compatibility

My books are compatible with all flavours of Raspberry Pi. As you may be aware the Raspberry Pi 2 has a more advanced version of the ARM chip than originally released on the Model A, B, A+ and B+. The content of the Assembly Language books is still applicable as a beginner.

Book Resources

Each book has a resource page, including links to items referred to in the book. The first link on each page allows you to access files and programs from the book. To download files from any of the books, you will be required to register. I will occasionally send out an update and this may be in the form of a special offer or discount, not available elsewhere.

Stay In Touch

I occasionally communicate through social media, so please feel to follow me on Twitter or Facebook. I tend to go in spurts as when I have things to say, so you can rest assured you won’t be inundated with updates.

Email Me

I love hearing your feedback and happy to answer questions about my books. Use the contact form here if you would like to get in touch. I do my very best to answer them all.

Retro Computing – Free Book PDFs

I have made several of my early books available free-of-charge in PDF format and without warranty as part of my Retro Computing series of titles covering a number of the popular 1980s home computers.

Alan Turing Rocks

The ATR link at the top of the page will take you straight to my blog. I occasionally add a post here when something takes my fancy, or if I am about to embark or complete a new project.

Swallow (Family) Resource Centre

With the help of a distant cousin, I have compiled a great deal of information about my maternal family. Dating back to 1662, this information can be found on the SRC webpages.

]]>
ARM A32 ASSEMBLY LANGUAGE http://www.brucesmith.info/arm-a32-assembly-language/ Sun, 15 Feb 2015 10:14:59 +0000 http://www.brucesmith.info/?p=874 “I have found this book to be an excellent read. I have learned a great deal about ARM”  ...Continue Reading]]> amazon_comamazon_co_uk

“I have found this book to be an excellent read. I have learned a great deal about ARM”  5 Stars.

ARM A32 ASSEMBLY LANGUAGE is the complete guide to learning ARM programming bar none. This comprehensive volume is applicable to all current 32-bit ARM architectures including ARMv7 and ARMv8.  This includes the processors available on most Single Board Computers and development boards currently available.

Ideal for the novice, this book will take you from first principles through to becoming a competent ARM programmer. It covers all aspects of the ARM instruction set including Thumb, Neon, Advanced SIMD and Vector Floating Point Programming.

The book covers the new Unified Assembly Language (UAL) and the use of AArch32 State in the latest range of ARM microprocessors.

Program examples are provided that are written using the GCC Assembler and Compiler which is freely available for most computer operating systems.

This book will take you from beginner to expert.

Probably one of the best assembly language books I’ve seen. Although I used to do some assembly language programming many years ago, this book was a very good refresher and clearly explained… Highly recommended.

In my opinion this book is 10/10 and a must for anybody starting off or getting back into assembly language…Thank’s Bruce for a valuable resource!… By Peter GostanianPublished on wordery.com

Taking You From Beginner To Expert

Providing lucid descriptions, award-winning author Bruce Smith keeps things simple and includes plenty of program examples you can try for yourself. Ideas and concepts are introduced in the order required so you should never be left wondering. Just some of the many features include:

  • 320 pages
  • Practical approach with program example
  • Unified Assembly Language compatible
  • Uses FREE GCC assembler and linker
  • ARM registers and arrangements
  • Addressing modes
  • Use of operating system Syscalls
  • Debugging with GDB
  • Using libc function calls
  • Programming the GPIO
  • Thumb – 16-bit and 32-bit (T16 and T32)
  • Floating Point Programming
  • Advanced SIMD and Neon programing
  • Number crunching examples
  • ARM Architecture
  • Using C to create Assembler
  • AArch32 and AArch64 (64-bit ARM)
  • Exception Handling
  • ARMv8 Overview
  • Compatible with popular Single Board Computers: Arduino, BeagleBoard etc
  • Bruce Smith – Award Winner – 50+ books and over 500,000 sales!

 

Probably one of the best assembly language books I’ve seen. Although I used to do some assembly language programming many years ago, this book was a very good refresher and clearly explained… Highly recommended.

In my opinion this book is 10/10 and a must for anybody starting off or getting back into assembly language…Thank’s Bruce for a valuable resource!… By Peter GostanianPublished on wordery.com

ARM A32 ASSEMBLY LANGUAGE: Contents List

1: Introduction

Fully Clothed, ARM Board Compatibility, Learn By Example, What Will You Learn?, Notation in Use, Companion Website, Free Books, Acknowledgements

2: Starting Out

Numbers with Meaning, ARM Instructions, The Transformation Process, Why Machine Code?, Language Levels, Into Orbit, RISC and Instruction Sets, Assembler Structure, Error Of Your Ways.

3: First Time Out

The Command Line, Creating A Source File, Come to the Execution, Assembler Errors, The Components, Lack of _start, Linking Files, Tidying Up, A Comment On Comments

4: Bits of a RISC Machine

Binary to Decimal, Decimal to Binary, Binary to Hex, Hex to Decimal and Back, Binary Arithmetic, Addition, Subtraction, Twos Complement Numbers, When Two’s Doesn’t Add Up

5: ARM Arrangements

Word Lengths, Byte and Word Accessed Memory, Registers, R15 – Program Counter, Current Program Status Register, Bits and Flags, Setting Flags, S Suffix, R14: The Link Register, R13: Stack Pointer.

6: Data Processing

Arithmetic Instructions, Addition, Integer to Register Transfer, Subtraction, Multiplication, Move Instructions, Compare Instructions.

7: Ins and Outs

SWI and SVR Commands, Writing to the Screen. Reading From the Keyboard, Makefiles, eax and Others.

8: Logical Operations

Logical AND, Logical OR, Logical EOR, Logical Instructions, ORR to Convert Character Case, Toggling Characters with EOR, Bit Clear with BIC, Flag Tests, Syscall Registers

9: Conditional Execution

Single Flag Condition Codes, Multiple Flag Condition Code, Mixing the S Suffix.

10:  Branch, Compare and SWI

Branch Instructions, The Link Register, Using Compare Instructions, Compare Forward Thinking, Using Conditionals Effectively, Branch Exchange.

11: Shifts and Rotates

Logical Shifts, Logical Shift Right, Arithmetic Shift Right, Rotations, Extended Rotate, Uses of Shifts and Rotates, Immediate Constant Range.

12: Smarter Numbers

Long Multiplication, Long Accumulation, Division and Remainder, Smarter Simple Multiplication, Staurdation and Q Flag.

13: Register 15

Pipelining, Calculating Branches.

14: Debugging with GDB

Frozen Cases, Assembling for GDB, The Disassembler, Breakpoints, Memory Dump.

15: Data Transfer

ADR Directive, Indirect Addressing, Immediate Constants, Pre- Indexed Addressing, Accessing Memory Bytes, Address Write Back, Post- Indexed Addressing, Byte Conditions, PC Relative Addressing.

16: Block Transfer

Counting Options, Write Back, Block Copy Routine.

17: Stacks

Push and Pull, Stack Growth, Stack Application.

18: Directives and Macros

Data Storage Directives, ALIGNing Data, Macros.

19: Using libc

Using C Functions in Assembler, Source File Structure, Investigating the Executable, Number Input with Scanf, Getting This Information.

20: Writing Functions

Function Standards, Register Use, More Than Three, Preserving Link and Flags.

21 : Disassembling C

GCC – The Swiss Army Knife, A Simple C Framework, Getting the Assembler, Building Blocks, A printf Example, Frame Pointer Variables, Disassembling Syscalls, n Summary

22 : Floating Point

VFP2 Architecture, The Register File, Managing and Printing, Load, Store and Move, Precision Conversion, Vector Arithmetic, GDB VFP Update.

23: VFP Control Register

Conditional Execution, Scalar and Vector Operations, Which Type of Operator? Len and Stride.

24: Neon

Neon Instructions, Addressing Modes, Neon Intrinsics, Neon Assembler, Neon Arrays, Matrix Math, VLD and VST in their Stride, Load of Others.

25: Thumb Code

Differences, Assembling Thumb, Accessing High Registers,  Stack Operators, Single and Multi- Register, Functions in Thumb.

26: Unified Assembler

Thumb Changes, New A32 Instructions, Compare by Zero, Assembling UAL.

27: Connectivity

The GPIO Controller, Building the Code, Virtual Memory, Using and Adapting , Other GPIO Functions

28: Exception Handling

Modes of Operation, Vectors, Register Arrangements, Exception Handling, MRS and MSR, Interrupts When?, Your Interrupt Decisions, Returning From Interrupts, The System Control Register, Writing Interrupt Routines.

29: Opcodes and Pipelines

A Data Processing Example, Thumb Examples, Pipeline, Neon Pipeline, Instruction Cycles.

30: System On Chip

The ARM Chip & Instruction Sets, Co- Processors, Pipeline, Memory & Caches,  The GPU, Single Board Computers.

31: ARMv8 Overview

Different Compatability,  A64 Register Set, Syntax Differences, Exceptions, AArch32 Processor Modes, AArch32 State Exceptions, AArch32 Exceptions in AArch64, Finally

Appendices

a: GCC Updates
b: ASCII Character Set
c: Companion Website
Index
amazon_comamazon_co_uk

 

]]>
Raspberry Pi Insider Guide http://www.brucesmith.info/raspberry-pi-insider-guide/ Wed, 04 Feb 2015 03:22:59 +0000 http://chasingthepast.com/?p=14 Raspberry Pi Insider Guide is the most complete up-to-date beginners guide available bar none. This comprehensive volume covers ...Continue Reading]]> Amazon5StarsRaspberry Pi Insider Guide is the most complete up-to-date beginners guide available bar none. This comprehensive volume covers the Raspberry Pi and its software as it is today and includes the latest Rasbpian Desktop release. This 400-page tomb covers all models including B/B+/Pi 2. This book will take you from beginner to expert and has has joined the ranks of five-star Amazon reviews! Available in print from Amazon, and in Book for Amazon,. Gumroad and Smashwords. Also available to read on Scribd.

Best Raspberry Pi Beginners Book so far –  Magne Ertresvag

Buy Now or Continue Reading:

amazon_comamazon_co_ukgumroad1  iBooks  SmashwordsWordery

Taking You From Beginner To Expert

The world of computing moves fast and since the Raspberry Pi was launched in 2012, a lot has changed. RASPBERRY PI INSIDER GUIDE is the most complete up-to-date guide available. Even as an absolute beginner you will start on a journey that will ultimately leave you knowledgeable and with the confidence to work your Raspberry Pi to the limit. All you need is this book and some time to work through it.

RASPBERRY PI INSIDER GUIDE is organised in seven sections, each containing chapters aimed at taking you to the next step. From connecting your Raspberry Pi to choosing and selecting add-ons and using the Raspbian Operating System and desktop environment, you will be well on your way to expert status. INSIDER GUIDE will show you how to use hard drives and printers and how to connect cameras to take great pictures. Create your own website and then a stunning media centre to manage all your TV and music needs. You’ll even learn how to make your Pi speak and create an amazing home office using free world-class software.

Moving on, you will learn to master programming and become proficient in some of the industry standard languages available to you, including Bash, Python, Scratch and assembly language.  Learn about other Operating Systems available for the Raspberry Pi, including RISC OS , Pidora and Arch Linux. Finally, discover the Raspberry Pi board itself, and find out how you can use the GPIO port to connect and control the outside world using simple examples.

This book covers the all models including models A, B, A+, B+,2.

You will learn so much from the RASPBERRY PI INSIDER GUIDE including how to:

  • select the bare essentials you will need to get your Raspberry Pi up and running.
  • copy and install the Raspbian Operating System.
  • identify and connect everything together, switch it on and get it all working.
  • use the command line to issue instructions and access important information.
  • use the Desktop environment to run programs and games.
  • use essential software to maintain your Raspberry Pi in tip-top condition.
  • add additional devices such as disk drives, printers and cameras.
  • have fun with the Camera Module or a webcam and take and edit photos including using time lapse photography.
  • play high definition videos and top quality sound including music.
  • start to program in several industry-standard languages including Python.
  • create a simple website for use as a home information centre or anything you want!
  • update and upgrade your Raspberry Pi and find and install new software.
  • install and use LibreOffice for all your administrative and business needs.
  • create a media centre and access great free-to-air TV and video channels. 
  • make your Raspberry Pi talk!
  • install and use RISC OS as a second Operating System and become familiar with Pidora and Arch Linux.
  • understand the components on the Raspberry Pi and what they do.
  • connect devices to the GPIO port and use them from a language of your choice.
  • make your Raspberry Pi go faster by selecting Turbo mode.
  • ideal for beginners, the RASPBERRY PI INSIDER GUIDE assumes no prior knowledge and will turn you into an expert.

Raspberry Pi Insider Guide: Reviews

Best Raspberry Pi Beginners Book. 5 Feb. 2015, By Magne Ertresvag Published on Amazon.com:

This is the book for you, if you are new to Raspberry Pi and the Linux operating system. It is the best beginner’s book I have read so far, it covers many aspects about the Raspberry Pi; administration from the command line, programming on various platforms, making your own web server, and using the Pi as an office computer. It also show you how to start making hardware projects for your Pi. If you are considering giving a Raspberry Pi to your kid, this book is necessary.

Get a great start using the Raspberry Pi with this book 23 Dec. 2014, By Robin T. Wernick Published on Amazon.com [Edited version]

This is one of the better introductory books that explain in sufficient detail how the Pi can work for you by making you an instant expert; well almost an expert. It gets you on track with a host of applications and well on your way to being an expert. Applying the Pi takes you in two different directions. First there is the hardware and then there is the software. This book has far more width of subjects than depth.

Most users will find several uses to focus on in this book and by reading it you will come to understand the usable world of the Pi. This will give you the 10,000 ft view of its scope of operation. If this is enough for you it has done its job well.

Raspberry Pi Insider Guide: Contents List

This book is organised into seven convenient sections. (To see a description of these sections click here.)

SECTION ONE: IN THE BEGINNING

1: Welcome Home

Introduction, Need to Learn, How to Use This Book, Jargon and Assumptions, Companion Website, About the Author

2: Bare Essentials (H3)

Introduction, Mobile Phones, Bare Essentials,  It’s Different, Static Electricity,  Making Jam

3: Board Anatomy (H4)

Introduction, Around the Boards, SD Card, USB Power Supply, HDMI connector, Composite Video & Audio, Ethernet, USB, Others, Model A

4: Distro Bution (H5)

Introduction, OS Options, Downloading a Distro, Flash Windows, Flash Mac, Flash Linux, Reusing Cards, OS Updates

5: Ready, Set…

Introduction, Sum of the Parts, Inserting SD Card, Sound and Vision, Keyboard and Mouse, Internet, Powering Up! Installing NOOBS, Troubleshooting

6: Configuration

Raspi- config, Menu explained, Log On, Respecting Pi

SECTION TWO: MAKING THINGS SING!

7: Raspbian Welcome

From the Shell, Directory Ins and Outs, Hierarchical Filing Systems, Command Line Memory, Is It Linux?, Switching Off

8: The Desktop

Introduction,  First Screening, Window Anatomy, Using LX Terminal, Playing Python,  Task Bar, Task Bar Take 2, Installing Screensaver, Program Manager, Program Preferences, File Manager, Creating with Folders and Files, Using Files and Folders, Go and Bookmarks, The Way Things Look, Keyboard Shortcuts,  File Names

9: Having a Bash

Introduction, Directories, Files, Listing Options, Long Format, Bytes and More, Understanding Permissions, Changing Permissions, Copying Files, Moving & Renaming Files, Confgi Revisited, Manual Pages, Less is More, Useful Commands, Shutting Down

10: Essential Tools

Introduction, Surfing the Web, Pi Store, Text Editors, Leafpad, Nano, Text Editors as Configuration Editors

11: Root Causes

Super Users, Sudo Command, Installing Software, Upgrading Software, What’s Installed, Raspbian Structure

12: More Bash

Introduction, Alias Commands, Wildcards, Redirection, Debian Reference, Maynard

SECTION THREE: NEW ADDITIONS

13: Hardware Re Visited

USB Hubs, Cases, WiFi Config

14: External Storage

Introduction, USB Devices, Sticks In the Shell, Mounting File Systems,Copying Externally, Unmounting Drives, Hard Drives in the Shell, Web Based Cloud Storage, Backing Up Files and SD Cards

15: Printers

Introduction, Printing With Cups, Printer Troubleshooting, Printing From Command Line, Printer Options, CUPS Files

16: Camera

Introduction, Up and Snapping, Taking Stills, Image Control, Time Lapse, More Functions, Using Webcams

SECTION FOUR: PROGRAMMING

17: About Programming

Introduction, Which Language, Interpreted & Compiled, Structured Programming, Variables, Loops, Decisions, Nested Loops, Functions, Debugging, Learning To Program, GitHub

18: Bash Scripts

Introduction, Essentials, Bash Variables, For Loops, More loops, Test Conditions, String Variables, Double Brackets, Functions, Passing Parameters, Exiting Scripts, Paths, Camera Auto Number and Date, Executing at Login

19: Python

Introduction, IDLE Person, Py Scripts, Errors, Customising A Game, Variables, Lists and Dictionaries, Loops, If Tests, Functions, Modules, PiCamera, Shell Python

20: Scratch

Introduction, The Scratch Screen, First though a quick example., Starting From…,  Bouncing Off the Wall, New Sprites, The Block Palette, More Scratch

21: Making a Website

Introduction, File Structure, A Quick Example, Adding Links and Pages, Images, Lists, Colouring By Numbers, CSS, Layout, Editors and Web

22: Assembly Language

Introduction, Numbers With Meaning, ARM Instructions, Language Levels, Creating and  Executing, Assembler Errors, The Components, Summary

SECTION FIVE: HOME & OFFICE

23: LibreOffice

Introduction, Templates & Extensions, Writer, Calc, Base, Impress, More Information, PDF & Document Viewer, Creating PDFs

24: Audio & Video

Introduction, Getting Sound, Omxplayer, VLC Media Playe. Making Pi Speak

25: Sonic Pi

Introduction, Midi Matters, Loops and Tests, Pattern Play, Active Command Completion, Synths, Tempo, Chords & FX, Two Tunes, Samples, Functions, Recording Work. Saving Work, Trying It All Out

26: Creating A Media Centre

Introduction, OSMC, Installing Raspbmc, Local Media, Playing Videos, Playing Music,Viewing Pictures, Network Media, Add- Ons, Changing Settings, System Menu, Raspbian Settings, Adding A Remote, OpenElec

27: Pictures

Introduction, Image Viewer, GIMP, Resizing An Image, Rotating An Image, Cropping An Image, More GIMP

28: Game for Fun

Introduction, Minecraft, Space Invaders, Penguins Puzzle, Shot Em Up, Su- Do- Ku

SECTION SIX: OPERATING SYSTEMS

29: RISC OS

Introduction, Up and Running, Configuring, The Filer, The Filing System, Folders & Files, !Applications, The Big Raspberry, Bundled Software, Other Software, Documentation, Desktop to CLI

30: RISC OS From the CLI

Introduction, Task Window, Essential * Commands, Aliases, BBC BASIC, Modules, FileTypes, Where Next?

31: Pidora

Introduction, XFCE, Pidora Command Line

32: Arch Linux

Introduction, Connecting to WiFi, Setting Zone and Time, Package Manager, Other Things, Desktop Arch

SECTION SEVEN: PHYSICAL PI

33: Pi Inside and Out

SOC, No Risc at all, Other Bits, Overclocking

34: GPIO

Introduction, Pins Explained, Wiring Pi, Python

35: Simple Projects

Introduction, LED Circuit, Making it Work!, Using A Switch, Reading an Input, Interpretive Not Direct

36: Add On Boards

Introduction, Pibrella, Hats

rasp_pi_insider_long_black

]]>
Raspberry Pi Assembly Language Raspbian [Third Edition] http://www.brucesmith.info/raspberry-pi-assembly-language-raspbian/ Sun, 01 Feb 2015 16:54:05 +0000 http://chasingthepast.com/?p=22 Raspberry Pi Assembly Language RASPBIAN Beginners is your hands-on guide to learning to program ARM machine code on ...Continue Reading]]> Amazon5Stars

Raspberry Pi Assembly Language RASPBIAN Beginners is your hands-on guide to learning to program ARM machine code on your Raspberry Pi. With nothing other than the Raspbian Operating System installed on your Raspberry Pi, this book shows you how to access all the tools that you’ll need to create your own machine code programs using assembly language. Ideal for the novice, this book starts from first principles and leads you comfortably on your way to become an accomplished programmer.

This book gives a great introduction to assembler programming.  This is a great book. Bruce Smith writes great books. Warren L. Gibbs

Buy Now or Continue Reading:

amazon_comamazon_co_ukgumroad1  iBooks  SmashwordsWordery

Providing lucid descriptions, award winning author Bruce Smith keeps things simple and includes plenty of program examples you can try for yourself. Ideas and concepts are introduced in the order required so you should never be left wondering. Just some of the many features include:

  • 260 pages
  • Practical approach with program example
  • GCC assembler and linker
  • ARM registers and arrangements
  • Addressing modes
  • Use of operating system Syscalls
  • Debugging with GDB
  • Using libc function calls
  • Programming the GPIO

Examples have been provided and written using the GCC Compiler running under the Raspbian Operating System on the Raspberry Pi, all of which can be downloaded from the this website here.

The updated and revised THIRD edition of this book was published on 2nd July 2016.

The contents of this book are applicable to the RPi 3, 2, 1 and Zero.

Raspberry Pi Assembly Language Raspbian: Reviews

One of the Best Assembly Language Books. 24 Feb. 2015, By ED Published on Amazon.com [Edited version]

Probably one of the best assembly language books I’ve seen. Although I used to do some assembly language programming many years ago, this book was a very good refresher and clearly explained the Raspbian assembly language. Don’t forget to go to the author’s web site and pick up the errata. The web site also has links to other sites and pdfs, including a tabular chart(s) of the assembly directives. Highly recommended.

In my opinion this book is 10/10 and a must for anybody starting off or getting back into assembly language…Thank’s Bruce for a valuable resource!… 17 Feb 2015, By Peter GostanianPublished on wordery.com

In my opinion this book is a 10/10 and a must for anyone starting off or getting back into assembly language programming. It saved me a lot of time by having all the required information I needed in one place. Thanks Bruce for this valuable resource!

Raspberry Pi Insider Guide: Contents List

1: Welcome Home

Imagination Unlimited, Start Experimenting, Raspbian Pi GCC, Learn By Example, What Will You Learn? Companion Website, Notation in Use, Acknowledgements

2: Starting Out

Numbers with Meaning, ARM Instructions, The Transformation Process, Why Machine Code?, Language Levels, Into Orbit, RISC and Instruction Sets, Assembler Structure, Error Of Your Ways,, The Raspberry Pi ARM Chip, Cross Compiler

3: First Time Out

The Command Line, Creating A Source File, Come to the Execution, Assembler Errors, The Components, Lack of _start, Linking Files, Tidying Up, A Comment On Comments

4: Bits of a RISC Machine

Binary to Decimal, Decimal to Binary, Binary to Hex, Hex to Decimal and Back, Binary Arithmetic, Addition, Subtraction, Twos Complement Numbers, When Two’s Doesn’t Add Up

5: ARM Arrangements

Word Lengths, Byte and Word Accessed Memory, Registers, R15 – Program Counter, Current Program Status Register, Bits and Flags, Setting Flags, S Suffix, R14: The Link Register, R13: Stack Pointer

6: Data Processing

Arithmetic Instructions, Addition, Integer to Register Transfer, Subtraction, Multiplication, Move Instructions, Compare Instructions

7: Raspbian Ins and Outs

SWI and SVR Commands, Writing to the Screen. Reading From the Keyboard, Makefiles

8: Logical Operations

Logical AND, Logical OR, Logical EOR, Logical Instructions, ORR to Convert Character Case, Toggling Characters with EOR, Bit Clear with BIC, Flag Tests, Syscall Registers

9: Conditional Execution

Single Flag Condition Codes, Multiple Flag Condition Code, Mixing the S Suffix

10:  Branch, Compare and SWI

Branch Instructions, The Link Register, Using Compare Instructions , Compare Forward Thinking, Using Conditionals Effectively, Branch Exchange

11: Shifts and Rotates

Logical Shifts, Logical Shift Right, Arithmetic Shift Right, Rotations, Extended Rotate, Uses of Shifts and Rotates, Immediate Constant Range.

12: Smarter Numbers

Long Multiplication, Long Accumulation, Division and Remainder, Smarter Simple Multiplication

13: Register 15

Pipelining, Calculating Branches

14: Debugging with GDB

Frozen Cases, Assembling for GDB, The Disassembler, Breakpoints, Memory Dump

15: Data Transfer

ADR Directive, Indirect Addressing, Immediate Constants, Pre- Indexed Addressing, Accessing Memory Bytes, Address Write Back, Post- Indexed Addressing, Byte Conditions, PC Relative Addressing

16: Block Transfer

Counting Options, Write Back, Block Copy Routine

17: Stacks

Push and Pull, Stack Growth, Stack Application

18: Directives

Data Storage Directives, ALIGNing Data

19: Using libc

Using C Functions in Assembler, Source File Structure, Investigating the Executable, Number Input with Scanf, Getting This Information

20: Writing Functions

Function Standards, Register Use, More Than Three, Preserving Link and Flags

21 : Disassembling C

GCC – The Swiss Army Knife, A Simple C Framework, Getting the Assembler, Building Blocks, A printf Example, Frame Pointer Variables, Disassembling Syscalls, n Summary

22 : Floating Point

VFP2 Architecture, The Register File, Managing and Printing, Load, Store and Move, Precision Conversion, Vector Arithmetic

23: VFP Control Register

Conditional Execution, Scalar and Vector Operations, Which Type of Operator? Len and Stride

24: Thumb Code

Differences, Assembling Thumb, Accessing High Registers
, Stack Operators , Single and Multi- Register, Functions in Thumb

25: GPIO Functions

The GPIO Controller, Building the Code, Virtual Memory, Using and Adapting , Other GPIO Functions

26: Exception Handling

Modes of Operation, Vectors, Register Arrangements, Exception Handling, MRS and MSR, Interrupts When?, Your Interrupt Decisions, Returning From Interrupts, Writing Interrupt Routines

27: System On Chip

The ARM Chip & Instruction Sets, Co- Processors, Pipeline, Memory & Caches,  The GPU , In Summary

Appendices

A: ASCII Character Set
B: Raspbian Syscalls
C: Companion Website
Index

]]>
Raspberry Pi RISC OS System Programming http://www.brucesmith.info/raspberry-pi-risc-os-system-programming/ Sun, 01 Feb 2015 04:09:32 +0000 http://chasingthepast.com/?p=50 Raspberry Pi RISC OS System Programming shows you how to get the most from RISC OS on the ...Continue Reading]]> Amazon5StarsRaspberry Pi RISC OS System Programming shows you how to get the most from RISC OS on the Raspberry Pi. This book takes the lid off the RISC OS operating system and reveals how to really use it. Available in traditional print format or as a two-part eBook.

Aimed at those wishing to learn how to program RISC OS directly but are struggling with the Programmers Reference Manuals (PRMs) or simply don’t know where to start – this book will teach you everything you need to know to get the most from RISC OS and your Raspberry Pi. Providing lucid descriptions, award winning author Bruce Smith keeps things simple and includes plenty of examples you can try for yourself.

Information well presented, I am a fan of Risc OS. Bruce has a very readable style of writing. The information is well presented – Paul Dunnington

Buy Now or Continue Reading:

amazon_comamazon_co_ukWordery

Ideas and concepts are introduced in the order required so you should never be left wondering.

Just some of the many features include:

  • Filing systems including SDFS and FAT32FS
  • FileCore and FileSwitch Operation
  • The CLI, *Commands and the SWI interface
  • Communicating with RISC OS
  • Writing and using Modules
  • Vectors, Interrupts and Events
  • The Window Manager (Desktop) and WIMP Utilities
  • The Font Manager
  • The Sound System
  • SoundDMA and SoundControl
  • Floating Point Model
  • Programming the GPIO
  • Book support pages on authors website.
  • The two-part eBook splits the contents into distinctive sections allowing you to learn about specific information from each section. Part 1 covers the Filing System, Command Line and Vectors and Interrupts; Part 2 covers the Sound
  • System, Modules and WIMP and Font Manager. Together they contain the entire contents of the print edition.

Raspberry Pi RISC OS System Programming Revealed is your first step to understanding RISC OS and using the PRMs to full effect. Examples are provided in BBC BASIC and Assembler, all of which can be downloaded from the book support page here.

Raspberry Pi Assembly Language RISC OS: Reviews

Onward with RISC OS. 14 Feb 2014, By I.Furniss Published on Amazon.co,uk [Edited version]

I still have an Archimedes 3000 squirreled away somewhere, but there is only so much space to set computers up and run them.Have a RPi and already this book has helped to solve a problem regarding archived files from my old system.
Money well spent in my view.

Raspberry Pi Assembly Language: Contents List

1: Introduction

The PRMS, What You Will Learn, Assembly Language Beginners, What This Book is Not!, Compatibility, Notation In Use, Companion Website, Acknowledgements

2:  About RISC OS

Operation Process, Routine Library, Extendibility, Well Supported, Programmers Tool Chest, Fitting RISC OS Together, Soft Interactions

3:  Command Line Interpreter

CLI Command Syntax, Star Commands, *Help, *Configure, *Echo, *Error, *Eval, *FX (OSBYTE), *Go, *If, *Key, *Set, *SetEval, *SetMacro, *Show. *Status, *Time, *Unset, *Quit, Aliases, Obey Scripts, Command Sequence. CLIV Vector

4: Software Inrerrupts (P1)

SWI Calls, PRM Example, Inside SWIs, SWI Names, SWI Error Handling, XSWI Error Handling, Error Handling Numbering, Error Generation, OSCLI SWIs, *SWI Command

5: Communications (P1)

Input Selection, Character Input, Line Input, Keyboard Control, Output Stream, Characters Out, Conversion Routines, Numbers To Strings, Strings To Numbers, GS String Operations, MessageTrans

6: Assembler, BASIC and C (P1)

Offset Assembly, OPT Settings, BBC BASIC, The SYS Call, USR Calls,  Calling XSYS, C Code, _Swi, _swix and  _kernel_swi

7: Modules (P2)

Relocatable Modules. ROM Modules, Module Related, Commands, OS_Module

8: Vectors (P1)

Hardware Vectors, SWI Example, Software Vectors, Vector Lists, Joining the Vector List, Writing Vector Routines, Vectored SWI Calls, Vector Related SWIs, Post Vector Calls, Vector Details

9: Interrupts & Events (P1)

Modes of Operation, Register Arrangements, Exception Handling, MRS and MSR, Interrupts When?, Your Interrupt Decisions, Returning from Interrupts, Writing Interrupt Routines, SWI Calls During Interrupts, Enabling and Disabling Interrupts, The Primary Interrupt Vector, Events, Using an Event

10: The Filing System (P1)

Filing Systems, Naming Convention, Directories, Files on Other Filing Systems, Device Filing Systems, Load and Execute Addresses, Date Stamping, Command Files, Executing a Command File, File Types, Libraries and Search Paths

11:  FileSwitch Commands (P1)

Introduction, A- Z of all Commands (*ACCESS to *WIPE)

12: Filing System Control (P1)

Directory Actions, Object Actions, Block Actions

13: OS_File SWIs (P1)

SWI descriptions

14: Open, Close, Read, Write (P1)

File Open and Close, Get and Put With Files, Get Byte From File, Put Byte To File, General Filing System Control, File Actions, Read/Write Open File Information

15: FileCore (P2)

SDFS, RAM FS, ADFS, CDFS, FileCore Commands, Fat32FS, Fat Command Line, A- Z of FAT32FS *Commands, The Filer

16: Window Manager (P2)

An Involved Process, Window Anatomy, The Co-ordinate System, SWI’s – The Stages, Wimp_Initialise, Wimp_CreateWindow, Wimp_GetWindowState, Wimp_OpenWindow, Wimp_DeleteWindow, The Polling Loop, Wimp_Poll, Co- operatively Done, Transient Callback, Reason Codes, Menu Support,  The Structure of Menus, Programming Menus, Desktop Components, A Reminder

17: WIMP Utilities (P2)

Toolbox, AppBasic, Basalt, Dr Wimp, Dr Wimp C, Other Options, MultiTask

18: The Font Manager

Font Manager, Font Management, Display and Performance, An Example, Plot Options, Co-ordinate Conversion, Character and String Sizes,Printing

19: Writing Modules (P2)

Module Code Format, Workspace Memory, Command Decoding, Information Word, Module Errors, OS_Module, Program> KeyUtils, Further Details

20: Sound (P2)

Introduction, Two Bit Systems, Playing Sound, Module Driven, *Configure.

21: Sound Channels (P2)

The Voice Generator, *ChannelVoice, *Sound, *Tuning, *Voices, *Volume, Sound SWIs

22: Shared Control (P2)

SharedSound, SoundScheduler, *Qsound, *Tempo, SoundControl, *Mixvolume, SoundCtrl SWI

23: SoundDMA (P2)

*Audio,  *Stereo, *Speaker, *Soundgain, Sound SWI, Linear Handlers

24: Floating Point Model (P2)

VFP Architecture, The Register File, Context Operations, RISC OS VFP Support, Summing Up

25:  GPIO Action (P2)

The GPIO Controller, Building The Code, Virtual Memory, Using and Updating, Other GPIO Functions, GPIO Module, And Finally…

]]>
Raspberry Pi Assembly Language RISC OS http://www.brucesmith.info/raspberry-pi-assembly-language-risc-os/ Sun, 01 Feb 2015 03:28:13 +0000 http://chasingthepast.com/?p=33 Raspberry Pi Assembly Language RISC OS is a Hands-On-Guide to learning to program ARM assembly language on the ...Continue Reading]]> Amazon5StarsRaspberry Pi Assembly Language RISC OS is a Hands-On-Guide to learning to program ARM assembly language on the Raspberry Pi using the RISC OS operating system. It is perfect for the novice with no prior knowledge of assembly language. It starts from first principles and leads you through new concepts using a modular approach with clear, lucid descriptions. Gradually progressing onto more complex topics you will become an accomplished and confident programmer by following the examples and applying them yourself.

The book shows how to use the inbuilt BBC BASIC Assembler to create and generate machine code and includes examples that demonstrate how to integrate the flexibility of BASIC into your assembler. Later chapters introduce the industry standard (and free) GCC Compiler and demonstrate how to create machine code.

Thoroughly enjoyable – Owen

Buy Now or Continue Reading:

amazon_comamazon_co_ukWordery

From learning binary numbers, through to the use of logical instructions, this book continues right through to the use of floating point arithmetic, Thumb code and how to turn LEDs on and off using the GPIO interface. There is also a section of how to disassemble C programs to generate your own assembly language files.

This book was originally published under the title Raspberry Pi Assembly Language Beginners. It has been significantly revised and updated and renamed so as to distinguish it from its sister volume Raspberry Pi Assembly Language RASPBIAN Beginners.  Just some of the many features include:

  • 290 Pages
  • Practical tutorial approach
  • Example programs and segments
  • Use of the BBC BASIC Assembler
  • ARM registers and arrangements
  • Data processing
  • Branches, shifts and rotates
  • Conditional execution
  • Addressing modes
  • Use of operating system SWI calls
  • Macros and look-up tables
  • Debugging
  • Vector Floating Point
  • GPIO and Thumb
  • GCC Compiler

All example programs, in BBC BASIC and for use with the GCC Compiler, are available on the book resource page here.

Raspberry Pi Assembly Language RISC OS: Reviews

Another great Bruce Smith book. 18 July 2014, By Warren L. Gibbs Published on Amazon.com [Edited version]

Another great Bruce Smith book. This time, it’s Assembly Language on the RISC OS. I purchased this book and the Raspbian Assembly book. They have similar content but this one is focused on assembler on RISC OS. It’s great to have another perspective on programming Assembler for different OS’s on the same hardware platform. What you’ll see is that while the tools and OS calls differ, in the end, assembler offers the same instructions on the SoC (system on a chip) computer. Understanding assembler is key to understanding how computers work. Buying this book and installing RISC OS is a great way to learn assembler in a not-so-familiar (to me) environment.

Raspberry Pi Assembly Language: Contents List

1: Welcome Home

Imagination Unlimited, Start Experimenting, Raspbian Pi GCC, Learn By Example, What Will You Learn? Companion Website, Notation in Use, Acknowledgements

2: Starting Out

Numbers with Meaning, ARM Instructions, The Transformation Process, Why Machine Code?, Language Levels, Into Orbit, RISC and Instruction Sets, Assembler Structure, Error Of Your Ways,, The Raspberry Pi ARM Chip, Cross Compiler

3: Basic Environment

Emulating Pi, Your RISC OS World, Keyboard Drivers, Editing Programs, !Edit Options

4: The Assembler

The Assembler Listing, Executing and Saving Machine Code Programs, USR Calls, Dumping Code, A Comment On Comments

5: Bits of a RISC Machine

Binary to Decimal, Decimal to Binary, Binary to Hex, Hex to Decimal and Back, Binary Arithmetic, Addition, Subtraction, Twos Complement Numbers, When Two’s Doesn’t Add Up

6: ARM Arrangements

Word Lengths, Byte and Word Accessed Memory, Registers, R15 – Program Counter, Current Program Status Register, Bits and Flags, Setting Flags, S Suffix, R14: The Link Register, R13: Stack Pointer

7: Data Processing

Arithmetic Instructions, Addition, Integer to Register Transfer, Subtraction, Multiplication, Move Instructions, Compare Instructions

8: RISC OS Ins and Outs

SWI Commands, Names and Numbers, OS_Write C, The PRMs

9: Logical Operations

Logical AND, Logical OR, Logical EOR, Logical Instructions, ORR to Convert Character Case, Toggling Characters with EOR, Bit Clear with BIC, Flag Tests, Syscall Registers

10: Conditional Execution

Single Flag Condition Codes, Multiple Flag Condition Code, Mixing the S Suffix

11: Shifts and Rotates

Logical Shifts, Logical Shift Right, Arithmetic Shift Right, Rotations, Extended Rotate, Uses of Shifts and Rotates, Immediate Constant Range, Smarter Multiplication, Full Multiply, Division and Remainder

12: Branch, Compare and SWI

Branch Instructions, The Link Register, Using Compare Instructions , Compare Forward Thinking, SWI, Combining SWI and Suffixes

13: Smarter Numbers

Long Multiplication, Long Accumulation, Division and Remainder, Smarter Simple Multiplication

14: Register 15

Pipelining, Calculating Branches

15: Data Transfer

ADR Directive, Indirect Addressing, Immediate Constants, Pre- Indexed Addressing, Accessing Memory Bytes, Address Write Back, Post- Indexed Addressing, Byte Conditions, PC Relative Addressing

16: Block Transfer

Counting Options, Write Back, Block Copy Routine

17: Stacks

Push and Pull, Stack Growth, Stack Application

18: BASIC Assembler Revisited

OPT Settings, Offset Assembly, Range Check, Data Storage Directives, ALIGNing Data, OS Write String, Call Parameters, Anatomy of a Parameter Block

19: SWI Routines

Characters In, Characters Out, Conversion Routines, Executing OS Commands

20 : Debugging

Frozen Cases, Use of SWI 256 Plus, The Debugger, Breakpoints, Memory Manipulation, Setting Memory, The Disassembler

21 : Assembly Types

Conditional Assembly, Macros, Look Up Tables, Greater Accuracy

22 : Floating Point

VFP2 Architecture, The Register File, Load, Store and Move, Precision Conversion, Vector Arithmetic, Staying Legal

23 : Context Switching

Creating A Context, Demonstration.. Summing Up

24 : VFP Control Register

Conditional Execution, Scalar and Vector Operations, Which Type of Operator?, Len and Stride.

25: Exception Handling

Interrupt Modes, Register Arrangements, Software Interrupts

26: GPIO Functions

The GPIO Controller, Building the Code, Virtual Memory, Using and Adapting , Other GPIO Functions

27 : GCC – An Introduction

C Compilers and GCC, Downloading and Installing GCC, Running and Testing GCC, Configuring the GCC Environment, GCC – The Swiss Army Knife., Assembly Language with GCC, Come to the Execution, Assembler Errors, Source Components, Exiting to RISC OS, Lack of _start., Linking Files, Tidying Up, A Simple C Framework

28 : C Library and Directives

Directives, Data Storage Directives, ALIGNing Data, Using C Functions in Assembler, Source File Structure, Using printf, Number Input with Scanf, Getting This Information, Function Standards, Register Use, More Than Three, Preserving Links and Flags

29 : C to Create Assembler

Getting the Assembly Language, Building Blocks, A printf Example, Frame Pointer Variables, In Summary

]]>
FREE PDF – BBC Micro Assembly Language http://www.brucesmith.info/free-pdf-bbc-micro-assembly-language/ Thu, 09 Jan 2014 23:16:21 +0000 http://www.brucesmith.info/?p=762 My first book, published in 1983, is available for download as a PDF file from Gumroad. BBC Micro ...Continue Reading]]> My first book, published in 1983, is available for download as a PDF file from Gumroad. BBC Micro Assembly Language was originally published by Shiva Publishing as part of their Friendly Micro Series. Running to 210 pages the book details how to program 6502 machine code on the BBC Micro using the inbuilt BBC BASIC Assembler.

This is the first in a number of ‘Retro Computing’ books that I will be releasing. These will include a mixture of PDF files and also eBook versions of publications.

It is provided free-of-charge and without warranty as part of my Retro Computing series of titles covering a number of the popular 1980s home computers.

For more information and a link to the book download page, click here.

]]>
FREE PDF – Total Amiga Workbench http://www.brucesmith.info/free-pdf-total-amiga-workbench/ Wed, 06 Sep 2000 03:29:38 +0000 http://www.brucesmith.info/?p=793 This popular Amiga book is available for  download as a PDF file. Total Amiga Workbench is the complete ...Continue Reading]]> This popular Amiga book is available for  download as a PDF file. Total Amiga Workbench is the complete beginners guide to learning and using Workbench 3 on the Amiga. It was published by Bruce Smith Books in 1995 and was part of the total! series, one of three series of books covering all aspects of using the Amiga computer. At 414 pages it is a very detailed book and covers just about every aspect of the Amiga desktop environment.

This PDF is provided free-of-charge and without warranty as part of my Retro Computing series of titles covering a number of the popular 1980s home computer.

For more information and a link to the book download page, click here.

]]>
FREE PDF – Interfacing Projects for the BBC Micro http://www.brucesmith.info/free-pdf-interfacing-projects-for-the-bbc-micro/ Tue, 05 Sep 2000 10:22:34 +0000 http://www.brucesmith.info/?p=778 My second book, published in tandem with BBC Micro Assembly Language (although with different publishers), is available for ...Continue Reading]]> My second book, published in tandem with BBC Micro Assembly Language (although with different publishers), is available for download as a PDF file.  Interfacing Projects for the BBC Micro was published by Addison Wesley and was the first book that showed how to construct projects to connect and control using a popular microcomputer.

At 134 pages it was a relatively thin tome but that hid the huge amount of work and effort that went into it. Some of the projects were quite exciting for the time it was written – using my friends drawing board as an X-Y Plotter was by far my favorite.

This is the second in a number of ‘Retro Computing’ books that I will be releasing. These will include a mixture of PDF files and also eBook versions of publications with associated program listings.

For more information and a link to download the book, click here

]]>
FREE PDF – The BBC Micro ROM Book http://www.brucesmith.info/free-pdf-the-bbc-micro-rom-book/ Mon, 04 Sep 2000 09:33:19 +0000 http://www.brucesmith.info/?p=799 This book was published by Collins Publishing in 1985 and looked at the unique structure of the BBC ...Continue Reading]]> This book was published by Collins Publishing in 1985 and looked at the unique structure of the BBC Micro sideways system. It shows how the ROM Paging System was implemented and looked at various third party ROMs available at the time.  It showed, with examples, how Sideways ROMs were implemented to provide extra functionality and command sets.

It is provided free-of-charge and without warranty as part of my Retro Computing series of titles covering a number of the popular 1980s home computers.

For more information and a link to the download page for the book, click here.

]]>