National Certificate in Industrial Computing 2
Computer Interfacing and Control

Dates of Class Tests:

Archive of Teaching Summary for last academic session. 

Assignments:

Report: Personal computing past present and future
Assembly Language programming assignments

Practical Assessments:

DOS and Windows, Term 1
Using the Assembler, Term 1 Weeks 10,11,12
Using plcs, Term 2


Mnemonic Summary of Work covered/to be covered and other notes:

Week 1 (Monday 16th September 2002)

Wednesday 11.15

Revision examples in programming, physics and computer science. Class undertook the work and it was handed in. 

Wednesday 1.15

Answers to some of the problems, in particular the programming ones and the electric circuit ones. 

Wednesday 4.15

Practical class

Friday 10.15

Number systems:  decimal, binary, octal and hex, the reason for the use of hex and octal.  Discussion of what k, M and G means in physics/engineering and what they mean in computing.  Discussion of the sizes of computer memories at various times in history. 

Week 2 (Monday 23rd September 2002)

Wednesday 11.15 & 1.15

Typical PC specs at various times in their history.  Motorola and Intel.  General purpose mp-based systems.  Dedicated mp-based systems, i.e. embedded computers.  Nature of assembly language/low level language compared to high level language.  Compilation and assembly compared.  Definition of machine language.  Relationship between address bit length and the number of locations that can be addressed.  16 bits allows 65,536 locations to be addressed.  How many locations can be addressed by 32 bits? Introduction to comparison between HLL and LLL. 

Wednesday 4.15

Practical class

Friday 10.15

Distrubution of 68000 assembler discs.  Review of the history of Windows and DOS.  The Onion Model, consisting of Hardware, BIOS, DOS/Windows, Applications. 

Week 3 (Monday 30th September 2002)

Wednesday 11.15 and 1.15

Comparing and Contrasting command line and gui operating systems.  Review of DOS and of the the Teeside 68000 system commands. 

Friday 10.15

Revision of the last three weeks' work:

Binary to hex, hex to binary, purpose of hex, adding hex, 1K = 1024, 1M, IG.  If n bit address in a microprocessor, how much memory can be addressed?  In other words, how many combinations are there of n bits?  (Ans 2n)   Adv and disadv of assembly languages programming.  Translation of HLL/AL to ML.  AL for one processor different from AL for another. Same C++/Pascal etc though since compilers takes care of processor differences.  Intel/Motorola.  Onion diag of computer hardware/software.  History of DOS/WIN, Command line vs GUI.  History of PC.  Loaf analogy for HLL/AL.  Teeside system:  he, bf, go, md, df. 

Week 4 (Monday 7th October 2002)

Wednesday 11.15 and 1.15

Assembly language program to add together two words held in memory and store the result back into memory.  Testing the system using the Teeside system.  Explanation of the mechanics of the instructions move.b $40,d0; move.w $40,d0; move.l $40,d0.  The two main differences between Motorola and Intel processors.  Mnemonic for remembering x68k, s68k and e68k.  Simplified Model of a microprocessor-based system, including the three buses, ROM, RAM, parallel port chip and serial port chip.  Model of the microprocessor with its eight 32 bit data registers, d0 to d7, eight 32 bit address registers a0 to a7, IR, ALU and PC. 

Friday 10.15

Revision Programmer's model of 68000 and of mp based system.    Revision of the mechanics of the instructions move.b $40,d0; move.w $40,d0; move.l $40,d0. Concept of pointers.   Purpose of Program Counter and its being updated by 2 or 3 after each instruction has been fetched.  Introduction to the org statement.  Revision of address sizes, 16 bits and 32 bits.  Typical PC Memory today is about 4000 times larger than in 1985. 

Week 5 (Monday 14th October 2002)

Wednesday 11.15 and 1.15

ALU, PC and IR.  Revision of the concept of pointing.  Fetch execute-cycle and notes about it.  Use of labels to designate variables.  The EQU statement.  Discussion of three different ways of doing result = value1 + value2.  Trying them out on the computer as exercises to see which work and which don't. 

Second 68000 Example, result = value1 + value2; using indexed addressing.  No notes yet written

Friday 10.15

Review of what's required for the practical tests.  Discussion of the concept of the symbol table. 

Week 6 (Monday 21st October 2002)

Wednesday 11.15

Test

Wednesday 1.15

Cancelled due to meeting.

Friday 10.15

Concept of the symbol table, as a data structure maintained by the assembler during the process of assembly, to map labels to numerical values.  How equ and ds statements contribute to the symbol table.  Obviously the programmer's use of labels and the consequent need for the assembler to maintain a symbol table is NOT  reflected in the final assembled machine code.  Consolidation of the adding two numbers together using indexed addressing.  Discussion of the fact that the post-increment operator is intelligent in that it adds on an amount equal to the data size of the operands:  1 for .b, 2 for .w and 4 for .l

Week 7 (Monday 4th November 2002)

Wednesday 11.15/1.15

Talk about teaching and learning methods.  Review of exam paper.  Starting on array processing example, brief discussion of the bne instruction. 

Friday 1015

Continuation of array processing program to zeroise several elements of an array. 

Week 8 (Monday 11th November 2002)

Wednesday 11.15

Examination

Wednesday 1.15

The array zeroising program again.  Condition code register and the zero (Z) and carry flags (C).  The fact that the C flag also serves as a borrow flag.  Examples of which instructions affect which flags. 

Friday 10.15

Revision of flags via SAQs.  Handout on maximum number in a list program and started going over it.  Explanation of ( ) in the English language description of the test data.  A reminder that this program is an intermediate slice in the loaf that would be the entire software system, of which it's a part.  Discussed the beq.s instruction and the fact that its early appearance indicates that this program uses a while loop rather than a do loop, in other words the innards of the loop must be gone through at least once. 

