mon-v30.asm Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 1

Similar documents
CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1

CIS-331 Fall 2013 Exam 1 Name: Total of 120 Points Version 1

CIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1

CIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1

4. Specifications and Additional Information

CIS-331 Final Exam Spring 2015 Total of 115 Points. Version 1

CIS-331 Final Exam Spring 2018 Total of 120 Points. Version 1

C1098 JPEG Module User Manual

Programming Book for 6809 Microprocessor Kit

CMSC 313 Lecture 03 Multiple-byte data big-endian vs little-endian sign extension Multiplication and division Floating point formats Character Codes

Gateway Ascii Command Protocol

ZN-DN312XE-M Quick User Guide

ECHO Process Instrumentation, Inc. Modbus RS485 Module. Operating Instructions. Version 1.0 June 2010

; Once Initialized, monitor character in calls to CN05 ; set carry for input, to be tested CN35 C SEC

6.1 Combinational Circuits. George Boole ( ) Claude Shannon ( )

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 02, FALL 2012

COSC 243. Instruction Sets And Addressing Modes. Lecture 7&8 Instruction Sets and Addressing Modes. COSC 243 (Computer Architecture)

MC68705P3 Bootstrap ROM

RS 232 PINOUTS. 1. We use RJ12 for all of our RS232 interfaces (Link-2-Modbus & Link-2-PC- Serial/RS232). The diagram below shows our pin out.

SN8F5000 Family Instruction Set

APPLESHARE PC UPDATE INTERNATIONAL SUPPORT IN APPLESHARE PC

The cache is 4-way set associative, with 4-byte blocks, and 16 total lines

First Data EMV Test Card Set. Version 1.30

NAM M6800 DISK-BUG DS VER 3.5 OPT PAG

First Data EMV Test Card Set. Version 2.00

Acquirer JCB EMV Test Card Set

First Data Dual Interface EMV Test Card Set. Version 1.20

instruction 1 Fri Oct 13 13:05:

The 6502 Instruction Set

ECE3120: Computer Systems Hardware & Software Development Tools

UNH-IOL MIPI Alliance Test Program

July Registration of a Cyrillic Character Set. Status of this Memo

Programming Book Microcontroller Kit. Rev 3.0 January, Wichit Sirichote

Example Programs for 6502 Microprocessor Kit

First Data DCC Test Card Set. Version 1.30

CIS-331 Final Exam Spring 2016 Total of 120 Points. Version 1

MIDI-Scope. Artistic Licence Engineering Ltd. Software Version V1.3 Manual Revision V1.91

BINARY LOAD AND PUNCH

ASCII Code - The extended ASCII table

8085 INSTRUCTION SET INSTRUCTION DETAILS


Digital Lighting Systems, Inc. CD400-DMX DMX512 Four Channel Dimmer and Switch module

CS 537: Introduction to Operating Systems Fall 2015: Midterm Exam #1

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 02, SPRING 2013

DBK24. Isolated Digital Output Chassis. Overview

CIS-331 Final Exam Fall 2015 Total of 120 Points. Version 1

LynX-10 Legacy Protocol Specification Version 1.01

Contents. Join the Technical Community Today!

B: Modbus Map and Retrieving Logs

KNX TinySerial 810. Communication Protocol. WEINZIERL ENGINEERING GmbH

Systems/DBG Debugger Version 2.20

Acquirer JCB Dual Interface EMV Test Card Set

INSTRUCTION SET OF 8085

6. Specifications & Additional Information

One subset of FEAL, called FEAL-NX, is N round FEAL using a 128-bit key without key parity.

Problem 3. (12 points):

Small Computer Monitor User Guide

Assembly Language Programming of 8085

Digital Lighting Systems, Inc.

Triple DES and AES 192/256 Implementation Notes

8051 Single Board Monitor Programming. Minmon - Yeralan & Ahluwalia. PaulMon1 & PaulMon2 - Paul Stoffregen

Microcontroller Intel [Instruction Set]

Small Computer Monitor User Guide

