- 2068 Code Bytes #2 - Second installment in a series on interrupt-driven Z80 machine language programming for the Timex/Sinclair 2068. Covers a BLINK routine that alternates two User Defined Graphics characters on screen using variables for timing, position, and attributes, followed by three sound-effects routines: a border-toggle BEEP, a gun/bomb effect, and a whistle-and-bang bomb effect. Full machine code listings
- 2068 Code Bytes #4 - Fourth installment in Lloyd Dreger’s Z80 machine language series for the Timex/Sinclair 2068, presenting the general menu system used in his CONQUEST wargame. Covers the SetTV and GetTV screen-switching routines, PrintMENU for rendering menu text to screen, MoveCURsor for arrow-key cursor movement, and GETINFut for accepting both keyboard and joystick input. Full assembly listings with
- 2068 Code Bytes #5 - Fifth installment of the Z80 machine language series, presenting the world-map printing routine for CONQUEST. Covers FMO (find map start based on player position), PMAP (print map to screen), WRAP (horizontal and vertical wrapping logic for a 64×64 toroidal map), FINDAT (attribute address calculation), and PRUDG (print User Defined Graphic characters for map symbols). Full
- 2068 Code Bytes #6 - Sixth installment of the Z80 series, providing corrections to the issue #5 map routine plus the FINDAT color-attribute routine that assigns display colors to map units and cities for three players, a PAPER routine for background attribute setting, and the PRUDG UDG printer used throughout the CONQUEST map display system. Full assembly listings with addresses
- 2068 Code Bytes #7 - Seventh installment of the Z80 series, presenting the map-cursor and map-editor routine for CONQUEST. Covers PRCURS and PRCUR (cursor initialization and main loop), PIXLOC (screen address from XY coordinates), ATTR (attribute address calculation), PRCHA (print character), INTJOY (joystick-to-cursor translation), TRANS (cursor-to-map coordinate conversion), PUTX (place map element), DOIT (dispatch table using JP(HL)), and four scroll
- 2068 Machine Code in a DATA Statement - Program allows you to place machine code located anywhere in memory into a DATA statement in line 1 of your BASIC program.
- 2068 Notes: A Tutorial on Machine Code Programming -
- 2068 Notes: A Tutorial on Machine Code Programming -
- 2068 Notes: A Tutorial on Machine Code Programming -
- 2068 Notes: A Tutorial on Machine Code Programming, Part 5 - Sometimes it’s useful to be able to print a character sideways.
- 2068 Notes: A Tutorial on Machine Code Programming, Part 6 - Tutorial on relative jumps.
- 2068 Notes: A Tutorial on Machine Code Programming, Part 9 -
- 2068 Notes: A Tutorial on Machine Code Programming, Parts 3 & 4 - Programs to help peek and poke code.
- 2068 Peculiarities - I discovered something very peculiar about the 2068 when I tried to put some machine code into the area of memory normally occupied by the RAM-resident code “function dispatcher”. It seems as if machine code routines in this area (6200 hex or greater) run more slowly than identical rountines elsewhere in memory. To see this
- 2068 Print Command Compiler - Program that compiles PRINT statements into machine language equivalent that uses the ROM's PRINT routine.
- 2068 Window - Machine language screen utility to support replacing and restoring a section of the display with another, pre-defined section.
- 2068: Langage Machine - We will undertake a series on machine language programming on the 2068. These articles will be published with the idea that the reader already possesses some basic knowledge of Z80 programming.
- 2068: Langage Machine (2) - In this article, we will examine how we can exploit the sound capabilities of the 2068 via machine language.
- 40 Best Machine Code Routines for the ZX Spectrum -
- 64 Column BASIC - Short machine language program to allow using 64 column mode with BASIC programs.
- A 2068 Printer Driver - In reply to the request from Mr. George Cary in the May/June SyncWare News for a big printer driver for the Spectrum mode 2068, the accompanying machine-code program is submitted.
- A Cozy Nook for Machine Code in the TS2068 - Identifies a 323-byte area starting at address 25365 (in single-display mode) used for bank switching that can safely store machine code when bank switching is not in use. The author tested loading zeros and machine code there without difficulty to normal TS2068 operation. Also notes unused fixed addresses in the system variable area at 23681.
- A Fast Well-Behaved Pattern Flood Fill - Tutorial on the display file and a machine code flood fill routine.
- A Right-to-Left Pixel-by-Pixel Screen Scroll - The following machine code program can be located anywhere you wish. It is very easy to double a number that is given in binary, just as it is very easy to multiply a number by 10 if it is given in decimal — in each case, you Just add a 0 on the right.
- A Right-to-Left Pixel-by-Pixel Screen Scroll - Machine code program to scroll pixels on the screen.
- A Save Nothing File - Save a blank “CODE” file that can later be used to clear a machine code program.
- Accessing LKDOS from Machine Code - The DOS is easy to access from machine code using the internal jump table starting at address 120 in the cartridge. The jump table is a list of 20 or so entry points to the most often used sub-routines in the dos.
- Assembly Language and Hardware Notes - Commentary on machine code and assembly language articles in Vancouver TSUG newsletter: V. Lee’s ongoing TS2068 assembly language series, and Wilf Rigter’s techniques for speeding up the ZX-81/TS1000 by modifying display routines—achieving greater gains than the roughly 15% boost from a 4MHz clock speed increase. Also discusses hardware modification trends across newsletters (shift toward QL
- Automating the Data Line - BASIC program that moves machine language program to DATA statements.
- Bank Switching the 2068 - TS2192 COMPUTER The 2068 was introduced to us as a memory manager, capable of handling up to 256 banks of 64K memories, a veritable elephant among small plastic boxes. Close inspection revealed that an item called a BEU (meaning either Bus Expansion Unit or “hello” in Elephant) was necessary to access most of the extra
- Basil's Compendium: "Painless" MC Development - This chapter will give you a look into “real life”, and will show you how to make a “rough draft” of your programs in BASIC. I always find it easier to debug my programs in BASIC before actually translating them into machine eode, as the results of an error are much less drastic in BASIC.
- Basil's Compendium: TS1000 and TS 2068 - That’s right–Basil’s Compendium is going to add the TS2068 to its repertoire. But you ZX81/TS1000 enthusiasts need not lose heart. The two computers use the same microprocessor, the Z80, and are really not awfully different from each other. Sort of like brothers born a year or two apart.
- Beginning Z80 Machine Code, Lesson 1 - First in a series of articles about programming Z80 machine code on the 1000 and 2068.
- Beginning Z80 Machine Code, Lesson 10 -
- Beginning Z80 Machine Code, Lesson 2 -
- Beginning Z80 Machine Code, Lesson 3 -
- Beginning Z80 Machine Code, Lesson 4 - Math on the Z80 with addition and subtraction functions.
- Beginning Z80 Machine Code, Lesson 5 -
- Beginning Z80 Machine Code, Lesson 6 - Lesson focuses on the stack and instructions that use the stack.
- Beginning Z80 Machine Code, Lesson 7 - One of the series of introductory machine code programming articles.
- Beginning Z80 Machine Code, Lesson 8 - Unusual Z80 instructions that don’t have a common theme or set.
- Beginning Z80 Machine Code: Final Lesson -
- Big Printer Banner Program - A BASIC plus machine language program for the Timex/Sinclair 2068 that prints large banner-style text using the Tasman printer interface. Includes DATA statements for the machine code routine embedded in the BASIC listing.
- Bob's Notebook: Digital Clock for the TS 2068 - This bit of code will provide a digital 24-hour clock which can be used in various applications. It uses the Z80’s Interrupt Mode 2 to allow the clock to appear, via multitasking, while another program is operating. The clock will show hours, minutes and seconds in the upper right corner of the screen. An experienced
- Bob's Notebook: Toolkit, Part 1 Renumber Functions - First of a series of tutorials about TOOLKIT options for the TS2068. TOOLKIT was adapted from a program by David Spagnol for the Spectrum. It originally appeared in the Your Computer, May 1985 on page 91. This article covers Move Lines, Renumber and Copy Lines. Bob adapted it to the TS2068, redesigning the interrupt mode
- Bob's Notebook: TS2068 Interrupts - Introduction to interrupts and an auto line number utility as a demonstration.
- Breaking and Saving Programs on the TS2068 - Step-by-step instructions for breaking auto-running machine code programs to save them separately to tape or disk. Load the program with the MC (machine code only) command; PEEK the start address from RAND USR and calculate length (65535 minus start); SAVE the machine code with SAVE “NC” CODE start,length, the BASIC loader as SAVE “BASIC”, and
- BufPrint - Machine code program to print MTERM buffers.
- Character Set Rotation - This machine code routine allows you to rotate the character set in any of four directions, with or without mirror imaging it.
- CLASSY Part Four - The concluding installment of a series on a custom font-printing machine-code routine for the TS2068, providing code for lines 100-220 and demonstrating keywords including AT, OR, TO, and NOT. Describes a user-definable jump table for STEP, AND, THEN, and STOP. Readers will need earlier installments to assemble the complete routine.
- Cryptograms on the Computer - Let me start out by saying what this program does NOT do. In spite of the title, it does not solve cryptograms, I enjoy working those little fellows far too much to surrender the fun to a computer. This program is designed, rather, to do the clerical jobs for me, while I save the creative
- Dec-Hex-Binary Lookup Table Program - A BASIC program for the TS-2068 that generates a printed Dec-Hex-Binary lookup table using the LPRINT command. Designed as a reference aid when writing assembly code; especially useful for visualizing bit patterns for logic commands and bit manipulation.
- Digitize Sound from Tape - Short machine language program to demonstrate sampling audio from the tape input jack.
- Entering and Recalling Text in Machine Code -
- Entering and Recalling Text in Machine Code - Tutorial and code for storing text in machine code.
- Entering and Recalling Text in Machine Code -
- Fade Away - Machine code screen-saver type-in program originally published in the April issue of Your Sinclair. After a user-set delay of 1 second to 20 minutes the display blacks out to prevent TV screen burn-in; pressing any key restores the image. Includes machine code DATA statements and instructions for setting delay time.
- Fast Banners - TS2068 BASIC program reproducing the banner-printing section of Bob Orrfelt’s WP32 word processor, adapted for compilation with TimeMachine for much faster execution. Generates large horizontal banners in 1-inch or 2.5-inch letter sizes using LPRINT to the TS2040 printer. The listing handles user input for banner text, character bitmap extraction, and formatted output with proper acknowledgment
- For Fun: Life in Machine Code -
- Graphic Pointer - Use this machine code routine to quickly specify the PLOT position on the 2068 screen.
- HOT Z-2068 - Once again, Ray Kingsley has brought out one of the most powerful machine-code monitors I have ever seen. Everyone planning to write machine code routines on the 2068 owes it to himself to buy a copy of this package. This latest version of HOT Z includes disassembly and data displays, ROM floating-point code display, four
- In Sync: Exploring 2068 Video Modes - One of the reasons I bought a 2068 was to use the advanced video modes described in appendix C of the BASIC manual. I was disappointed when I found it impossible to access these modes using only BASIC. After learning machine code, I was able to use the Dual Screen Mode in my BASIC programs.
- Initiation Au Machine Language - Introduction to machine language.
- Instant Sorting - Explanation of Shell-Faulk sorting algorithm and implementation in BASIC and machine language.
- Introduction to 2068 Machine Code - The book (Introduction to 2068 Machine Code Programming) comes in a paper backed loose leaf binder and has easy to read type. There were some typing errors in the first printing issue that I received that will probably be corrected in later printings. If you have just started learning machine code or would like to
- Inverting Screen Display — Corrections - Three hex corrections to the TS2068 screen-inverting routine published in a previous issue. Address 16822 should contain 06; 16835 should contain 82; 16842 should contain C9. Brief erratum with no surrounding explanation.
- Langage Machine: Graphisme sur 2068 - In this article, we will discover how to exploit the graphical capabilities of the 2068 via machine language, mostly using ROM routines.
- Language Machine Initiation - Introduction to machine language.
- LDIR Demonstration Program - I’m enclosing an article I wrote for S.U.N. last year which never got published. Feel free to doctor it or use it in any way you like. As we have all heard many times, machine language is good for doing things much much faster than BASIC. If any of you have wondered just what real
- LKDOS Machine Language CALLs Explained -
- Location for Machine Code - When you turn on your TS2068 computer, POKE 23730, 255 and ENTER. Then press NEW and ENTER. This will put RAMTOP at address 65535 which is as high as possible.
- Looping in Machine Code - Suggestions looping and operating on data in the loop.
- Machine Code Corner -
- Machine Code Demo for the 2068 -
- Machine Code Graphics Loop - Thoughts on programming graphics with machine code.
- Machine Code Joystick Routine - Short program to accurately read the joystick.
- Machine Code Lecture Notes, Part Two: Eight Bit Manipulation -
- Machine Code Loader - Programs for typing in machine code.
- Machine code refreshes parts Basic cannot reach -
- Machine Code Topics: 2068 BASIC ROM Calls - This is the first of an occasional and indefinite series on machine-code programming for the 2068. I do not intend to take you through the rudiments of Z80 instructions, nor even the discovery and invention of the poked REM statement, but if you know how to do it even a little bit, then maybe I
- Machine Code Trace -
- Machine Code Track Reader - Program to read disk tracks on the Zebra/Timex FDD system.
- Machine Code Tutor: A Comprehensive Review - Review of the tape/booklet lesson program available from Knighted Computers.
- Machine Language Program to Read T/S 2068 Tape Headers -
- Macro Makes Notes Book - Programmable function keys utility for the TS2068 using Interrupt Mode 2, allowing macro key sequences to be triggered from within any program. Originally written for the ZX Spectrum and adapted for the TS2068. Includes full machine code DATA listing.
- Making Code Relocatable -
- MEMSCAN - A short machine code routine for the TS-2068 that displays a memory map of the computer by scanning every other address and plotting a dot if non-zero content is found. Relocatable; called with RANDOMIZE USR n. Also includes POKE modifications for Spectrum compatibility and for scanning every byte rather than every other.
- Mike's Notebook: BITS - Knowing the bit patterns of a specific byte can also help to better understand machine code among the many other uses. The following BASIC program will print out all 256 bit patterns, their hexadecimal and decimal equivalent.
- Mike's Notebook: MKDATA - Program to convert data in memory (machine code, fonts, etc) into a series of DATA statements.
- Mike's Notebook: PARSE64 - The following bit of machine code will allow you to print any text string using a clean, fast 64 column character set. What distinguishes this program from similar ones is that instead of requiring 768 bytes to define the characters (96 characters X 8 bytes per character), this program uses half the usual number of
- Multi-Tasking on the Timex-2068 Using Z80 Interrupt Mode 2 - In-depth technical article on implementing Z80 interrupt mode 2 on the TS-2068 for multi-tasking. Explains the 257-byte interrupt table, vector table, and service routine structure. Author used the technique in his machine code word processor to run a print spooler, input buffer, clock/calendar display, and clock display simultaneously. Includes assembly code listing.
- Navigating Through the Display File Jungle -
- Navigating Through the Display File Jungle - Those who’ve manipulated the nice orderly display file on the ZX-81/TS-1000 have been somewhat perplexed by the T/S 2068. Yes, the illustration on page 251 of the user’s manual that comes with the T/S 2068 does explain it. Still, most everyone reacts with the question, “Why?” This configuration was made to dovetail with the Z80
- Peeking and Poking About - One of the fun things about using the TS2068 is the ability to PEEK and POKE in amongst the machine code and particularly when using TIMACHINE. This is the first in a series of articles I’ll write for TS2068 Up-Date on this subject. Bouquets or brick-bats are welcome! For starters, let’s look at a scenario
- PLOT, CLS and SCROLL on the TS2068 - How to use access the machine code versions of these routines.
- Printer On/Off Detection Programs - Two short TS2068 BASIC programs using machine code REM statements and USR calls to detect whether the TS2040 printer is currently on or off, printing a corresponding status message. Program 1 uses POKE 26516,73 and tests USR 16514 against 16383; Program 2 (with FLASH) uses a similar approach with CLS reset. Practical safety check before
- Printers and Printer Control - The genesis of this work-up goes back to my early work with the Sinclair ZX-81, a computer designed “not to print”. Soon after the ZX-81 reached the “million mark”, cottage industry developed machine code “Printer Drivers”. From then until today, our Sinclair computer fans have not had a minimum diet of “How To Control Printers”.
- Printing Sideways with the 2068 - Here is a helpful article written for you by Dick. In it he makes use of the techniques that he talked about in the Machine Code Tutorial. This is where we can actually “do something” with what we have been learning in the Tutorials. You might also want to identify the different parts of the
- Published Program Survey of Newsletters - A digest of notable programs published in other Timex/Sinclair user group newsletters: Vancouver TSUG December 1989 (Dominoes for ZX-81, BASIC line trace, Vector Screen Calculator), Sineus November-December 1989 (octal/decimal converter in machine code), Boston Computer Society September-October 1989 (TS2068 machine code screen utilities including screen-flip, scroll, and attribute-invert routines), Harrisburg TSUG September 1989 (USA Medicare
- Relocate - Relocates a machine code program to new location in RAM.
- Relocating Machine Code Programs - TS-2068 -
- Relocating Machine Code Programs in the TS-2068 -
- Relocating Machine Code Programs in the TS2068 -
- Saving a Headerless File Using a Machine Code Routine - Short code and technique for saving headerless files.
- Screen Reader - Fast and versatile machine code subroutine that reads a character off the screen from any print location.
- Send a 2068 Message - Describes how to use ROM calls and machine language to print built-in error messages.
- Some More Little Goodies for 2068 (Edition 4) - Fourth installment of a recurring collection of short programs, POKE tricks, and machine code snippets for the TS-2068. Includes: printer on/off check; absolute line drawing PLOT/DRAW idiom; SCREENSAVE machine code routine; line edit at top of screen POKE; free memory in Spectrum mode; screen invert loop; COPY all 24 lines to printer; border color from
- Spectrum Machine Code on 2068 - Some Spectrum MC tapes will run on your 2068, The Fruit Machine, for example. Your chances are better if the program is written for 48K. Programs that call keyboard scan routines—as IN 64510, 61438, 32766, or 65278—will run if you change these to INKEY$ or STICK commands on your 2068. Also programs written with MC
- Spectrum MC on 2068 - The Ocean State Users Group reports that they successfully entered and used Spectrum machine code programs from the UK magazine Your Computer.
- Star Tip - Assembly language routine to read the keyboard.
- The Flags Register - Part 3 of series on machine code programming.
- Timex Tips - Here is something that puzzles me. I understand most of the terms in machine code, but what does SET do? When would we use it? Each location in memory can hold a number from 0 to 255. When we PEEK a location, the computer gives us the number stored in that location. What is really
- To Change Screen Attributes Without Affecting Display - Routine to change an entire screen’s attributes without disturbing the display.
- Transferring Machine Code from a TS1000/ZX81 REM Statement to the TS2068 Using Upload 2000 or Firstloader - How to use either program to transfer the program without the program interpreting the machine code as BASIC tokens.
- TS-2068 Data Input - a utility for: data base generation, keyboard reading, character concatenation, screen display, full editing - This is an audacious attack upon the most famous weaknesses of the TS-2068, slow data input and poor screen editing. The result is a INPUT SECTION of programming that can be used for many purposes. Programmers have overcome the problems mentioned by developing their own independently running Machine Code in RAM.
- TS2068 Machine Code Helpers - Two programs to help with machine code programming.
- TS2068 Modem Port 119 Tips - Short technical note from CompuServe describing machine code OUT commands for TS2068 port 119 used for pulse dialing. Explains how the TS2050 modem dials each digit using two OUT 119 pulses and a short delay, with loops for multi-digit numbers. Asks about port 115 for incoming carrier detection.
- Ultra Hi-Res Graphics on the Timex 2068 - Machine code toolkit for accessing the 2068’s extra video modes.
- Undocumented Z-80 Instructions - Explains that the Z80 processor supports undocumented 8-bit operations on the IX and IY index registers using the DD and FD prefix bytes. Any standard H or L register instruction preceded by DDh operates on the high/low bytes of IX (XH, XL), and FDh for IY (YH, YL), providing 4 additional 8-bit registers. Lists usable
- Using a Large Printer with the TS2050 Modem and Aerco Interface - Technique from the T/S Users Group of Cincinnati for redirecting the TS2050 modem’s built-in screen-copy routine (normally calling addresses 54025-54026 for the Timex printer) to instead call the Aerco Interface’s printer driver at address 64628. Requires specific POKEs (54206,252; 64263,0; 64264,0; 64265,0), reloading just the BASIC modem loader while stopping the tape early, entering CLEAR
- Using BASIC String/Arrays in Machine Code Programs - Program to transfer the location of a specific variable to a machine code program.
- Z80 Extra Op Codes - Op codes for machine language programmers. Reprinted from T-S Horizons n12.
Machine Language Programming on the Timex/Sinclair 2068
Here's a concise list of articles about machine language programming on the TS 2068.
People
No people associated with this content.