Week 9 (Monday 18th November 2002)

Wednesday 11.15/1.15

Detailed notes on the finding max no in a list program.  Discussion of how to construct control structures, using only conditional and unconditional branching.  Revision of flow charts, first taught in first year SA & D. 

Friday 10.15

Discussion of bpl and how it can be used to test bit 7.  Handshaking signals, in particular status and control.  Principles of design of a keyboard driver.  To be consolidated next week. 

Week 10 (Monday 25th November 2002)

Wednesday 11.15/1.15

Decoders, including how to make 3 to 8 from two of 2 to 4; address decoding of an eight bit address bus to 1 of 128, 1 of 64 and 16 of 4 byte chips. 

Wednesday 4.15

Demo of plcs

Friday 10.15

Introduction to plcs, their history and how they replace hard-wired electronic control in many industries. 

 

Week 11 (Monday 2nd December 2002)

Wednesday 11.15/1.15

PIA

Friday 10.15

Program to read a byte from memory and send it out through a PIA.  Program to read a byte from a PIA and write it to memory. 

 

Week 12 (Monday 6th January 2003)

Wednesday 11.15/1.15

Revision of last term's work on plcs.  Notes taken then were read out in class.  The six introductory examples and how each plc problem should be documented with (i) circuit diag (ii) logic diag (iii) logic equation (iv) program in ladder form (iii) program in list form.  BSI vs ANSI symbols for logic gates.  Introduction to the paint mixing system.

Friday 10.15

Continuation with the paint mixing system. 

Week 13 (Monday 13th January 2003)

Wednesday 11.15/1.15

Completion of plc work and discussion of ALD and OLD instructions together with pushing and popping in regad to the stack. 

Friday 10.15

Completion of discussion of Christmas Exam paper (1 student in attendance)

Week 14 (Monday 20th January 2003)

Wednesday 11.15

Interfacing a printer to a PIA; description of the timing diagram etc.

Wednesday 1.15

Written Examination

Friday 10.15

Interfacing a printer to a PIA; revision of the timing diagram; discussion of the software involved. 

Week 15 (Monday 27th January 2003)

Wednesday 11.15 & 1.15

Interfacing a keyboard to a PIA; description of the timing diagram etc.

Friday 10.15

Looking at the instruction set sheets.  Discussion of work done on plcs yesterday.  Introduction to MDS. 

Week 16 (Monday 3rd February 2003)

Wednesday 11.15 & 1.15

Notes on MDS.  Bit manipulation program involving btst, bset and bclr and a program to switch a light on and off. 

Wednesday 4.15

HTML example developed as a demonstration

Friday 10.15

Consideration of the Systems programming pages on Handout Bundle 2. 

Week 17 (Monday 10th February 2003)

Wednesday 11.15 & 1.15

Discussion of cgi programming in Perl. 

Wednesday 4.15

Discussion of cgi programming in Perl. 

Friday 10.15

Class cancelled by agreement.   

Week 18 (Monday 17th February 2003)

Wednesday 11.15 & 1.15

Writing notes and diagrams on browsers and servers in (i) developmental (ii) production modes. 

Wednesday 4.15

Client side VBScript and JavaScript examples. 

Friday 10.15

Reading listings of VBScript and JavaScript.  More about browsers and servers including the names of some; to be consolidated next Wednesday.    

Week 19 (Monday 24th February 2003)

Wednesday 11.15

Consolidation of web development and client server material. 

Wednesday 1.15

Test 

Wednesday 4.15

Demonstration of the design of interactive web sites. 

Friday 10.15

Revision of web development material and discussion of Java in its semi-compiled state as Universal Byte Code.  A model examination answer was used to cover this material. 

Week 20 (Monday 3rd March 2003)

Wednesday 11.15

Consolidation of web development and client server material, through KT's notes and a discussion on the Java language and the concept of virtual microprocessor and semi-compilation to byte code.  Discussion of essay in computing, past, present and future.

Wednesday 1.15

Start of a topic called Software and Hardware trade-off. 

Wednesday 4.15

Practical Work

Friday 10.15

Software/hardware trade-off:  BCD to 7 segment.  Burglar/Fire Alarm System, PIA addressing, Switch debouncing.  Still to be done.  Use of software to provide virtual transducer linearisation. 

Week 21 (Monday 10th March 2003)

Wednesday 11.15 and 1.15

Discussion of transducer linearisation whether by software or by hardware.  Exercises on internal and external address decoding, including within PIAs.  Discussion of different types of ROM;  PROM, EPROM, EEPROM.  Handout given out on using PROM for address decoding.  Not yet discussed. 

Wednesday 4.15

Looking at plc traffic light control system. 

Friday 10.15

PROM used in address decoding. Started discussion of interrupts an polling in relation to the 6800. 

Week 22 (Monday 24th March 2003)

Wednesday 11.15 and 1.15

Interrupts and polling, DBXX instructions; plc heating system.

Friday 10.15

Developing structured programs in 68000, including an ANDed condition; handout.  High level and low level languages and the position of C/C++ in that spectrum. 

Week 23 (Monday 31st March 2003)

Wednesday 11.15 and 1.15

Internal relays, on-delay timers, off-delay timers - 2 page handout.  Handout of elementary 68000 program notes.  Discussion of handshaking and synchronous/asynchronous transmission.  chmod instruction.  Assembler directives/pseudo-ops. 

Friday 10.15

Bitwise operations:  BTST, BSET, BCLR, AND, OR.

Week 24 (Monday 7th April 2003)

Wednesday 11.15 and 1.15

tba

Friday 10.15

tba