OOstaExcel.ir. J. Abbasi Syooki. HTML Number. Device Control 1 (oft. XON) Device Control 3 (oft. Negative Acknowledgement

TEST DVD-VIDEO/ DVD-ROM For Checking DVD Players, DVD Recorders and DVD Drives TDH-940

Communications guide. Line Distance Protection System * F1* GE Digital Energy. Title page

Assembly Language programming (1)

USB-ASC232. ASCII RS-232 Controlled USB Keyboard and Mouse Cable. User Manual

EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER

6.1 Font Types. Font Types

Practical Course File For

Chapter. Computer Architecture

Assembly Language Programming of 8085

Application Note. Interfacing the X9241 XDCPs to 8051 Microcontrollers AN20. by Applications Staff, June 2000

Hash Constant C Determinants leading to collisionfree

Fundamentals of Cryptography

Intel Architecture Segment:Offset Memory Addressing

460 Presentation Audio Mixer

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 02, FALL 2012

(2) Explain the addressing mode of OR What do you mean by addressing mode? Explain diff. addressing mode for 8085 with examples.

Interac USA Interoperability EMV Test Card Set

The Tic-Tac-Toe Game with the NST (Not-So-Tiny) CPU Introduction

CONTENTS. 1.0 Introduction Description of the Circuit Installation Connection of Power Supply 4

MC9S12 Assembler Directives A Summary of MC9S12 Instructions Disassembly of MC9S12 op codes. Summary of HCS12 addressing modes ADDRESSING MODES

A. CPU INSTRUCTION SET SUMMARY

Lecture 16: Passing Parameters on the Stack. Push Examples. Pop Examples. CALL and RET

Digital Projector X30N/X35N

8051 Overview and Instruction Set

CDR File Information. Comments Direct PCM

Digital Lighting Systems, Inc.

Programming of 8085 microprocessor and 8051 micro controller Study material

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

Chapter 3. Z80 Instructions & Assembly Language. Von Neumann Architecture. Memory. instructions. program. data

Microprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman

8051 Microcontroller Assembly Programming

VM7000A PAPERLESS RECORDER COMMUNICATION FUNCTION OPERATION MANUAL

10. RS-232C communication

AN1742. Programming the 68HC705J1A In-Circuit By Chris Falk CSG Product Engineering Austin, Texas. Introduction. Overview

Transcription:

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 1 0001 *********************************************************************** 0002 * * 0003 * Title: H J S 2 2 * 0004 * * 0005 * Description: * 0006 * This is the HJS22 monitor program. It only runs on the * 0007 * homebrew TTL CPU build by Henk Stegeman in 1976. * 0008 * * 0009 * This source can be assembled by a modified M6809 assembler. * 0010 * C:> as9 hjs22.as -l > hjs22.lst * 0011 * * 0012 * History: * 0013 * 14/04/2001 - Version 1.4 Set breakpoint logic added. * 0014 * * 0015 * 15/04/2001 - Version 1.4a Bug fixed in unable to set BP logic. * 0016 * * 0017 * 22/04/2001 - Version 1.5 User status added & more rel addressing * 0018 * * 0019 * 22/01/2007 - Version 1.5a More comments added. * 0020 * * 0021 * 12/12/2011 - version 2.0 Soft UART removed & ACIA support added. * 0022 * * 0023 * 14/12/2011 - version 3.0 Interrupt driven monitor program. * 0024 * 30/12/2011 - version 3.0a Left/right runnig light + upd comments * 0025 * * 0026 * Notes: * 0027 * - The auto-restart SW must be set to ON for breakpoint restart. * 0028 * - Object is not relocatable and runs in interrupt level 3. * 0029 * - See also boot22.asm which loads program from EPROM to RAM at * 0030 * location $0200. * 0031 * - boot22 starts at $8000. * 0032 * - The Tx/Rx speed of the ACIA is 9600 bps. * 0033 * * 0034 *********************************************************************** 0035 0036 * 0037 *** HJS22 equates. 0038 * 0039 0000 R0 equ 0 general registers. 0040 0001 R1 equ 1 0041 0002 R2 equ 2 0042 0003 R3 equ 3 0043 0004 R4 equ 4 0044 0005 R5 equ 5 0045 0006 R6 equ 6 0046 0007 R7 equ 7 0047 0008 R8 equ 8 0048 0009 R9 equ 9 0049 0050 000B A0 equ 11 address registers. 0051 000D A1 equ 13 0052 000F A2 equ 15 0053 0054 001B esc equ $1B Escape. 0055 000D cr equ $0D Carriage Return. 0056 000A lf equ $0A Line Feed. 0057 0000 null equ $00 Null. 0058 008F brkpoint equ $8F Breakpoint. (HLT with restart) 0059 0060 000C con equ $0C I/O addr console 0061 0062 0040 tr co equ $40 transfer command 0063 00C0 st co equ $C0 start I/O command 0064 0000 tr da equ $00 transfer data 0065 0080 st da equ $80 start I/O data 0066 0010 reset equ $10 reset I/O 0067

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 2 0068 * 0069 *** ISA save areas allocation. 0070 * 0071 0100 org $0100 0072 0100 save 0 equ * level 0 0073 0100 00 acc 0 dc.b $00 accumulator 0074 0101 00 stat 0 dc.b $00 status register 0075 0102 00 00 pchl 0 dc.d $0000 program counter 0076 0077 0130 org $0130 0078 0130 save C equ * level C 0079 0130 00 acc C dc.b $00 accumulator 0080 0131 0C stat C dc.b $0C status register 0081 0132 12 49 pchl c dc.d intlvl C program counter 0082

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 3 0084 1200 org $1200 start address 0085 * 0086 *** HJS22 Monitor program starts here... 0087 * 0088 1200 monitor equ * 0089 1200 EE 0C jmp *,eyecatch jump over 0090 1202 15 E1 dc.d txmit 0091 1204 16 04 dc.d recv 0092 1206 33 30 2F 31 32 2F dc.c '30/12/11' eye-catcher. 31 31 0093 0094 120E eyecatch equ * 0095 * Clean monitor start / restart if Acc=$00. 0096 120E E0 05 jiz *,monstart start monitor (POR)? 0097 * Breakpoint detected if Acc=$01. 0098 1210 24 01 cmp #$01 re-entry caused by breakpoint? 0099 1212 C2 15 15 jie brkdet jump if yes. 0100 0101 * Monitor start / restart. 0102 1215 monstart equ * 0103 * Initialize ACIA 0104 1215 8D 3C out #reset,#con reset console irq. 0105 1217 27 03 lda #$03 master reset ACIA 0106 1219 8D 6C out #tr co,#con * 0107 121B 8D EC out #st co,#con * 0108 0109 121D 27 31 lda #$31 8 bits, 2 stop, 9600 bps 0110 121F 8D 6C out #tr co,#con * 0111 1221 8D EC out #st co,#con * 0112 0113 1223 AA sti enable interrupts 0114 0115 1224 27 0A lda #lf this will start the 0116 1226 8D 6C out #tr co,#con monitor in level C. 0117 1228 8D EC out #st co,#con * 0118 0119 0120 * Do nothing 'usefull' in level 0. 0121 122A A8 sts 0122 122B A1 cla 0123 0124 122C A5 wt rrs rrs move light to the right 0125 122D A0 wt dly1 nop 0126 122E A0 nop 0127 122F A0 nop 0128 1230 A0 nop 0129 1231 A0 nop 0130 1232 A0 nop 0131 1233 89 08 F7 djnz %R8,wt dly1 delay loop 0132 1236 C9 12 2C jns wt rrs keep going to the right 0133 0134 1239 A3 wt rls rls move light to the left 0135 123A A0 wt dly2 nop 0136 123B A0 nop 0137 123C A0 nop 0138 123D A0 nop 0139 123E A0 nop 0140 123F A0 nop 0141 1240 89 08 F7 djnz %R8,wt dly2 delay loop 0142 1243 C9 12 39 jns wt rls keep going to the left 0143 1246 CE 12 2C jmp wt rrs keep looping in level 0 0144 0145 * 0146 *** This code will run in interrupt level C. 0147 * 0148 0149 1249 intlvl C equ *

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 4 0150 * inp #tr da,#con this will reset the irq in 0151 * inp #tr da,#con the acia after start char. 0152 0153 * Issue welcome/version message. 0154 1249 CC 16 2F jts crlf start with a new line. 0155 124C CC 16 2F jts crlf * 0156 124F 8B 0B 16 E5 lrd %A0,#msg01 Welcome msg. 0157 1253 CC 16 41 jts txmsg xmit it 0158 * Any breakpoint left active in user program? 0159 1256 47 16 E2 removbrk lda saveopc restore any pre-restart 0160 1259 24 8F cmp #brkpoint user program opcode? 0161 125B E2 12 jie *,norest no. 0162 125D 58 16 E4 sta [savebpa+1] restore it. 0163 1260 27 8F lda #brkpoint * 0164 1262 48 16 E2 sta saveopc * 0165 1265 CC 16 2F jts crlf xmit crlf 0166 1268 8B 0B 19 49 lrd %A0,#msg27 Breakpoint removed 0167 126C CC 16 41 jts txmsg xmit it. 0168 0169 126F 27 8F norest lda #brkpoint reset opcode save area. 0170 1271 48 16 E2 sta saveopc * 0171 0172 1274 CC 16 2F nextcmd1 jts crlf xmit crlf 0173 1277 nextcmd equ * 0174 1277 A1 cla clear address 0175 1278 08 0F sta %A2 build area. 0176 127A 08 0E sta %A2-1 * 0177 127C 27 3E lda #'>' xmit prompt. 0178 127E CC 15 E1 jts txmit * 0179 1281 CC 16 04 jts recv read monitor command. 0180 1284 CC 15 E1 jts txmit echo it. 0181 0182 1287 24 0D cmp #cr simple cr? 0183 1289 C2 12 74 jie nextcmd1 0184 128C 24 3F cmp #'?' 0185 128E C2 14 7A jie help help info. 0186 1291 25 DF and #$DF make it upper case. 0187 1293 24 4C cmp #'L' 0188 1295 C2 12 D3 jie load load S19 file. 0189 1298 24 52 cmp #'R' 0190 129A C2 13 5C jie run run user pgm. 0191 129D 24 47 cmp #'G' 0192 129F C2 13 99 jie go continue user pgm. 0193 12A2 24 44 cmp #'D' 0194 12A4 C2 13 A6 jie display display storage. 0195 12A7 24 4D cmp #'M' 0196 12A9 C2 14 14 jie modify modify storage. 0197 12AC 24 43 cmp #'C' 0198 12AE C2 14 91 jie clear clear storage. 0199 12B1 24 42 cmp #'B' 0200 12B3 C2 14 C8 jie break set breakpoint. 0201 12B6 24 53 cmp #'S' 0202 12B8 C2 15 46 jie ustatus display user status. 0203 12BB 24 50 cmp #'P' 0204 12BD C2 15 CF jie setupc set user program pc. 0205 12C0 24 58 cmp #'X' 0206 12C2 C2 12 56 jie removbrk remove breakpoint. 0207 * Invalid command. 0208 12C5 CC 16 2F jts crlf xmit invalid cmd msg. 0209 12C8 8B 0B 17 0A lrd %A0,#msg02 * 0210 12CC CC 16 41 jts txmsg * 0211 0212 12CF EE A6 jmp *,nextcmd lets try it again. 0213 0214 * 0215 *** Load a S19 file into storage. 0216 *

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 5 0217 12D1 00 00 dc.d 0000 return address 0218 12D3 load equ * 0219 12D3 CC 16 2F jts crlf xmit invalid cmd msg. 0220 12D6 8B 0B 17 1B lrd %A0,#msg03 xmit start loading... 0221 12DA CC 16 41 jts txmsg * 0222 0223 * Load user program. 0224 12DD CC 16 04 load01 jts recv get first char of record. 0225 12E0 24 53 cmp #'S' found? 0226 12E2 E3 F9 jne *,load01 branch if not. 0227 12E4 CC 16 04 jts recv get S record type. 0228 12E7 24 31 cmp #'1' 16 bits addr data record? 0229 12E9 E2 06 jie *,loaddata branch if yes. 0230 12EB 24 39 cmp #'9' end record? 0231 12ED E2 57 jie *,loadend branch if yes. 0232 12EF EE EC jmp *,load01 try again. 0233 0234 * Read 16 bits load address. 0235 12F1 CC 16 5D loaddata jts hexinp get total byte count. 0236 12F4 08 03 sta %R3 set checksum. 0237 12F6 22 03 sub #$03 cal number of data bytes. 0238 12F8 08 02 sta %R2 save it. 0239 0240 12FA CC 16 5D load04 jts hexinp get byte load address. 0241 12FD 08 0E sta %A2-1 save higher address byte. 0242 12FF 09 03 adm %R3 add to checksum. 0243 1301 CC 16 5D jts hexinp get lowest byte load address. 0244 1304 08 0F sta %A2 save lower address byte. 0245 1306 09 03 adm %R3 add to checksum. 0246 0247 * Start loading data. 0248 1308 CC 16 5D load05 jts hexinp get data. 0249 130B 18 0F sta [%A2] store data. 0250 130D 14 0F cmp [%A2] store successfull? 0251 130F E3 10 jne *,load06 if not: load error. 0252 1311 09 03 adm %R3 add to checksum. 0253 1313 0C 0F ind %A2 incr store pointer. 0254 1315 89 02 F0 djnz %R2,load05 0255 0256 * Checksum oke? Issue message if not. 0257 1318 CC 16 5D jts hexinp get check sum byte. 0258 131B 00 03 add %R3 add cal check sum. 0259 131D 20 01 add #$01 checksum oke? 0260 131F E0 BC jiz *,load01 if yes: get next record. 0261 0262 * Issue load failure message. 0263 1321 8B 0B 17 4F load06 lrd %A0,#msg05 Load program failed at xxxx 0264 1325 CC 16 41 jts txmsg tx it. 0265 1328 07 0E lda %A2-1 get high byte failing addr. 0266 132A CC 16 88 jts hex2out tx it. 0267 132D 07 0F lda %A2 get low byte failing addr. 0268 132F CC 16 88 jts hex2out tx it. 0269 1332 CC 16 2F jts crlf 0270 1335 8B 0B 17 6A lrd %A0,#msg06 Flushing data input until CNTL/Q 0271 1339 CC 16 41 jts txmsg tx it. 0272 133C CC 16 04 load07 jts recv read input. 0273 133F 24 11 cmp #$11 CNTL/Q? 0274 1341 E3 F9 jne *,load07 loop if not. 0275 1343 CE 12 77 jmp nextcmd try it again. 0276 0277 * Load successfully ended, issue message. 0278 1346 CC 16 04 loadend jts recv read input 0279 1349 24 0D cmp #cr till end 0280 134B E3 F9 jne *,loadend end of S9 record. 0281 134D 27 0D lda #cr cr 0282 134F CC 15 E1 jts txmit xmit it 0283 1352 8B 0B 17 35 lrd %A0,#msg04 Program successfully loaded.

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 6 0284 1356 CC 16 41 jts txmsg tx it. 0285 1359 CE 12 77 jmp nextcmd play it again, Sam. 0286 0287 * 0288 *** Run user program. 0289 * 0290 135C run equ * 0291 135C CC 16 B3 jts hexaddr get address 0292 0293 135F CC 16 2F jts crlf xmit start user msg. 0294 1362 8B 0B 17 8B lrd %A0,#msg10 * 0295 1366 CC 16 41 jts txmsg * 0296 1369 CC 16 2F jts crlf 0297 136C A1 cla 0298 136D 48 16 E0 sta intlvl0 switch to user 0299 1370 A7 rtc * 0300 1371 86 16 E0 swp intlvl0 interrupt level 0. 0301 1374 DC 00 3F jts [$003F] Go for it! 0302 0303 * End user program has ended. 0304 1377 endupgm equ * 0305 1377 48 01 00 sta $0100 save user pgm acc/rc. 0306 137A 27 0C lda #$0C save user status and 0307 137C 48 01 01 sta $0101 switch to interrupt level C 0308 137F A7 rtc * 0309 1380 86 01 01 swp $0101 * 0310 0311 1383 CC 16 2F jts crlf new line 0312 1386 8B 0B 17 A4 lrd %A0,#msg11 User program ended. 0313 138A CC 16 41 jts txmsg * 0314 138D 47 01 00 endu01 lda $0100 get user pgm rc. 0315 1390 CC 16 88 jts hex2out xmit it. 0316 1393 CC 16 2F jts crlf * 0317 1396 CE 12 77 jmp nextcmd and now something completely... 0318 0319 * 0320 *** Continue user program after breakpoint. 0321 * 0322 1399 go equ * 0323 1399 CC 16 2F jts crlf new clean line. 0324 139C A7 rtc restore user status reg. 0325 139D 86 01 01 swp $0101 * 0326 13A0 47 01 00 lda $0100 restore user Acc 0327 13A3 DE 01 03 jmp [$0103] continue user pgm 0328 0329 * 0330 *** Display memory contents. 0331 * 0332 13A6 display equ * 0333 13A6 CC 16 B3 jts hexaddr get address 0334 13A9 07 0F lda %A2 make 0335 13AB 25 F0 and #$F0 it 0336 13AD 08 0F sta %A2 xxx0 0337 13AF CC 16 2F jts crlf 0338 13B2 8B 0B 19 72 lrd %A0,#msg30 header 0 1 2... E F 0339 13B6 CC 16 41 jts txmsg * 0340 * %A2 contains entered hex address. 0341 13B9 8A 03 08 ldr %R3,#8 set outer loop counter. 0342 13BC 07 0E disp01 lda %A2-1 xmit memory 0343 13BE 08 0C sta %A1-1 save it for ASCII print 0344 13C0 CC 16 88 jts hex2out address 0345 13C3 07 0F lda %A2 * 0346 13C5 08 0D sta %A1 * 0347 13C7 CC 16 88 jts hex2out * 0348 13CA 27 2D lda #'-' xxxx - 0349 13CC CC 16 22 jts space 0350 13CF CC 15 E1 jts txmit

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 7 0351 * Print memory contents in hex. 0352 13D2 8A 02 10 ldr %R2,#16 set inner loop counter. 0353 13D5 CC 16 22 disp02 jts space 0354 13D8 17 0F lda [%A2] get memory contents 0355 13DA 0C 0F ind %A2 incr memory pointer. 0356 13DC CC 16 88 jts hex2out xmit it 0357 13DF 89 02 F3 djnz %R2,disp02 0358 * Print memory contents in ASCII. 0359 13E2 8A 02 10 ldr %R2,#16 set inner loop counter. 0360 13E5 CC 16 22 jts space seperate hex/ascii fields 0361 13E8 CC 16 22 jts space * 0362 13EB 27 2A lda #'*' * 0363 13ED CC 15 E1 jts txmit 0364 13F0 17 0D disp03 lda [%A1] get memory contents 0365 13F2 24 20 cmp #$20 printable? 0366 13F4 E5 06 jil *,disp04 * 0367 13F6 24 7A cmp #$7A * 0368 13F8 E4 02 jig *,disp04 * 0369 13FA EE 02 jmp *,disp05 YES 0370 13FC 27 2E disp04 lda #'.' NO! 0371 13FE CC 15 E1 disp05 jts txmit xmit it. 0372 1401 0C 0D ind %A1 incr memory pointer. 0373 1403 89 02 EA djnz %R2,disp03 0374 0375 1406 27 2A lda #'*' close it off. 0376 1408 CC 15 E1 jts txmit 0377 140B CC 16 2F jts crlf xmit start user msg. 0378 140E 89 03 AB djnz %R3,disp01 another line? 0379 0380 1411 CE 12 77 jmp nextcmd what's next? 0381 0382 * 0383 *** Modify memory contents. 0384 * 0385 1414 modify equ * 0386 1414 CC 16 B3 jts hexaddr get address 0387 * %A2 contains entered hex address. 0388 1417 CC 16 2F mod01 jts crlf 0389 141A 07 0E lda %A2-1 xmit memory 0390 141C CC 16 88 jts hex2out address 0391 141F 07 0F lda %A2 * 0392 1421 CC 16 88 jts hex2out * 0393 1424 CC 16 22 jts space xmit space 0394 1427 17 0F lda [%A2] get memory contents 0395 1429 CC 16 88 jts hex2out xmit it 0396 142C CC 16 22 jts space xmit space 0397 0398 142F CC 16 04 mod02 jts recv get input. 0399 1432 24 0D cmp #cr CR? 0400 1434 E2 33 jie *,mod07 next location 0401 1436 24 1B mod03 cmp #esc Escape? 0402 1438 C2 12 74 jie nextcmd1 that's all for today. 0403 143B 24 71 cmp #'q' quit? 0404 143D C2 12 74 jie nextcmd1 that's all for today. 0405 1440 CC 15 E1 jts txmit echo input. 0406 0407 1443 24 3A cmp #$3A 0-9 or A-F? 0408 1445 E5 02 jil *,mod04 jump if 0-9 0409 1447 20 09 add #$09 correction 0410 1449 25 0F mod04 and #$0F remove high order bits. 0411 144B 38 07 sta *,mod06+1 save it. 0412 144D 07 02 mod05 lda %R2 get modify value. 0413 144F A2 ral move them to high order. 0414 1450 A2 ral 0415 1451 A2 ral 0416 1452 A2 ral 0417 1453 20 00 mod06 add #$00 merge it with input.

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 8 0418 1455 08 02 sta %R2 save it again. 0419 1457 CC 16 04 jts recv get input. 0420 145A 24 0D cmp #cr 0421 145C E3 D8 jne *,mod03 next location 0422 145E CC 15 E1 jts txmit echo it. 0423 * Store modified value. 0424 1461 07 02 lda %R2 get modify value and 0425 1463 18 0F sta [%A2] store it 0426 1465 14 0F cmp [%A2] verify store. 0427 1467 E3 04 jne *,mod08 not ok? 0428 1469 0C 0F mod07 ind %A2 bump address pointer. 0429 146B EE AA jmp *,mod01 loop 0430 * Modify not possible. 0431 146D CC 16 2F mod08 jts crlf crlf. 0432 1470 8B 0B 17 C1 lrd %A0,#msg15 Verify after modify failed. 0433 1474 CC 16 41 jts txmsg tx it. 0434 1477 CE 12 77 jmp nextcmd play it again Sam. 0435 0436 * 0437 *** Transmit help information. 0438 * 0439 147A help equ * 0440 147A CC 16 2F jts crlf new line. 0441 147D 8B 0B 16 EB lrd %A0,#msg01+6 Version... 0442 1481 CC 16 41 jts txmsg * 0443 1484 CC 16 2F jts crlf new line. 0444 1487 8B 0B 17 F2 lrd %A0,#msg20 Valid commands... 0445 148B CC 16 41 jts txmsg * 0446 148E CE 12 77 jmp nextcmd play it again Sam. 0447 0448 * 0449 *** Clear memory. 0450 * 0451 1491 clear equ * 0452 1491 CC 16 2F jts crlf new line. 0453 1494 8B 0B 17 DC lrd %A0,#msg17 Are you sure? 0454 1498 CC 16 41 jts txmsg * 0455 149B CC 16 04 jts recv get input 0456 149E CC 15 E1 jts txmit echo input. 0457 14A1 25 DF and #$DF make upper case. 0458 14A3 24 59 cmp #'Y' confirmed? 0459 14A5 C3 12 74 jne nextcmd1 No. 0460 * Clear user registers. 0461 14A8 8A 01 10 ldr %R1,#16 16 registers. 0462 14AB A1 cla 0463 14AC 48 00 00 clr00 sta $0000 intlvl0 registers. 0464 14AF 4B 14 AE inc clr00+2 bump pointer. 0465 14B2 89 01 F7 djnz %R1,clr00 loop. 0466 * Clear user status register. 0467 14B5 48 01 01 sta $0101 clear ustatus. 0468 * Clear memory. 0469 14B8 58 14 C5 clr01 sta [clrpntr+1] clear it. 0470 14BB 3C 08 ind *,clrpntr+1 bump pointer. 0471 14BD 3E 08 dcd *,clrcnt+1 0472 14BF E7 F7 jnc *,clr01 0473 14C1 CE 80 00 jmp $8000 restart monitor. 0474 0475 14C4 14 C8 clrpntr dc.d *+4 start location. 0476 14C6 80 00 clrcnt dc.d $8000 number of bytes. 0477 0478 * 0479 *** Set breakpoint. 0480 * 0481 14C8 break equ * 0482 14C8 CC 16 B3 jts hexaddr get breakpoint address 0483 * Check if a breakpoint is allready set. 0484 14CB 47 16 E2 lda saveopc allready set?

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 9 0485 14CE 24 8F cmp #brkpoint * 0486 14D0 E2 19 jie *,bpfree * 0487 * Issue error message, BP allready set. 0488 14D2 CC 16 2F jts crlf new line. 0489 14D5 8B 0B 19 2C lrd %A0,#msg26 BP allready set at xxxx. 0490 14D9 CC 16 41 jts txmsg tx it. 0491 14DC 47 16 E3 lda savebpa get high byte bp addr. 0492 14DF CC 16 88 jts hex2out tx it. 0493 14E2 47 16 E4 lda savebpa+1 get low byte bp addr. 0494 14E5 CC 16 88 jts hex2out tx it. 0495 14E8 CE 12 74 jmp nextcmd1 play it again Sam. 0496 0497 14EB 17 0F bpfree lda [%A2] get current opcode. 0498 14ED 48 16 E2 sta saveopc save it. 0499 14F0 27 8F lda #brkpoint set breakpoint. 0500 14F2 18 0F sta [%A2] * 0501 14F4 14 0F cmp [%A2] verify ok? 0502 14F6 E3 0D jne *,notoke no. 0503 * Breakpoint set, save breakpoint address. 0504 14F8 07 0F lda %A2 get breakpoint 0505 14FA 48 16 E4 sta savebpa+1 address 0506 14FD 07 0E lda %A2-1 and 0507 14FF 48 16 E3 sta savebpa save it. 0508 1502 CE 12 74 jmp nextcmd1 0509 * Issue error message. 0510 1505 48 16 E2 notoke sta saveopc set bp free again. 0511 1508 CC 16 2F jts crlf crlf. 0512 150B 8B 0B 19 12 lrd %A0,#msg25 Unable to set breakpoint. 0513 150F CC 16 41 jts txmsg tx it. 0514 1512 CE 12 77 jmp nextcmd play it again Sam. 0515 0516 1515 brkdet equ * 0517 * Switch to monitor interrupt level (C). 0518 1515 27 0C lda #$0C switch to 0519 1517 48 16 E1 sta intlvlc interrupt level C 0520 151A A7 rtc * 0521 151B 86 16 E1 swp intlvlc * 0522 * Saved PC points 2 byte beyond breakpoint. Subtract 2 correction. 0523 151E A6 stc set carry. 0524 151F 47 01 03 lda $0103 get low byte 0525 1522 23 02 sbc #$02 minus two. 0526 1524 48 01 03 sta $0103 save it. 0527 1527 E6 03 jic *,brk01 borrow? 0528 1529 4D 01 02 dcr $0102 yes, high byte minus one. 0529 * Restore original opcode in user pgm. 0530 152C 47 16 E2 brk01 lda saveopc restore orignal opcode 0531 152F 24 8F cmp #brkpoint is this correct? 0532 1531 C2 12 74 jie nextcmd1 jump if not. 0533 1534 58 01 03 sta [$0103] restore user pgm opcode. 0534 1537 27 8F lda #brkpoint set breakpoint cleared. 0535 1539 48 16 E2 sta saveopc * 0536 0537 153C CC 16 2F jts crlf new line. 0538 153F 8B 0B 19 5E lrd %A0,#msg29 Breakpoint entered. 0539 1543 CC 16 41 jts txmsg * 0540 0541 1546 ustatus equ * 0542 1546 CC 16 2F jts crlf new line. 0543 1549 8B 0B 19 72 lrd %A0,#msg30 Regs = 0544 154D CC 16 41 jts txmsg * 0545 1550 8B 0B 19 A8 lrd %A0,#msg30a Regs = 0546 1554 CC 16 41 jts txmsg * 0547 1557 47 01 01 lda $0101 get user int level 0548 155A A2 ral move 0549 155B A2 ral intlvl 0550 155C A2 ral to 0551 155D A2 ral high order.

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 10 0552 155E 38 03 sta *,brk05+3 set register range addr. 0553 1560 8B 0F 00 00 brk05 lrd %A2,#$0000 set to intlvl 0 regs. 0554 1564 8A 02 10 ldr %R2,#16 set loop counter. 0555 1567 17 0F brk06 lda [%A2] get register contents 0556 1569 0C 0F ind %A2 incr register pointer. 0557 156B CC 16 88 jts hex2out xmit it 0558 156E CC 16 22 jts space 0559 1571 89 02 F3 djnz %R2,brk06 end of hex part of line? 0560 0561 1574 CC 16 2F jts crlf new line. 0562 1577 8B 0B 19 B1 lrd %A0,#msg30b PC = 0563 157B CC 16 41 jts txmsg * 0564 157E 47 01 02 lda $0102 PC high 0565 1581 CC 16 88 jts hex2out xmit it. 0566 1584 47 01 03 lda $0103 PC low 0567 1587 CC 16 88 jts hex2out xmit it. 0568 0569 158A CC 16 41 jts txmsg ACC = 0570 158D 47 01 00 lda $0100 0571 1590 CC 16 88 jts hex2out xmit it. 0572 0573 1593 CC 16 41 jts txmsg Status = 0574 1596 47 01 01 lda $0101 0575 1599 8A 02 04 ldr %R2,#4 set loop counter. 0576 159C A2 brk02 ral get bit. 0577 159D 38 09 sta *,brk04+1 save it for later. 0578 159F 27 30 lda #'0' '0' 0579 15A1 E9 01 jns *,brk03 or 0580 15A3 AC ina '1' 0581 15A4 CC 15 E1 brk03 jts txmit out? 0582 15A7 27 00 brk04 lda #$00 restore status. 0583 15A9 89 02 F0 djnz %R2,brk02 loop. 0584 0585 15AC CC 16 41 jts txmsg Intlvl = 0586 15AF 47 01 01 lda $0101 0587 15B2 CC 16 9E jts hexlout xmit it. 0588 0589 15B5 CC 16 41 jts txmsg BP = 0590 15B8 47 16 E2 lda saveopc breakpoint set? 0591 15BB 24 8F cmp #brkpoint * 0592 15BD C2 12 74 jie nextcmd1 jump if not. 0593 * BP is set, print it. 0594 15C0 47 16 E3 lda savebpa get high byte bp addr. 0595 15C3 CC 16 88 jts hex2out tx it. 0596 15C6 47 16 E4 lda savebpa+1 get low byte bp addr. 0597 15C9 CC 16 88 jts hex2out tx it. 0598 0599 15CC CE 12 74 jmp nextcmd1 next... 0600 0601 * 0602 *** Set user program PC. 0603 * 0604 15CF setupc equ * 0605 15CF CC 16 B3 jts hexaddr get user pgm PC address 0606 15D2 07 0F lda %A2 * low 0607 15D4 48 01 03 sta $0103 * 0608 15D7 07 0E lda %A2-1 * high 0609 15D9 48 01 02 sta $0102 * 0610 15DC CE 12 74 jmp nextcmd1 next... 0611

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 11 0613 * 0614 *** Transmit one byte (in accumulator) subroutine. 0615 * 0616 15DF 00 00 dc.d 0000 return address 0617 15E1 txmit equ * 0618 15E1 48 15 FB sta txsave+1 save it 0619 15E4 8D 4C inp #tr co,#con get ACIA status reg 0620 15E6 8D 4C inp #tr co,#con 0621 15E8 25 04 and #$04 tx buffer empty? 0622 15EA C1 15 FA jnz xmt tx jump if yes 0623 0624 * Wait till tx buffer is empty. 0625 15ED 27 31 lda #$31 enable tx irq ACIA 0626 15EF 8D 6C out #tr co,#con 0627 15F1 8D EC out #st co,#con 0628 15F3 AF rfi leave current int lvl. 0629 0630 * Interrupt received from ACIA. 0631 15F4 27 11 lda #$11 disable tx irq ACIA 0632 15F6 8D 6C out #tr co,#con 0633 15F8 8D EC out #st co,#con 0634 0635 15FA xmt tx equ * 0636 15FA 27 00 txsave lda #$00 restore tx char 0637 15FC 8D 2C out #tr da,#con xmit acc character 0638 15FE 8D AC out #st da,#con * 0639 1600 ED DF jfs *,txmit return to caller. 0640 0641 0642 * 0643 *** Receive one byte (in accumulator) subroutine. 0644 * 0645 1602 00 00 dc.d 0000 return address 0646 1604 recv equ * wait for input 0647 1604 8D 4C inp #tr co,#con get ACIA status reg 0648 1606 8D 4C inp #tr co,#con 0649 1608 25 02 and #$02 rx buffer full? 0650 160A C1 16 1A jnz get rx jump if yes 0651 * Nothing (yet) received. 0652 160D 27 91 lda #$91 enable rx irq ACIA 0653 160F 8D 6C out #tr co,#con 0654 1611 8D EC out #st co,#con 0655 1613 AF rfi leave current int lvl. 0656 0657 * Interrupt received from ACIA. 0658 1614 27 11 lda #$11 disable rx irq ACIA 0659 1616 8D 6C out #tr co,#con 0660 1618 8D EC out #st co,#con 0661 161A get rx equ * 0662 161A 8D 0C inp #tr da,#con transfer rx character 0663 161C 8D 0C inp #tr da,#con to accumulator 0664 0665 161E ED E4 jfs *,recv return to caller. 0666 0667 0668 * 0669 *** Transmit a space character. 0670 * 0671 1620 00 00 dc.d 0000 return address 0672 1622 space equ * 0673 1622 38 06 sta *,save01+1 save acc. 0674 1624 27 20 lda #' ' space 0675 1626 CC 15 E1 jts txmit send it. 0676 1629 27 00 save01 lda #$00 restore acc. 0677 162B ED F5 jfs *,space 0678 0679

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 12 0680 * 0681 *** Transmit a CR and a LF. 0682 * 0683 162D 00 00 dc.d 0000 return address 0684 162F crlf equ * 0685 162F 38 0B sta *,save02+1 save acc. 0686 1631 27 0D lda #cr cr. 0687 1633 CC 15 E1 jts txmit send it. 0688 1636 27 0A lda #lf lf. 0689 1638 CC 15 E1 jts txmit send it. 0690 163B 27 00 save02 lda #$00 Restore acc. 0691 163D ED F0 jfs *,crlf 0692 0693 0694 * 0695 *** Transmit a message (till 0x00) pointed by %A0. 0696 * 0697 163F 00 00 dc.d 0000 return address 0698 1641 txmsg equ * 0699 1641 38 15 sta *,save03+1 save acc. 0700 1643 EE 05 jmp *,cont06 0701 0702 1645 CC 15 E1 loop06 jts txmit transmit it. 0703 1648 0C 0B ind %A0 increment pointer. 0704 164A 17 0B cont06 lda [%A0] get character. 0705 164C 24 23 cmp #'#' no crlf? 0706 164E E2 05 jie *,cont07 0707 1650 E1 F3 jnz *,loop06 end of message? 0708 1652 CC 16 2F jts crlf add cr/lf 0709 1655 0C 0B cont07 ind %A0 bump over # (if applicable) 0710 1657 27 00 save03 lda #$00 restore acc. 0711 1659 ED E6 jfs *,txmsg 0712 0713 0714 * 0715 *** Receive two hex characters in accumulator. 0716 * 0717 165B 00 00 dc.d 0000 return address 0718 165D hexinp equ * 0719 165D CC 16 04 jts recv read input (high order) 0720 1660 24 0D cmp #cr cr? 0721 1662 E2 20 jie *,hex03 jump if yes. 0722 1664 24 71 cmp #'q' quit? 0723 1666 C2 12 74 jie nextcmd1 jump if yes. (it's dirty :-) 0724 1669 24 3A cmp #$3A 0-9 or A-F? 0725 166B E5 02 jil *,hex01 jump if 0-9 0726 166D 20 09 add #$09 correction 0727 166F 25 0F hex01 and #$0F remove high order bits. 0728 1671 A2 ral move them to high order. 0729 1672 A2 ral 0730 1673 A2 ral 0731 1674 A2 ral 0732 1675 38 0C sta *,save04+1 save it. 0733 1677 CC 16 04 jts recv read input (low order) 0734 167A 24 3A cmp #$3A 0-9 or A-F? 0735 167C E5 02 jil *,hex02 jump if 0-9 0736 167E 20 09 add #$09 correction 0737 1680 25 0F hex02 and #$0F remove high order bits. 0738 1682 20 00 save04 add #$00 make it complete. 0739 1684 ED D7 hex03 jfs *,hexinp return to caller. 0740 0741 0742 * 0743 *** Transmit accumulator (high, low, both) in hex-dec. 0744 * 0745 1686 00 00 dc.d 0000 return address 0746 1688 hex2out equ *

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 13 0747 1688 EC 06 jts *,hexhout transmit high part acc. 0748 168A EC 12 jts *,hex1out transmit low part acc. 0749 168C ED FA jfs *,hex2out 0750 0751 168E 00 00 dc.d 0000 return address 0752 1690 hexhout equ * 0753 1690 38 07 sta *,save13+1 save acc. 0754 1692 A4 rar shift 4 bits high -> low 0755 1693 A4 rar 0756 1694 A4 rar 0757 1695 A4 rar 0758 1696 EC 06 jts *,hex1out transmit it as hex. 0759 1698 27 00 save13 lda #$00 restore acc. 0760 169A ED F4 jfs *,hexhout 0761 0762 169C 00 00 dc.d 0000 return address 0763 169E hex1out equ * 0764 169E hexlout equ * 0765 169E 38 0E sta *,save14+1 save acc. 0766 16A0 25 0F and #$0F remove any junk bits 0767 16A2 20 30 add #$30 0768 16A4 24 3A cmp #$3A 0-9 or A-F? 0769 16A6 E5 02 jil *,cont15 0770 16A8 20 07 add #$07 make it A-F. 0771 16AA CC 15 E1 cont15 jts txmit xmit it. 0772 16AD 27 00 save14 lda #$00 restore acc. 0773 16AF ED ED jfs *,hex1out 0774 0775 0776 * 0777 *** Read hex-decimal address. 0778 * 0779 16B1 00 00 dc.d 0000 return address 0780 16B3 hexaddr equ * 0781 16B3 CC 16 04 jts recv read input 0782 16B6 24 0D cmp #$0D cr? 0783 16B8 E2 24 jie *,hex10 jump if yes. 0784 16BA CC 15 E1 jts txmit 0785 16BD 24 3A cmp #$3A 0-9 or A-F? 0786 16BF E5 02 jil *,hex11 jump if 0-9 0787 16C1 20 09 add #$09 correction 0788 16C3 25 0F hex11 and #$0F remove high order bits. 0789 16C5 38 12 sta *,save12+1 save it. 0790 * Shift address 4 bits to the left. 0791 16C7 8A 02 04 ldr %R2,#4 set loop counter. 0792 16CA A9 loop10 rts reset shift bit. 0793 16CB 07 0F lda %A2 get lower byte 0794 16CD A3 rls move higher bit 0795 16CE 08 0F sta %A2 in 0796 16D0 07 0E lda %A2-1 lower order 0797 16D2 A3 rls of 0798 16D3 08 0E sta %A2-1 higher order byte. 0799 16D5 89 02 F2 djnz %R2,loop10 loop 0800 0801 16D8 27 00 save12 lda #00 reload input char. 0802 16DA 09 0F adm %A2 insert it in address. 0803 16DC EE D5 jmp *,hexaddr 0804 0805 16DE ED D3 hex10 jfs *,hexaddr return to caller. 0806

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 14 0808 16E0 intlvl0 ds 1 used to switch to intlvl 0 0809 16E1 intlvlc ds 1 used to switch to intlvl C 0810 16E2 8F saveopc dc.b brkpoint save opc area. 0811 16E3 savebpa ds 2 save breakpoint addr. 0812 0813 0814 16E5 48 4A 53 32 32 20 msg01 dc.c 'HJS22 Monitor Version 3.0a running.#' 4D 6F 6E 69 74 6F 72 20 56 65 72 73 69 6F 6E 20 33 2E 30 61 20 72 75 6E 6E 69 6E 67 2E 23 0815 1709 00 dc.b null 0816 170A 49 6E 76 61 6C 69 msg02 dc.c 'Invalid command.' 64 20 63 6F 6D 6D 61 6E 64 2E 0817 171A 00 dc.b null 0818 171B 53 74 61 72 74 20 msg03 dc.c 'Start loading S19 file...' 6C 6F 61 64 69 6E 67 20 53 31 39 20 66 69 6C 65 2E 2E 2E 0819 1734 00 dc.b null 0820 1735 46 69 6C 65 20 73 msg04 dc.c 'File successfully loaded.' 75 63 63 65 73 73 66 75 6C 6C 79 20 6C 6F 61 64 65 64 2E 0821 174E 00 dc.b null 0822 174F 4C 6F 61 64 20 65 msg05 dc.c 'Load error near address #.' 72 72 6F 72 20 6E 65 61 72 20 61 64 64 72 65 73 73 20 23 2E 0823 1769 00 dc.b null 0824 176A 46 6C 75 73 68 69 msg06 dc.c 'Flushing input data till CNTL/Q.' 6E 67 20 69 6E 70 75 74 20 64 61 74 61 20 74 69 6C 6C 20 43 4E 54 4C 2F 51 2E 0825 178A 00 dc.b null 0826 178B 53 74 61 72 74 69 msg10 dc.c 'Starting user program...' 6E 67 20 75 73 65 72 20 70 72 6F 67 72 61 6D 2E 2E 2E 0827 17A3 00 dc.b null 0828 17A4 55 73 65 72 20 70 msg11 dc.c 'User program ended with RC=#' 72 6F 67 72 61 6D 20 65 6E 64 65 64 20 77 69 74 68 20 52 43 3D 23 0829 17C0 00 dc.b null 0830 17C1 55 6E 61 62 6C 65 msg15 dc.c 'Unable to modify storage!' 20 74 6F 20 6D 6F 64 69 66 79 20 73 74 6F 72 61 67 65 20 21 0831 17DB 00 dc.b null 0832 17DC 43 6C 65 61 72 20 msg17 dc.c 'Clear memory [y,n]? #' 6D 65 6D 6F 72 79 20 5B 79 2C 4E 5D 3F 20 23 0833 17F1 00 dc.b null 0834 17F2 56 61 6C 69 64 20 msg20 dc.c 'Valid commands:' 63 6F 6D 6D 61 6E 64 73 3A

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 15 0835 1801 0D 0A dc.b cr,lf 0836 1803 20 20 44 20 78 78 dc.c ' D xxxx - Display memory.' 78 78 20 2D 20 44 69 73 70 6C 61 79 20 6D 65 6D 6F 72 79 2E 0837 181D 0D 0A dc.b cr,lf 0838 181F 20 20 4D 20 78 78 dc.c ' M xxxx - Modify memory.' 78 78 20 2D 20 4D 6F 64 69 66 79 20 6D 65 6D 6F 72 79 2E 0839 1838 0D 0A dc.b cr,lf 0840 183A 20 20 42 20 78 78 dc.c ' B xxxx - Set breakpoint.' 78 78 20 2D 20 53 65 74 20 62 72 65 61 6B 70 6F 69 6E 74 2E 0841 1854 0D 0A dc.b cr,lf 0842 1856 20 20 50 20 78 78 dc.c ' P xxxx - Set user pgm PC.' 78 78 20 2D 20 53 65 74 20 75 73 65 72 20 70 67 6D 20 50 43 2E 0843 1871 0D 0A dc.b cr,lf 0844 1873 20 20 52 20 78 78 dc.c ' R xxxx - Run user program.' 78 78 20 2D 20 52 75 6E 20 75 73 65 72 20 70 72 6F 67 72 61 6D 2E 0845 188F 0D 0A dc.b cr,lf 0846 1891 20 20 47 20 2D 20 dc.c ' G - Continue user program.' 43 6F 6E 74 69 6E 75 65 20 75 73 65 72 20 70 72 6F 67 72 61 6D 2E 0847 18AD 0D 0A dc.b cr,lf 0848 18AF 20 20 4C 20 2D 20 dc.c ' L - Load user program.' 4C 6F 61 64 20 75 73 65 72 20 70 72 6F 67 72 61 6D 2E 0849 18C7 0D 0A dc.b cr,lf 0850 18C9 20 20 53 20 2D 20 dc.c ' S - User program status.' 55 73 65 72 20 70 72 6F 67 72 61 6D 20 73 74 61 74 75 73 2E 0851 18E3 0D 0A dc.b cr,lf 0852 18E5 20 20 58 20 2D 20 dc.c ' X - Clear breakpoint.' 43 6C 65 61 72 20 62 72 65 61 6B 70 6F 69 6E 74 2E 0853 18FC 0D 0A dc.b cr,lf 0854 18FE 20 20 43 20 2D 20 dc.c ' C - Clear memory.' 43 6C 65 61 72 20 6D 65 6D 6F 72 79 2E 0855 1911 00 dc.b null 0856 1912 55 6E 61 62 6C 65 msg25 dc.c 'Unable to set breakpoint.' 20 74 6F 20 73 65 74 20 62 72 65 61 6B 70 6F 69 6E 74 2E 0857 192B 00 dc.b null 0858 192C 42 72 65 61 6B 70 msg26 dc.c 'Breakpoint allready set at #' 6F 69 6E 74 20 61 6C 6C 72 65 61 64

Stmt Loc Object code Source Statement AS22 Assembler - V1.2 dd/mm/yy page 16 79 20 73 65 74 20 61 74 20 23 0859 1948 00 dc.b null 0860 1949 42 72 65 61 6B 70 msg27 dc.c 'Breakpoint cleared.#' 6F 69 6E 74 20 63 6C 65 61 72 65 64 2E 23 0861 195D 00 dc.b null 0862 195E 42 72 65 61 6B 70 msg29 dc.c 'Breakpoint entered.' 6F 69 6E 74 20 65 6E 74 65 72 65 64 2E 0863 1971 00 dc.b null 0864 1972 20 20 20 20 20 20 msg30 dc.c ' 0 1 2 3 4 5 6 7' 20 30 20 20 31 20 20 32 20 20 33 20 20 34 20 20 35 20 20 36 20 20 37 0865 198F 20 20 38 20 20 39 dc.c ' 8 9 A B C D E F' 20 20 41 20 20 42 20 20 43 20 20 44 20 20 45 20 20 46 0866 19A7 00 dc.b null 0867 19A8 52 65 67 73 20 2D msg30a dc.c 'Regs - #' 20 23 0868 19B0 00 dc.b null 0869 19B1 50 43 2D 23 20 20 msg30b dc.c 'PC-# Acc-# Status-# Intlvl-# BP-#' 41 63 63 2D 23 20 20 53 74 61 74 75 73 2D 23 20 20 49 6E 74 6C 76 6C 2D 23 20 20 42 50 2D 23 0870 19D6 00 dc.b null 0871 0872 end

Cross reference Symbol Value Defn References AS22 Assembler - V1.2 dd/mm/yy page 17 A0 000B *0050 0156 0166 0209 0220 0263 0270 0283 0294 0312 0338 0432 0441 0444 0453 0489 0512 0538 0543 0545 0562 0703 0704 0709 A1 000D *0051 0343 0346 0364 0372 A2 000F *0052 0175 0176 0241 0244 0249 0250 0253 0265 0267 0334 0336 0342 0345 0354 0355 0389 0391 0394 0425 0426 0428 0497 0500 0501 0504 0506 0553 0555 0556 0606 0608 0793 0795 0796 0798 0802 R0 0000 *0039 R1 0001 *0040 0461 0465 R2 0002 *0041 0238 0254 0352 0357 0359 0373 0412 0418 0424 0554 0559 0575 0583 0791 0799 R3 0003 *0042 0236 0242 0245 0252 0258 0341 0378 R4 0004 *0043 R5 0005 *0044 R6 0006 *0045 R7 0007 *0046 R8 0008 *0047 0131 0141 R9 0009 *0048 acc 0 0100 *0073 acc C 0130 *0079 bpfree 14EB *0497 0486 break 14C8 *0481 0200 brk01 152C *0530 0527 brk02 159C *0576 0583 brk03 15A4 *0581 0579 brk04 15A7 *0582 0577 brk05 1560 *0553 0552 brk06 1567 *0555 0559 brkdet 1515 *0516 0099 brkpoint 008F *0058 0160 0163 0169 0485 0499 0531 0534 0591 0810 clear 1491 *0451 0198 clr00 14AC *0463 0464 0465 clr01 14B8 *0469 0472 clrcnt 14C6 *0476 0471 clrpntr 14C4 *0475 0469 0470 con 000C *0060 0104 0106 0107 0110 0111 0116 0117 0619 0620 0626 0627 0632 0633 0637 0638 0647 0648 0653 0654 0659 0660 0662 0663 cont06 164A *0704 0700 cont07 1655 *0709 0706 cont15 16AA *0771 0769 cr 000D *0055 0182 0279 0281 0399 0420 0686 0720 0835 0837 0839 0841 0843 0845 0847 0849 0851 0853 crlf 162F *0684 0154 0155 0165 0172 0208 0219 0269 0293 0296 0311 0316 0323 0337 0377 0388 0431 0440 0443 0452 0488 0511 0537 0542 0561 0691 0708 disp01 13BC *0342 0378 disp02 13D5 *0353 0357 disp03 13F0 *0364 0373 disp04 13FC *0370 0366 0368 disp05 13FE *0371 0369 display 13A6 *0332 0194 endu01 138D *0314 endupgm 1377 *0304 esc 001B *0054 0401 eyecatch 120E *0094 0089 get rx 161A *0661 0650 go 1399 *0322 0192 help 147A *0439 0185 hex01 166F *0727 0725 hex02 1680 *0737 0735 hex03 1684 *0739 0721 hex10 16DE *0805 0783 hex11 16C3 *0788 0786 hex1out 169E *0763 0748 0758 0773 hex2out 1688 *0746 0266 0268 0315 0344 0347 0356 0390 0392 0395

Cross reference Symbol Value Defn References AS22 Assembler - V1.2 dd/mm/yy page 18 0492 0494 0557 0565 0567 0571 0595 0597 0749 hexhout 1690 *0752 0747 0760 hexlout 169E *0764 0587 hexaddr 16B3 *0780 0291 0333 0386 0482 0605 0803 0805 hexinp 165D *0718 0235 0240 0243 0248 0257 0739 intlvl0 16E0 *0808 0298 0300 intlvlc 16E1 *0809 0519 0521 intlvl C 1249 *0149 0081 lf 000A *0056 0115 0688 0835 0837 0839 0841 0843 0845 0847 0849 0851 0853 load 12D3 *0218 0188 load01 12DD *0224 0226 0232 0260 load04 12FA *0240 load05 1308 *0248 0254 load06 1321 *0263 0251 load07 133C *0272 0274 loaddata 12F1 *0235 0229 loadend 1346 *0278 0231 0280 loop06 1645 *0702 0707 loop10 16CA *0792 0799 mod01 1417 *0388 0429 mod02 142F *0398 mod03 1436 *0401 0421 mod04 1449 *0410 0408 mod05 144D *0412 mod06 1453 *0417 0411 mod07 1469 *0428 0400 mod08 146D *0431 0427 modify 1414 *0385 0196 monitor 1200 *0088 monstart 1215 *0102 0096 msg01 16E5 *0814 0156 0441 msg02 170A *0816 0209 msg03 171B *0818 0220 msg04 1735 *0820 0283 msg05 174F *0822 0263 msg06 176A *0824 0270 msg10 178B *0826 0294 msg11 17A4 *0828 0312 msg15 17C1 *0830 0432 msg17 17DC *0832 0453 msg20 17F2 *0834 0444 msg25 1912 *0856 0512 msg26 192C *0858 0489 msg27 1949 *0860 0166 msg29 195E *0862 0538 msg30 1972 *0864 0338 0543 msg30a 19A8 *0867 0545 msg30b 19B1 *0869 0562 nextcmd 1277 *0173 0212 0275 0285 0317 0380 0434 0446 0514 nextcmd1 1274 *0172 0183 0402 0404 0459 0495 0508 0532 0592 0599 0610 0723 norest 126F *0169 0161 notoke 1505 *0510 0502 null 0000 *0057 0815 0817 0819 0821 0823 0825 0827 0829 0831 0833 0855 0857 0859 0861 0863 0866 0868 0870 pchl 0 0102 *0075 pchl c 0132 *0081 recv 1604 *0646 0091 0179 0224 0227 0272 0278 0398 0419 0455 0665 0719 0733 0781 removbrk 1256 *0159 0206 reset 0010 *0066 0104 run 135C *0290 0190 save01 1629 *0676 0673 save02 163B *0690 0685 save03 1657 *0710 0699 save04 1682 *0738 0732

Cross reference Symbol Value Defn References AS22 Assembler - V1.2 dd/mm/yy page 19 save12 16D8 *0801 0789 save13 1698 *0759 0753 save14 16AD *0772 0765 save 0 0100 *0072 save C 0130 *0078 savebpa 16E3 *0811 0162 0491 0493 0505 0507 0594 0596 saveopc 16E2 *0810 0159 0164 0170 0484 0498 0510 0530 0535 0590 setupc 15CF *0604 0204 space 1622 *0672 0349 0353 0360 0361 0393 0396 0558 0677 st co 00C0 *0063 0107 0111 0117 0627 0633 0654 0660 st da 0080 *0065 0638 stat 0 0101 *0074 stat C 0131 *0080 tr co 0040 *0062 0106 0110 0116 0619 0620 0626 0632 0647 0648 0653 0659 tr da 0000 *0064 0637 0662 0663 txmit 15E1 *0617 0090 0178 0180 0282 0350 0363 0371 0376 0405 0422 0456 0581 0639 0675 0687 0689 0702 0771 0784 txmsg 1641 *0698 0157 0167 0210 0221 0264 0271 0284 0295 0313 0339 0433 0442 0445 0454 0490 0513 0539 0544 0546 0563 0569 0573 0585 0589 0711 txsave 15FA *0636 0618 ustatus 1546 *0541 0202 wt dly1 122D *0125 0131 wt dly2 123A *0135 0141 wt rls 1239 *0134 0142 wt rrs 122C *0124 0132 0143 xmt tx 15FA *0635 0622