AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 1 - 08/06/19 23:59:03 1/ 0 : ;;; 2/ 0 : ;;; Universal Monitor 6800 3/ 0 : ;;; 4/ 0 : 5/ 0 : CPU 6800 6/ 0 : 7/ 0 : =MC6800 TARGET: equ "MC6800" 8/ 0 : 9/ 0 : 10/ 0 : INCLUDE "config.inc" (1) 1/ 0 : ;;; -*- asm -*- (1) 2/ 0 : ;;; (1) 3/ 0 : ;;; Universal Monitor 6800 config file (for SBC6800) (1) 4/ 0 : ;;; (1) 5/ 0 : (1) 6/ 0 : ;;; (1) 7/ 0 : ;;; Memory (1) 8/ 0 : ;;; (1) 9/ 0 : (1) 10/ 0 : =$E000 ROM_B: equ $E000 ; ROM begin (1) 11/ 0 : =$FF80 ENTRY: EQU $FF80 ; Entry point (1) 12/ 0 : (1) 13/ 0 : =$C0 WORK_B: equ $00C0 ; WORK area begin (1) 14/ 0 : =$FF STACK: equ $00FF ; Stack end (1) 15/ 0 : (1) 16/ 0 : =$10 BUFLEN: EQU 16 ; Buffer length ( 16 or above ) (1) 17/ 0 : (1) 18/ 0 : ;;; (1) 19/ 0 : ;;; Options (1) 20/ 0 : ;;; (1) 21/ 0 : (1) 22/ 0 : =$1 USE_IDENT = 1 ; CPU Identification (1) 23/ 0 : (1) 24/ 0 : =$1 USE_REGCMD = 1 ; Register related commands (1) 25/ 0 : (1) 26/ 0 : ;;; (1) 27/ 0 : ;;; Motorola MC6850 (1) 28/ 0 : ;;; (1) 29/ 0 : (1) 30/ 0 : =$1 USE_DEV_6850 = 1 (1) 31/ 0 : =>TRUE IF USE_DEV_6850 (1) 32/ 0 : ;; ACIA (1) 33/ 0 : =$8018 ACIAC: equ $8018 ; Control / Status Register (1) 34/ 0 : =$8019 ACIAD: equ $8019 ; Data Register (1) 35/ 0 : [31] ENDIF (1) 36/ 0 : (1) 37/ 0 : ;;; (1) 38/ 0 : ;;; Motorola MC6801/3 (Embedded UART) (1) 39/ 0 : ;;; (1) 40/ 0 : (1) 41/ 0 : =$0 USE_DEV_6801 = 0 (1) 42/ 0 : =>FALSE IF USE_DEV_6801 (1) 43/ 0 : ;; 6801/6803 Internal (1) 44/ 0 : RMCR: EQU $0010 ; Rate and Mode Control Register (1) 45/ 0 : RMCR_V: EQU $05 ; CC[1:0]=01, SS[1:0]=01 (1) 46/ 0 : TRCSR: EQU $0011 ; Transmit/Receive Control and Status Register (1) 47/ 0 : RDR: EQU $0012 ; Receive Data Register (1) 48/ 0 : TDR: EQU $0013 ; Transmit Data Register (1) 49/ 0 : [42] ENDIF (1) 50/ 0 : AS V1.42 Beta [Bld 145] - source file unimon_6800.asm(config.inc) - page 2 - 08/06/19 23:59:03 11/ 0 : 12/ 0 : INCLUDE "../common.inc" (1) 1/ 0 : ;;; -*- asm -*- (1) 2/ 0 : ;;; (1) 3/ 0 : ;;; Common header file (1) 4/ 0 : ;;; (1) 5/ 0 : (1) 6/ 0 : ;;; Constants (1) 7/ 0 : =$D CR: EQU 13 (1) 8/ 0 : =$A LF: EQU 10 (1) 9/ 0 : =$8 BS: EQU 8 (1) 10/ 0 : =$7F DEL: EQU 127 (1) 11/ 0 : (1) 12/ 0 : ;;; Functions (1) 13/ 0 : low function x,(x & 255) ; (1) 14/ 0 : high function x,(x >> 8) (1) 15/ 0 : 13/ 0 : 14/ 0 : ;;; 15/ 0 : ;;; ROM area 16/ 0 : ;;; 17/ 0 : 18/ E000 : ORG ROM_B 19/ E000 : 20/ E000 : CSTART: 21/ E000 : 8E 00 FF LDS #STACK 22/ E003 : BD E7 50 JSR INIT 23/ E006 : 24/ E006 : CE 00 00 LDX #$0000 25/ E009 : DF D0 STX DSADDR 26/ E00B : DF D7 STX SADDR 27/ E00D : DF D5 STX GADDR 28/ E00F : 86 53 LDAA #'S' 29/ E011 : 97 D9 STAA HEXMOD 30/ E013 : 7F 00 DB CLR PSPEC 31/ E016 : =>TRUE IF USE_REGCMD 32/ E016 : 7F 00 DC CLR REGA 33/ E019 : 7F 00 DD CLR REGB 34/ E01C : DF DE STX REGX 35/ E01E : 9F E0 STS REGSP 36/ E020 : DF E2 STX REGPC 37/ E022 : 86 C0 LDAA #$C0 38/ E024 : 97 E4 STAA REGCC 39/ E026 : [31] ENDIF 40/ E026 : 41/ E026 : ;; Opening message 42/ E026 : CE E6 67 LDX #OPNMSG 43/ E029 : BD E5 4C JSR STROUT 44/ E02C : 45/ E02C : ;; CPU identification 46/ E02C : =>TRUE IF USE_IDENT 47/ E02C : CE 55 AA LDX #$55AA 48/ E02F : C6 64 LDAB #100 49/ E031 : 86 05 LDAA #5 50/ E033 : 8B 05 ADDA #5 51/ E035 : 18 FCB $18 ; DAA on 6800, ABA on 6803, XGDX on 6303 52/ E036 : 81 55 CMPA #$55 53/ E038 : 27 1F BEQ ID_6301 54/ E03A : 81 6E CMPA #110 55/ E03C : 27 14 BEQ ID_6801 AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 3 - 08/06/19 23:59:03 56/ E03E : 81 10 CMPA #$10 57/ E040 : 26 25 BNE ID_UK 58/ E042 : 59/ E042 : CE FF FF LDX #$FFFF 60/ E045 : EC 01 FCB $EC,$01 ; CPX $01,X on 6800, ADX $01 on MB8861 61/ E047 : 8C 00 00 CPX #$0000 62/ E04A : 27 14 BEQ ID_8861 63/ E04C : ;; MC6800 64/ E04C : CE E6 D3 LDX #IM6800 65/ E04F : 4F CLRA 66/ E050 : 20 1C BRA IDE 67/ E052 : ;; MC6801/MC6803 68/ E052 : ID_6801: 69/ E052 : CE E6 DC LDX #IM6801 70/ E055 : 86 01 LDAA #$01 71/ E057 : 20 15 BRA IDE 72/ E059 : ;; HD6301/HD6303 73/ E059 : ID_6301: 74/ E059 : CE E6 E5 LDX #IM6301 75/ E05C : 86 03 LDAA #$03 76/ E05E : 20 0E BRA IDE 77/ E060 : ;; MB8861/MB8870 78/ E060 : ID_8861: 79/ E060 : CE E6 EE LDX #IM8861 80/ E063 : 86 04 LDAA #$04 81/ E065 : 20 07 BRA IDE 82/ E067 : ;; Unknown 83/ E067 : ID_UK: 84/ E067 : BD E5 5A JSR HEXOUT2 85/ E06A : CE E6 C9 LDX #IMUK 86/ E06D : 4F CLRA 87/ E06E : IDE: 88/ E06E : 97 DB STAA PSPEC 89/ E070 : BD E5 4C JSR STROUT 90/ E073 : [46] ENDIF 91/ E073 : 92/ E073 : WSTART: 93/ E073 : CE E6 82 LDX #PROMPT 94/ E076 : BD E5 4C JSR STROUT 95/ E079 : BD E5 9F JSR GETLIN 96/ E07C : CE 00 C0 LDX #INBUF 97/ E07F : BD E5 E6 JSR SKIPSP 98/ E082 : BD E5 F0 JSR UPPER 99/ E085 : 4D TSTA 100/ E086 : 27 EB BEQ WSTART 101/ E088 : 81 44 CMPA #'D' 102/ E08A : 26 03 BNE M00 103/ E08C : 7E E0 BA JMP DUMP 104/ E08F : M00: 105/ E08F : 81 47 CMPA #'G' 106/ E091 : 26 03 BNE M01 107/ E093 : 7E E1 D6 JMP GO 108/ E096 : M01: 109/ E096 : 81 53 CMPA #'S' 110/ E098 : 26 03 BNE M02 111/ E09A : 7E E2 09 JMP SETM 112/ E09D : 113/ E09D : M02: 114/ E09D : 81 4C CMPA #'L' 115/ E09F : 26 03 BNE M03 AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 4 - 08/06/19 23:59:03 116/ E0A1 : 7E E2 71 JMP LOADH 117/ E0A4 : M03: 118/ E0A4 : 81 50 CMPA #'P' 119/ E0A6 : 26 03 BNE M04 120/ E0A8 : 7E E3 62 JMP SAVEH 121/ E0AB : 122/ E0AB : M04: 123/ E0AB : =>TRUE IF USE_REGCMD 124/ E0AB : 81 52 CMPA #'R' 125/ E0AD : 26 03 BNE M05 126/ E0AF : 7E E4 73 JMP REG 127/ E0B2 : [123] ENDIF 128/ E0B2 : M05: 129/ E0B2 : ERR: 130/ E0B2 : CE E6 9F LDX #ERRMSG 131/ E0B5 : BD E5 4C JSR STROUT 132/ E0B8 : 20 B9 BRA WSTART 133/ E0BA : 134/ E0BA : ;;; 135/ E0BA : ;;; Dump memory 136/ E0BA : ;;; 137/ E0BA : DUMP: 138/ E0BA : 08 INX 139/ E0BB : BD E5 E6 JSR SKIPSP 140/ E0BE : BD E5 FB JSR RDHEX ; 1st arg. 141/ E0C1 : 5D TSTB 142/ E0C2 : 26 15 BNE DP0 143/ E0C4 : ;; No arg. 144/ E0C4 : BD E5 E6 JSR SKIPSP 145/ E0C7 : A6 00 LDAA ,X 146/ E0C9 : 26 E7 BNE ERR 147/ E0CB : 96 D1 LDAA DSADDR+1 ; DEADDR = DSADDR + 128 148/ E0CD : 8B 80 ADDA #128 149/ E0CF : 97 D3 STAA DEADDR+1 150/ E0D1 : 96 D0 LDAA DSADDR 151/ E0D3 : 89 00 ADCA #0 152/ E0D5 : 97 D2 STAA DEADDR 153/ E0D7 : 20 38 BRA DPM 154/ E0D9 : ;; 1st arg. found 155/ E0D9 : DP0: 156/ E0D9 : 96 E6 LDAA RHVAL+1 ; DSADDR = RHVAL 157/ E0DB : 97 D1 STAA DSADDR+1 158/ E0DD : 96 E5 LDAA RHVAL 159/ E0DF : 97 D0 STAA DSADDR 160/ E0E1 : BD E5 E6 JSR SKIPSP 161/ E0E4 : A6 00 LDAA ,X 162/ E0E6 : 81 2C CMPA #',' 163/ E0E8 : 27 11 BEQ DP1 164/ E0EA : 4D TSTA 165/ E0EB : 26 C5 BNE ERR 166/ E0ED : ;; No 2nd arg. 167/ E0ED : 96 D1 LDAA DSADDR+1 ; DEADDR = DSADDR + 128 168/ E0EF : 8B 80 ADDA #128 169/ E0F1 : 97 D3 STAA DEADDR+1 170/ E0F3 : 96 D0 LDAA DSADDR 171/ E0F5 : 89 00 ADCA #0 172/ E0F7 : 97 D2 STAA DEADDR 173/ E0F9 : 20 16 BRA DPM 174/ E0FB : ;; 175/ E0FB : DP1: AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 5 - 08/06/19 23:59:03 176/ E0FB : 08 INX 177/ E0FC : BD E5 E6 JSR SKIPSP 178/ E0FF : BD E5 FB JSR RDHEX 179/ E102 : BD E5 E6 JSR SKIPSP 180/ E105 : 5D TSTB 181/ E106 : 27 AA BEQ ERR 182/ E108 : 6D 00 TST ,X 183/ E10A : 26 A6 BNE ERR 184/ E10C : DE E5 LDX RHVAL 185/ E10E : 08 INX 186/ E10F : DF D2 STX DEADDR 187/ E111 : ;; DUMP main 188/ E111 : DPM: 189/ E111 : 96 D1 LDAA DSADDR+1 190/ E113 : 84 F0 ANDA #$F0 191/ E115 : 97 E8 STAA DMPPT+1 192/ E117 : 96 D0 LDAA DSADDR 193/ E119 : 97 E7 STAA DMPPT 194/ E11B : 7F 00 D4 CLR DSTATE 195/ E11E : DPM0: 196/ E11E : 8D 21 BSR DPL 197/ E120 : ;; DMPPT already incremented during DPB 198/ E120 : ;; Do not need to +16 here 199/ E120 : BD E7 68 JSR CONST 200/ E123 : 26 11 BNE DPM1 201/ E125 : 96 D4 LDAA DSTATE 202/ E127 : 81 02 CMPA #2 203/ E129 : 25 F3 BCS DPM0 204/ E12B : 96 D3 LDAA DEADDR+1 205/ E12D : 97 D1 STAA DSADDR+1 206/ E12F : 96 D2 LDAA DEADDR 207/ E131 : 97 D0 STAA DSADDR 208/ E133 : 7E E0 73 JMP WSTART 209/ E136 : DPM1: 210/ E136 : 96 E8 LDAA DMPPT+1 211/ E138 : 97 D1 STAA DSADDR+1 212/ E13A : 96 E7 LDAA DMPPT 213/ E13C : 97 D0 STAA DSADDR 214/ E13E : 7E E0 73 JMP WSTART 215/ E141 : 216/ E141 : ;; Dump line 217/ E141 : DPL: 218/ E141 : 96 E7 LDAA DMPPT 219/ E143 : D6 E8 LDAB DMPPT+1 220/ E145 : BD E5 57 JSR HEXOUT4 221/ E148 : CE E6 A7 LDX #DSEP0 222/ E14B : BD E5 4C JSR STROUT 223/ E14E : CE 00 C0 LDX #INBUF 224/ E151 : DF E9 STX ASCPT 225/ E153 : C6 10 LDAB #16 226/ E155 : DPL0: 227/ E155 : 8D 29 BSR DPB 228/ E157 : 5A DECB 229/ E158 : 26 FB BNE DPL0 230/ E15A : 231/ E15A : CE E6 AA LDX #DSEP1 232/ E15D : BD E5 4C JSR STROUT 233/ E160 : 234/ E160 : ;; Print ASCII area 235/ E160 : CE 00 C0 LDX #INBUF AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 6 - 08/06/19 23:59:03 236/ E163 : C6 10 LDAB #16 237/ E165 : DPL1: 238/ E165 : A6 00 LDAA ,X 239/ E167 : 08 INX 240/ E168 : 81 20 CMPA #' ' 241/ E16A : 25 09 BCS DPL2 242/ E16C : 81 7F CMPA #$7F 243/ E16E : 24 05 BCC DPL2 244/ E170 : BD E7 6E JSR CONOUT 245/ E173 : 20 05 BRA DPL3 246/ E175 : DPL2: 247/ E175 : 86 2E LDAA #'.' 248/ E177 : BD E7 6E JSR CONOUT 249/ E17A : DPL3: 250/ E17A : 5A DECB 251/ E17B : 26 E8 BNE DPL1 252/ E17D : 7E E5 95 JMP CRLF 253/ E180 : 254/ E180 : ;; Dump byte 255/ E180 : DPB: 256/ E180 : 86 20 LDAA #' ' 257/ E182 : BD E7 6E JSR CONOUT 258/ E185 : 96 D4 LDAA DSTATE 259/ E187 : 26 25 BNE DPB2 260/ E189 : ;; Dump state 0 261/ E189 : 96 D0 LDAA DSADDR 262/ E18B : 91 E7 CMPA DMPPT 263/ E18D : 26 06 BNE DPB0 264/ E18F : 96 D1 LDAA DSADDR+1 265/ E191 : 91 E8 CMPA DMPPT+1 266/ E193 : 27 15 BEQ DPB1 267/ E195 : ;; Still 0 or 2 268/ E195 : DPB0: 269/ E195 : 86 20 LDAA #' ' 270/ E197 : BD E7 6E JSR CONOUT 271/ E19A : BD E7 6E JSR CONOUT 272/ E19D : DE E9 LDX ASCPT 273/ E19F : A7 00 STAA ,X 274/ E1A1 : 08 INX 275/ E1A2 : DF E9 STX ASCPT 276/ E1A4 : DE E7 LDX DMPPT 277/ E1A6 : 08 INX 278/ E1A7 : DF E7 STX DMPPT 279/ E1A9 : 39 RTS 280/ E1AA : ;; Found start address 281/ E1AA : DPB1: 282/ E1AA : 86 01 LDAA #1 283/ E1AC : 97 D4 STAA DSTATE 284/ E1AE : DPB2: 285/ E1AE : 96 D4 LDAA DSTATE 286/ E1B0 : 81 01 CMPA #1 287/ E1B2 : 26 E1 BNE DPB0 288/ E1B4 : ;; Dump state 1 289/ E1B4 : DE E7 LDX DMPPT 290/ E1B6 : A6 00 LDAA ,X 291/ E1B8 : 08 INX 292/ E1B9 : DF E7 STX DMPPT 293/ E1BB : DE E9 LDX ASCPT 294/ E1BD : A7 00 STAA ,X 295/ E1BF : 08 INX AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 7 - 08/06/19 23:59:03 296/ E1C0 : DF E9 STX ASCPT 297/ E1C2 : BD E5 5A JSR HEXOUT2 298/ E1C5 : 96 D2 LDAA DEADDR 299/ E1C7 : 91 E7 CMPA DMPPT 300/ E1C9 : 26 0A BNE DPBE 301/ E1CB : 96 D3 LDAA DEADDR+1 302/ E1CD : 91 E8 CMPA DMPPT+1 303/ E1CF : 26 04 BNE DPBE 304/ E1D1 : 86 02 LDAA #2 305/ E1D3 : 97 D4 STAA DSTATE 306/ E1D5 : DPBE: 307/ E1D5 : 39 RTS 308/ E1D6 : 309/ E1D6 : ;;; 310/ E1D6 : ;;; Go address 311/ E1D6 : ;;; 312/ E1D6 : GO: 313/ E1D6 : 08 INX 314/ E1D7 : BD E5 E6 JSR SKIPSP 315/ E1DA : BD E5 FB JSR RDHEX 316/ E1DD : A6 00 LDAA ,X 317/ E1DF : 27 03 BEQ GO0 318/ E1E1 : 7E E0 B2 JMP ERR 319/ E1E4 : GO0: 320/ E1E4 : 5D TSTB 321/ E1E5 : 27 04 BEQ G0 322/ E1E7 : DE E5 LDX RHVAL 323/ E1E9 : =>TRUE IF USE_REGCMD 324/ E1E9 : DF E2 STX REGPC 325/ E1EB : G0: 326/ E1EB : 96 E0 LDAA REGSP 327/ E1ED : 9A E1 ORAA REGSP+1 328/ E1EF : 27 02 BEQ GO1 329/ E1F1 : 9E E0 LDS REGSP 330/ E1F3 : GO1: 331/ E1F3 : 96 E3 LDAA REGPC+1 332/ E1F5 : 36 PSHA ; PC(L) 333/ E1F6 : 96 E2 LDAA REGPC 334/ E1F8 : 36 PSHA ; PC(H) 335/ E1F9 : 96 DF LDAA REGX+1 336/ E1FB : 36 PSHA ; X(L) 337/ E1FC : 96 DE LDAA REGX 338/ E1FE : 36 PSHA ; X(H) 339/ E1FF : 96 DC LDAA REGA 340/ E201 : 36 PSHA ; A 341/ E202 : 96 DD LDAA REGB 342/ E204 : 36 PSHA ; B 343/ E205 : 96 E4 LDAA REGCC 344/ E207 : 36 PSHA ; CC 345/ E208 : 3B RTI 346/ E209 : =>FALSE ELSE 347/ E209 : STX GADDR 348/ E209 : G0: 349/ E209 : LDX GADDR 350/ E209 : JMP ,X 351/ E209 : [323] ENDIF 352/ E209 : 353/ E209 : ;;; 354/ E209 : ;;; Set memory 355/ E209 : ;;; AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 8 - 08/06/19 23:59:03 356/ E209 : SETM: 357/ E209 : 08 INX 358/ E20A : BD E5 E6 JSR SKIPSP 359/ E20D : BD E5 FB JSR RDHEX 360/ E210 : BD E5 E6 JSR SKIPSP 361/ E213 : 6D 00 TST ,X 362/ E215 : 26 57 BNE SMER 363/ E217 : 5D TSTB 364/ E218 : 27 04 BEQ SM1 365/ E21A : DE E5 LDX RHVAL 366/ E21C : DF D7 STX SADDR 367/ E21E : SM1: 368/ E21E : 96 D7 LDAA SADDR 369/ E220 : D6 D8 LDAB SADDR+1 370/ E222 : BD E5 57 JSR HEXOUT4 371/ E225 : CE E6 AA LDX #DSEP1 372/ E228 : BD E5 4C JSR STROUT 373/ E22B : DE D7 LDX SADDR 374/ E22D : A6 00 LDAA ,X 375/ E22F : BD E5 5A JSR HEXOUT2 376/ E232 : 86 20 LDAA #' ' 377/ E234 : BD E7 6E JSR CONOUT 378/ E237 : BD E5 9F JSR GETLIN 379/ E23A : CE 00 C0 LDX #INBUF 380/ E23D : BD E5 E6 JSR SKIPSP 381/ E240 : A6 00 LDAA ,X 382/ E242 : 26 07 BNE SM2 383/ E244 : ;; Empty (Increment address) 384/ E244 : DE D7 LDX SADDR 385/ E246 : 08 INX 386/ E247 : DF D7 STX SADDR 387/ E249 : 20 D3 BRA SM1 388/ E24B : SM2: 389/ E24B : 81 2D CMPA #'-' 390/ E24D : 26 07 BNE SM3 391/ E24F : ;; '-' (Decrement address) 392/ E24F : DE D7 LDX SADDR 393/ E251 : 09 DEX 394/ E252 : DF D7 STX SADDR 395/ E254 : 20 C8 BRA SM1 396/ E256 : SM3: 397/ E256 : 81 2E CMPA #'.' 398/ E258 : 26 03 BNE SM4 399/ E25A : ;; '.' (Quit) 400/ E25A : 7E E0 73 JMP WSTART 401/ E25D : SM4: 402/ E25D : BD E5 FB JSR RDHEX 403/ E260 : 5D TSTB 404/ E261 : 27 0B BEQ SMER 405/ E263 : DE D7 LDX SADDR 406/ E265 : 96 E6 LDAA RHVAL+1 407/ E267 : A7 00 STAA ,X 408/ E269 : 08 INX 409/ E26A : DF D7 STX SADDR 410/ E26C : 20 B0 BRA SM1 411/ E26E : SMER: 412/ E26E : 7E E0 B2 JMP ERR 413/ E271 : 414/ E271 : ;;; 415/ E271 : ;;; LOAD HEX file AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 9 - 08/06/19 23:59:03 416/ E271 : ;;; 417/ E271 : LOADH: 418/ E271 : 08 INX 419/ E272 : BD E5 E6 JSR SKIPSP 420/ E275 : BD E5 FB JSR RDHEX 421/ E278 : BD E5 E6 JSR SKIPSP 422/ E27B : 6D 00 TST ,X 423/ E27D : 26 EF BNE SMER 424/ E27F : 425/ E27F : ;;TSTB 426/ E27F : ;;BNE LH0 427/ E27F : 428/ E27F : ;;CLR RHVAL 429/ E27F : ;;CLR RHVAL+1 430/ E27F : LH0: 431/ E27F : BD E7 5D JSR CONIN 432/ E282 : BD E5 F0 JSR UPPER 433/ E285 : 81 53 CMPA #'S' 434/ E287 : 27 6F BEQ LHS0 435/ E289 : LH1: 436/ E289 : 81 3A CMPA #':' 437/ E28B : 27 0D BEQ LHI0 438/ E28D : LH2: 439/ E28D : ;; Skip to EOL 440/ E28D : 81 0D CMPA #CR 441/ E28F : 27 EE BEQ LH0 442/ E291 : 81 0A CMPA #LF 443/ E293 : 27 EA BEQ LH0 444/ E295 : LH3: 445/ E295 : BD E7 5D JSR CONIN 446/ E298 : 20 F3 BRA LH2 447/ E29A : 448/ E29A : LHI0: 449/ E29A : BD E5 6F JSR HEXIN 450/ E29D : 97 EB STAA CKSUM 451/ E29F : 16 TAB ; Length 452/ E2A0 : 453/ E2A0 : BD E5 6F JSR HEXIN 454/ E2A3 : 97 E7 STAA DMPPT ; Address H 455/ E2A5 : 9B EB ADDA CKSUM 456/ E2A7 : 97 EB STAA CKSUM 457/ E2A9 : 458/ E2A9 : BD E5 6F JSR HEXIN 459/ E2AC : 97 E8 STAA DMPPT+1 ; Address L 460/ E2AE : 9B EB ADDA CKSUM 461/ E2B0 : 97 EB STAA CKSUM 462/ E2B2 : 463/ E2B2 : ;; Add offset 464/ E2B2 : 96 E8 LDAA DMPPT+1 465/ E2B4 : 9B E6 ADDA RHVAL+1 466/ E2B6 : 97 E8 STAA DMPPT+1 467/ E2B8 : 96 E7 LDAA DMPPT 468/ E2BA : 99 E5 ADCA RHVAL 469/ E2BC : 97 E7 STAA DMPPT 470/ E2BE : DE E7 LDX DMPPT 471/ E2C0 : 472/ E2C0 : BD E5 6F JSR HEXIN 473/ E2C3 : 97 DA STAA RECTYP 474/ E2C5 : 9B EB ADDA CKSUM 475/ E2C7 : 97 EB STAA CKSUM AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 10 - 08/06/19 23:59:03 476/ E2C9 : 477/ E2C9 : 5D TSTB 478/ E2CA : 27 14 BEQ LHI3 479/ E2CC : LHI1: 480/ E2CC : BD E5 6F JSR HEXIN 481/ E2CF : 36 PSHA 482/ E2D0 : 9B EB ADDA CKSUM 483/ E2D2 : 97 EB STAA CKSUM 484/ E2D4 : 32 PULA 485/ E2D5 : 486/ E2D5 : 7D 00 DA TST RECTYP 487/ E2D8 : 26 03 BNE LHI2 488/ E2DA : 489/ E2DA : A7 00 STAA ,X 490/ E2DC : 08 INX 491/ E2DD : LHI2: 492/ E2DD : 5A DECB 493/ E2DE : 26 EC BNE LHI1 494/ E2E0 : LHI3: 495/ E2E0 : BD E5 6F JSR HEXIN 496/ E2E3 : 9B EB ADDA CKSUM 497/ E2E5 : 26 08 BNE LHIE ; Checksum error 498/ E2E7 : 7D 00 DA TST RECTYP 499/ E2EA : 27 A9 BEQ LH3 500/ E2EC : 7E E0 73 JMP WSTART 501/ E2EF : LHIE: 502/ E2EF : CE E6 85 LDX #IHEMSG 503/ E2F2 : BD E5 4C JSR STROUT 504/ E2F5 : 7E E0 73 JMP WSTART 505/ E2F8 : 506/ E2F8 : LHS0: 507/ E2F8 : BD E7 5D JSR CONIN 508/ E2FB : 97 DA STAA RECTYP ; Record type 509/ E2FD : 510/ E2FD : BD E5 6F JSR HEXIN 511/ E300 : 16 TAB ; B = Length+3 512/ E301 : 97 EB STAA CKSUM 513/ E303 : 514/ E303 : BD E5 6F JSR HEXIN 515/ E306 : 97 E7 STAA DMPPT ; Address H 516/ E308 : 9B EB ADDA CKSUM 517/ E30A : 97 EB STAA CKSUM 518/ E30C : 519/ E30C : BD E5 6F JSR HEXIN 520/ E30F : 97 E8 STAA DMPPT+1 ; Address L 521/ E311 : 9B EB ADDA CKSUM 522/ E313 : 97 EB STAA CKSUM 523/ E315 : 524/ E315 : ;; Add offset 525/ E315 : 96 E8 LDAA DMPPT+1 526/ E317 : 9B E6 ADDA RHVAL+1 527/ E319 : 97 E8 STAA DMPPT+1 528/ E31B : 96 E7 LDAA DMPPT 529/ E31D : 99 E5 ADCA RHVAL 530/ E31F : 97 E7 STAA DMPPT 531/ E321 : DE E7 LDX DMPPT 532/ E323 : 533/ E323 : C0 03 SUBB #3 534/ E325 : 27 18 BEQ LHS3 535/ E327 : LHS1: AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 11 - 08/06/19 23:59:03 536/ E327 : BD E5 6F JSR HEXIN 537/ E32A : 36 PSHA 538/ E32B : 9B EB ADDA CKSUM 539/ E32D : 97 EB STAA CKSUM ; Checksum 540/ E32F : 541/ E32F : 96 DA LDAA RECTYP 542/ E331 : 81 31 CMPA #'1' 543/ E333 : 26 06 BNE LHS2 544/ E335 : 545/ E335 : 32 PULA 546/ E336 : A7 00 STAA ,X 547/ E338 : 08 INX 548/ E339 : 20 01 BRA LHS20 549/ E33B : LHS2: 550/ E33B : 32 PULA 551/ E33C : LHS20: 552/ E33C : 5A DECB 553/ E33D : 26 E8 BNE LHS1 554/ E33F : LHS3: 555/ E33F : BD E5 6F JSR HEXIN 556/ E342 : 9B EB ADDA CKSUM 557/ E344 : 81 FF CMPA #$FF 558/ E346 : 26 11 BNE LHSE ; Checksum error 559/ E348 : 560/ E348 : 96 DA LDAA RECTYP 561/ E34A : 81 37 CMPA #'7' 562/ E34C : 27 11 BEQ LHSR 563/ E34E : 81 38 CMPA #'8' 564/ E350 : 27 0D BEQ LHSR 565/ E352 : 81 39 CMPA #'9' 566/ E354 : 27 09 BEQ LHSR 567/ E356 : 7E E2 95 JMP LH3 568/ E359 : LHSE: 569/ E359 : CE E6 92 LDX #SHEMSG 570/ E35C : BD E5 4C JSR STROUT 571/ E35F : LHSR: 572/ E35F : 7E E0 73 JMP WSTART 573/ E362 : 574/ E362 : ;;; 575/ E362 : ;;; SAVE HEX file 576/ E362 : ;;; 577/ E362 : SAVEH: 578/ E362 : 08 INX 579/ E363 : A6 00 LDAA ,X 580/ E365 : BD E5 F0 JSR UPPER 581/ E368 : 81 49 CMPA #'I' 582/ E36A : 27 04 BEQ SH0 583/ E36C : 81 53 CMPA #'S' 584/ E36E : 26 03 BNE SH1 585/ E370 : SH0: 586/ E370 : 08 INX 587/ E371 : 97 D9 STAA HEXMOD 588/ E373 : SH1: 589/ E373 : BD E5 E6 JSR SKIPSP 590/ E376 : BD E5 FB JSR RDHEX 591/ E379 : 5D TSTB 592/ E37A : 27 22 BEQ SHE 593/ E37C : 96 E5 LDAA RHVAL 594/ E37E : 97 E9 STAA ASCPT 595/ E380 : 96 E6 LDAA RHVAL+1 AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 12 - 08/06/19 23:59:03 596/ E382 : 97 EA STAA ASCPT+1 ; (ASCPT) = Start address 597/ E384 : BD E5 E6 JSR SKIPSP 598/ E387 : A6 00 LDAA ,X 599/ E389 : 81 2C CMPA #',' 600/ E38B : 26 11 BNE SHE 601/ E38D : 08 INX 602/ E38E : BD E5 E6 JSR SKIPSP 603/ E391 : BD E5 FB JSR RDHEX ; (RHVAL) = End address 604/ E394 : 5D TSTB 605/ E395 : 27 07 BEQ SHE 606/ E397 : BD E5 E6 JSR SKIPSP 607/ E39A : 6D 00 TST ,X 608/ E39C : 27 03 BEQ SH2 609/ E39E : SHE: 610/ E39E : 7E E0 B2 JMP ERR 611/ E3A1 : 612/ E3A1 : SH2: 613/ E3A1 : DE E5 LDX RHVAL 614/ E3A3 : 08 INX 615/ E3A4 : DF E5 STX RHVAL 616/ E3A6 : 96 E6 LDAA RHVAL+1 617/ E3A8 : 90 EA SUBA ASCPT+1 618/ E3AA : 97 E6 STAA RHVAL+1 619/ E3AC : 96 E5 LDAA RHVAL 620/ E3AE : 92 E9 SBCA ASCPT 621/ E3B0 : 97 E5 STAA RHVAL ; (RHVAL) = Length 622/ E3B2 : DE E9 LDX ASCPT ; IX = Start address 623/ E3B4 : SH3: 624/ E3B4 : 8D 1E BSR SHL 625/ E3B6 : 96 E5 LDAA RHVAL 626/ E3B8 : 9A E6 ORAA RHVAL+1 627/ E3BA : 26 F8 BNE SH3 628/ E3BC : 629/ E3BC : 96 D9 LDAA HEXMOD 630/ E3BE : 81 49 CMPA #'I' 631/ E3C0 : 26 09 BNE SH4 632/ E3C2 : ;; End record for Intel HEX 633/ E3C2 : CE E6 AE LDX #IHEXER 634/ E3C5 : BD E5 4C JSR STROUT 635/ E3C8 : 7E E0 73 JMP WSTART 636/ E3CB : SH4: 637/ E3CB : ;; End record for Motorola S record 638/ E3CB : CE E6 BC LDX #SRECER 639/ E3CE : BD E5 4C JSR STROUT 640/ E3D1 : 7E E0 73 JMP WSTART 641/ E3D4 : 642/ E3D4 : SHL: 643/ E3D4 : C6 10 LDAB #16 644/ E3D6 : 7D 00 E5 TST RHVAL 645/ E3D9 : 26 06 BNE SHL0 646/ E3DB : 96 E6 LDAA RHVAL+1 ; Length L 647/ E3DD : 11 CBA ; (A - B) 648/ E3DE : 24 01 BCC SHL0 649/ E3E0 : 16 TAB ; B = A 650/ E3E1 : SHL0: 651/ E3E1 : 96 E6 LDAA RHVAL+1 652/ E3E3 : 10 SBA 653/ E3E4 : 97 E6 STAA RHVAL+1 654/ E3E6 : 96 E5 LDAA RHVAL 655/ E3E8 : 82 00 SBCA #0 AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 13 - 08/06/19 23:59:03 656/ E3EA : 97 E5 STAA RHVAL 657/ E3EC : 658/ E3EC : 96 D9 LDAA HEXMOD 659/ E3EE : 81 49 CMPA #'I' 660/ E3F0 : 26 3F BNE SHLS 661/ E3F2 : 662/ E3F2 : SHLI: 663/ E3F2 : ;; Intel HEX 664/ E3F2 : 86 3A LDAA #':' 665/ E3F4 : BD E7 6E JSR CONOUT 666/ E3F7 : 667/ E3F7 : 17 TBA 668/ E3F8 : BD E5 5A JSR HEXOUT2 ; Length 669/ E3FB : D7 EB STAB CKSUM ; Checksum 670/ E3FD : 671/ E3FD : DF E9 STX ASCPT 672/ E3FF : 96 E9 LDAA ASCPT ; Address H 673/ E401 : BD E5 5A JSR HEXOUT2 674/ E404 : 96 E9 LDAA ASCPT 675/ E406 : 9B EB ADDA CKSUM 676/ E408 : 97 EB STAA CKSUM 677/ E40A : 678/ E40A : 96 EA LDAA ASCPT+1 ; Address L 679/ E40C : BD E5 5A JSR HEXOUT2 680/ E40F : 96 EA LDAA ASCPT+1 681/ E411 : 9B EB ADDA CKSUM 682/ E413 : 97 EB STAA CKSUM 683/ E415 : 684/ E415 : 4F CLRA 685/ E416 : BD E5 5A JSR HEXOUT2 ; Record type 686/ E419 : SHLI0: 687/ E419 : A6 00 LDAA ,X 688/ E41B : 36 PSHA 689/ E41C : BD E5 5A JSR HEXOUT2 ; Data 690/ E41F : 32 PULA 691/ E420 : 9B EB ADDA CKSUM 692/ E422 : 97 EB STAA CKSUM 693/ E424 : 694/ E424 : 08 INX 695/ E425 : 5A DECB 696/ E426 : 26 F1 BNE SHLI0 697/ E428 : 698/ E428 : 96 EB LDAA CKSUM 699/ E42A : 40 NEGA 700/ E42B : BD E5 5A JSR HEXOUT2 701/ E42E : 7E E5 95 JMP CRLF 702/ E431 : 703/ E431 : SHLS: 704/ E431 : ;; Motorola S record 705/ E431 : 86 53 LDAA #'S' 706/ E433 : BD E7 6E JSR CONOUT 707/ E436 : 86 31 LDAA #'1' 708/ E438 : BD E7 6E JSR CONOUT 709/ E43B : 710/ E43B : 17 TBA 711/ E43C : 8B 03 ADDA #2+1 ; DataLength + Addr(2) + Sum(1) 712/ E43E : 97 EB STAA CKSUM 713/ E440 : BD E5 5A JSR HEXOUT2 714/ E443 : 715/ E443 : DF E9 STX ASCPT AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 14 - 08/06/19 23:59:03 716/ E445 : 96 E9 LDAA ASCPT 717/ E447 : BD E5 5A JSR HEXOUT2 ; Address H 718/ E44A : 96 E9 LDAA ASCPT 719/ E44C : 9B EB ADDA CKSUM 720/ E44E : 97 EB STAA CKSUM 721/ E450 : 722/ E450 : 96 EA LDAA ASCPT+1 723/ E452 : BD E5 5A JSR HEXOUT2 ; Address L 724/ E455 : 96 EA LDAA ASCPT+1 725/ E457 : 9B EB ADDA CKSUM 726/ E459 : 97 EB STAA CKSUM 727/ E45B : SHLS0: 728/ E45B : A6 00 LDAA ,X 729/ E45D : 36 PSHA 730/ E45E : BD E5 5A JSR HEXOUT2 ; Data 731/ E461 : 32 PULA 732/ E462 : 9B EB ADDA CKSUM 733/ E464 : 97 EB STAA CKSUM 734/ E466 : 735/ E466 : 08 INX 736/ E467 : 5A DECB 737/ E468 : 26 F1 BNE SHLS0 738/ E46A : 739/ E46A : 96 EB LDAA CKSUM 740/ E46C : 43 COMA 741/ E46D : BD E5 5A JSR HEXOUT2 ; Checksum 742/ E470 : 7E E5 95 JMP CRLF 743/ E473 : 744/ E473 : ;;; 745/ E473 : ;;; Register 746/ E473 : ;;; 747/ E473 : =>TRUE IF USE_REGCMD 748/ E473 : REG: 749/ E473 : 08 INX 750/ E474 : BD E5 E6 JSR SKIPSP 751/ E477 : BD E5 F0 JSR UPPER 752/ E47A : 4D TSTA 753/ E47B : 26 06 BNE RG0 754/ E47D : BD E5 01 JSR RDUMP 755/ E480 : 7E E0 73 JMP WSTART 756/ E483 : RG0: 757/ E483 : DF E7 STX DMPPT 758/ E485 : CE E7 18 LDX #RNTAB 759/ E488 : RG1: 760/ E488 : 6D 00 TST ,X 761/ E48A : 27 72 BEQ RGE 762/ E48C : A1 00 CMPA ,X 763/ E48E : 27 08 BEQ RG2 764/ E490 : 08 INX 765/ E491 : 08 INX 766/ E492 : 08 INX 767/ E493 : 08 INX 768/ E494 : 08 INX 769/ E495 : 08 INX 770/ E496 : 20 F0 BRA RG1 771/ E498 : RG2: 772/ E498 : DF E9 STX ASCPT 773/ E49A : DE E7 LDX DMPPT 774/ E49C : 08 INX 775/ E49D : BD E5 E6 JSR SKIPSP AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 15 - 08/06/19 23:59:03 776/ E4A0 : 6D 00 TST ,X 777/ E4A2 : 26 5A BNE RGE 778/ E4A4 : DE E9 LDX ASCPT 779/ E4A6 : EE 04 LDX 4,X 780/ E4A8 : BD E5 4C JSR STROUT 781/ E4AB : 86 3D LDAA #'=' 782/ E4AD : BD E7 6E JSR CONOUT 783/ E4B0 : DE E9 LDX ASCPT 784/ E4B2 : E6 01 LDAB 1,X 785/ E4B4 : EE 02 LDX 2,X 786/ E4B6 : C1 01 CMPB #1 787/ E4B8 : 26 07 BNE RG3 788/ E4BA : ;; 8 bit register 789/ E4BA : A6 00 LDAA ,X 790/ E4BC : BD E5 5A JSR HEXOUT2 791/ E4BF : 20 0A BRA RG4 792/ E4C1 : RG3: 793/ E4C1 : ;; 16 bit register 794/ E4C1 : A6 00 LDAA ,X 795/ E4C3 : BD E5 5A JSR HEXOUT2 796/ E4C6 : A6 01 LDAA 1,X 797/ E4C8 : BD E5 5A JSR HEXOUT2 798/ E4CB : RG4: 799/ E4CB : 86 20 LDAA #' ' 800/ E4CD : BD E7 6E JSR CONOUT 801/ E4D0 : BD E5 9F JSR GETLIN 802/ E4D3 : CE 00 C0 LDX #INBUF 803/ E4D6 : BD E5 E6 JSR SKIPSP 804/ E4D9 : A6 00 LDAA ,X 805/ E4DB : 27 1E BEQ RGR 806/ E4DD : BD E5 FB JSR RDHEX 807/ E4E0 : 5D TSTB 808/ E4E1 : 27 1B BEQ RGE 809/ E4E3 : DE E9 LDX ASCPT 810/ E4E5 : E6 01 LDAB 1,X 811/ E4E7 : EE 02 LDX 2,X 812/ E4E9 : C1 01 CMPB #1 813/ E4EB : 26 06 BNE RG5 814/ E4ED : ;; 8 bit register 815/ E4ED : 96 E6 LDAA RHVAL+1 816/ E4EF : A7 00 STAA ,X 817/ E4F1 : 20 08 BRA RG6 818/ E4F3 : RG5: 819/ E4F3 : ;; 16 bit register 820/ E4F3 : 96 E5 LDAA RHVAL 821/ E4F5 : A7 00 STAA ,X 822/ E4F7 : 96 E6 LDAA RHVAL+1 823/ E4F9 : A7 01 STAA 1,X 824/ E4FB : RG6: 825/ E4FB : RGR: 826/ E4FB : 7E E0 73 JMP WSTART 827/ E4FE : RGE: 828/ E4FE : 7E E0 B2 JMP ERR 829/ E501 : 830/ E501 : RDUMP: 831/ E501 : CE E6 FD LDX #RDSA 832/ E504 : BD E5 4C JSR STROUT 833/ E507 : 96 DC LDAA REGA 834/ E509 : BD E5 5A JSR HEXOUT2 835/ E50C : AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 16 - 08/06/19 23:59:03 836/ E50C : CE E7 00 LDX #RDSB 837/ E50F : BD E5 4C JSR STROUT 838/ E512 : 96 DD LDAA REGB 839/ E514 : BD E5 5A JSR HEXOUT2 840/ E517 : 841/ E517 : CE E7 04 LDX #RDSX 842/ E51A : BD E5 4C JSR STROUT 843/ E51D : 96 DE LDAA REGX 844/ E51F : D6 DF LDAB REGX+1 845/ E521 : BD E5 57 JSR HEXOUT4 846/ E524 : 847/ E524 : CE E7 08 LDX #RDSSP 848/ E527 : BD E5 4C JSR STROUT 849/ E52A : 96 E0 LDAA REGSP 850/ E52C : D6 E1 LDAB REGSP+1 851/ E52E : BD E5 57 JSR HEXOUT4 852/ E531 : 853/ E531 : CE E7 0D LDX #RDSPC 854/ E534 : BD E5 4C JSR STROUT 855/ E537 : 96 E2 LDAA REGPC 856/ E539 : D6 E3 LDAB REGPC+1 857/ E53B : BD E5 57 JSR HEXOUT4 858/ E53E : 859/ E53E : CE E7 12 LDX #RDSCC 860/ E541 : BD E5 4C JSR STROUT 861/ E544 : 96 E4 LDAA REGCC 862/ E546 : BD E5 5A JSR HEXOUT2 863/ E549 : 864/ E549 : 7E E5 95 JMP CRLF 865/ E54C : [747] ENDIF 866/ E54C : 867/ E54C : ;;; 868/ E54C : ;;; Other support routines 869/ E54C : ;;; 870/ E54C : 871/ E54C : STROUT: 872/ E54C : A6 00 LDAA 0,X 873/ E54E : 27 06 BEQ STROE 874/ E550 : BD E7 6E JSR CONOUT 875/ E553 : 08 INX 876/ E554 : 20 F6 BRA STROUT 877/ E556 : STROE: 878/ E556 : 39 RTS 879/ E557 : 880/ E557 : HEXOUT4: 881/ E557 : 8D 01 BSR HEXOUT2 882/ E559 : 17 TBA 883/ E55A : HEXOUT2: 884/ E55A : 36 PSHA 885/ E55B : 44 LSRA 886/ E55C : 44 LSRA 887/ E55D : 44 LSRA 888/ E55E : 44 LSRA 889/ E55F : 8D 01 BSR HEXOUT1 890/ E561 : 32 PULA 891/ E562 : HEXOUT1: 892/ E562 : 84 0F ANDA #$0F 893/ E564 : 8B 30 ADDA #'0' 894/ E566 : 81 3A CMPA #'9'+1 895/ E568 : 25 02 BCS HEXOUTE AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 17 - 08/06/19 23:59:03 896/ E56A : 8B 07 ADDA #'A'-'9'-1 897/ E56C : HEXOUTE: 898/ E56C : 7E E7 6E JMP CONOUT 899/ E56F : 900/ E56F : HEXIN: 901/ E56F : 4F CLRA 902/ E570 : 8D 04 BSR HI0 903/ E572 : 48 ASLA 904/ E573 : 48 ASLA 905/ E574 : 48 ASLA 906/ E575 : 48 ASLA 907/ E576 : HI0: 908/ E576 : 37 PSHB 909/ E577 : 16 TAB 910/ E578 : BD E7 5D JSR CONIN 911/ E57B : BD E5 F0 JSR UPPER 912/ E57E : 81 30 CMPA #'0' 913/ E580 : 25 11 BCS HIR 914/ E582 : 81 3A CMPA #'9'+1 915/ E584 : 25 0A BCS HI1 916/ E586 : 81 41 CMPA #'A' 917/ E588 : 25 09 BCS HIR 918/ E58A : 81 47 CMPA #'F'+1 919/ E58C : 24 05 BCC HIR 920/ E58E : 80 07 SUBA #'A'-'9'-1 921/ E590 : HI1: 922/ E590 : 80 30 SUBA #'0' 923/ E592 : 1B ABA 924/ E593 : HIR: 925/ E593 : 33 PULB 926/ E594 : 39 RTS 927/ E595 : 928/ E595 : CRLF: 929/ E595 : 86 0D LDAA #CR 930/ E597 : BD E7 6E JSR CONOUT 931/ E59A : 86 0A LDAA #LF 932/ E59C : 7E E7 6E JMP CONOUT 933/ E59F : 934/ E59F : GETLIN: 935/ E59F : CE 00 C0 LDX #INBUF 936/ E5A2 : 5F CLRB 937/ E5A3 : GL0: 938/ E5A3 : BD E7 5D JSR CONIN 939/ E5A6 : 81 0D CMPA #CR 940/ E5A8 : 27 37 BEQ GLE 941/ E5AA : 81 0A CMPA #LF 942/ E5AC : 27 33 BEQ GLE 943/ E5AE : 81 08 CMPA #BS 944/ E5B0 : 27 19 BEQ GLB 945/ E5B2 : 81 7F CMPA #DEL 946/ E5B4 : 27 15 BEQ GLB 947/ E5B6 : 81 20 CMPA #' ' 948/ E5B8 : 25 E9 BCS GL0 949/ E5BA : 81 80 CMPA #$80 950/ E5BC : 24 E5 BCC GL0 951/ E5BE : C1 0F CMPB #BUFLEN-1 952/ E5C0 : 24 E1 BCC GL0 ; Too long 953/ E5C2 : 5C INCB 954/ E5C3 : A7 00 STAA 0,X 955/ E5C5 : 08 INX AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 18 - 08/06/19 23:59:03 956/ E5C6 : BD E7 6E JSR CONOUT 957/ E5C9 : 20 D8 BRA GL0 958/ E5CB : GLB: 959/ E5CB : 5D TSTB 960/ E5CC : 27 D5 BEQ GL0 961/ E5CE : 5A DECB 962/ E5CF : 09 DEX 963/ E5D0 : 86 08 LDAA #BS 964/ E5D2 : BD E7 6E JSR CONOUT 965/ E5D5 : 86 20 LDAA #' ' 966/ E5D7 : BD E7 6E JSR CONOUT 967/ E5DA : 86 08 LDAA #BS 968/ E5DC : BD E7 6E JSR CONOUT 969/ E5DF : 20 C2 BRA GL0 970/ E5E1 : GLE: 971/ E5E1 : 8D B2 BSR CRLF 972/ E5E3 : 6F 00 CLR 0,X 973/ E5E5 : 39 RTS 974/ E5E6 : 975/ E5E6 : SKIPSP: 976/ E5E6 : A6 00 LDAA 0,X 977/ E5E8 : 81 20 CMPA #' ' 978/ E5EA : 26 03 BNE SSE 979/ E5EC : 08 INX 980/ E5ED : 20 F7 BRA SKIPSP 981/ E5EF : SSE: 982/ E5EF : 39 RTS 983/ E5F0 : 984/ E5F0 : UPPER: 985/ E5F0 : 81 61 CMPA #'a' 986/ E5F2 : 25 06 BCS UPE 987/ E5F4 : 81 7B CMPA #'z'+1 988/ E5F6 : 24 02 BCC UPE 989/ E5F8 : 8B E0 ADDA #'A'-'a' 990/ E5FA : UPE: 991/ E5FA : 39 RTS 992/ E5FB : 993/ E5FB : RDHEX: 994/ E5FB : 5F CLRB 995/ E5FC : 7F 00 E5 CLR RHVAL 996/ E5FF : 7F 00 E6 CLR RHVAL+1 997/ E602 : RH0: 998/ E602 : A6 00 LDAA ,X 999/ E604 : 8D EA BSR UPPER 1000/ E606 : 81 30 CMPA #'0' 1001/ E608 : 25 34 BCS RHE 1002/ E60A : 81 3A CMPA #'9'+1 1003/ E60C : 25 0A BCS RH1 1004/ E60E : 81 41 CMPA #'A' 1005/ E610 : 25 2C BCS RHE 1006/ E612 : 81 47 CMPA #'F'+1 1007/ E614 : 24 28 BCC RHE 1008/ E616 : 80 07 SUBA #'A'-'9'-1 1009/ E618 : RH1: 1010/ E618 : 80 30 SUBA #'0' 1011/ E61A : 49 ROLA 1012/ E61B : 49 ROLA 1013/ E61C : 49 ROLA 1014/ E61D : 49 ROLA 1015/ E61E : 49 ROLA AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 19 - 08/06/19 23:59:03 1016/ E61F : 79 00 E6 ROL RHVAL+1 1017/ E622 : 79 00 E5 ROL RHVAL 1018/ E625 : 49 ROLA 1019/ E626 : 79 00 E6 ROL RHVAL+1 1020/ E629 : 79 00 E5 ROL RHVAL 1021/ E62C : 49 ROLA 1022/ E62D : 79 00 E6 ROL RHVAL+1 1023/ E630 : 79 00 E5 ROL RHVAL 1024/ E633 : 49 ROLA 1025/ E634 : 79 00 E6 ROL RHVAL+1 1026/ E637 : 79 00 E5 ROL RHVAL 1027/ E63A : 08 INX 1028/ E63B : 5C INCB 1029/ E63C : 20 C4 BRA RH0 1030/ E63E : RHE: 1031/ E63E : 39 RTS 1032/ E63F : 1033/ E63F : ;;; 1034/ E63F : ;;; Interrupt handler 1035/ E63F : ;;; 1036/ E63F : SWIH: 1037/ E63F : =>TRUE IF USE_REGCMD 1038/ E63F : CE E6 F7 LDX #SWIMSG 1039/ E642 : BD E5 4C JSR STROUT 1040/ E645 : 1041/ E645 : 32 PULA ; CCR 1042/ E646 : 97 E4 STAA REGCC 1043/ E648 : 32 PULA ; B 1044/ E649 : 97 DD STAA REGB 1045/ E64B : 32 PULA ; A 1046/ E64C : 97 DC STAA REGA 1047/ E64E : 32 PULA ; X(H) 1048/ E64F : 97 DE STAA REGX 1049/ E651 : 32 PULA ; X(L) 1050/ E652 : 97 DF STAA REGX+1 1051/ E654 : 32 PULA ; PC(H) 1052/ E655 : 33 PULB ; PC(L) 1053/ E656 : C0 01 SUBB #1 1054/ E658 : D7 E3 STAB REGPC+1 1055/ E65A : 82 00 SBCA #0 1056/ E65C : 97 E2 STAA REGPC 1057/ E65E : 9F E0 STS REGSP 1058/ E660 : BD E5 01 JSR RDUMP 1059/ E663 : 7E E0 73 JMP WSTART 1060/ E666 : =>FALSE ELSE 1061/ E666 : ;; Dummy 1062/ E666 : RTI 1063/ E666 : [1037] ENDIF 1064/ E666 : 1065/ E666 : DUMMYH: 1066/ E666 : 3B RTI 1067/ E667 : 1068/ E667 : ;;; 1069/ E667 : ;;; Strings 1070/ E667 : ;;; 1071/ E667 : 1072/ E667 : OPNMSG: 1073/ E667 : 0D 0A 55 6E 69 76 DC CR,LF,"Universal Monitor 6800",CR,LF,$00 65 72 73 61 6C 20 4D 6F 6E 69 74 6F AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 20 - 08/06/19 23:59:03 72 20 36 38 30 30 0D 0A 00 1074/ E682 : 1075/ E682 : PROMPT: 1076/ E682 : 5D 20 00 DC "] ",$00 1077/ E685 : 1078/ E685 : IHEMSG: 1079/ E685 : 45 72 72 6F 72 20 DC "Error ihex",CR,LF,$00 69 68 65 78 0D 0A 00 1080/ E692 : 1081/ E692 : SHEMSG: 1082/ E692 : 45 72 72 6F 72 20 DC "Error srec",CR,LF,$00 73 72 65 63 0D 0A 00 1083/ E69F : 1084/ E69F : ERRMSG: 1085/ E69F : 45 72 72 6F 72 0D DC "Error",CR,LF,$00 0A 00 1086/ E6A7 : 1087/ E6A7 : DSEP0: 1088/ E6A7 : 20 3A 00 DC " :",$00 1089/ E6AA : DSEP1: 1090/ E6AA : 20 3A 20 00 DC " : ",$00 1091/ E6AE : IHEXER: 1092/ E6AE : 3A 30 30 30 30 30 DC ":00000001FF",CR,LF,$00 30 30 31 46 46 0D 0A 00 1093/ E6BC : SRECER: 1094/ E6BC : 53 39 30 33 30 30 DC "S9030000FC",CR,LF,$00 30 30 46 43 0D 0A 00 1095/ E6C9 : 1096/ E6C9 : =>TRUE IF USE_IDENT 1097/ E6C9 : 55 6E 6B 6E 6F 77 IMUK: FCB "Unknown",CR,LF,$00 6E 0D 0A 00 1098/ E6D3 : 4D 43 36 38 30 30 IM6800: FCB "MC6800",CR,LF,$00 0D 0A 00 1099/ E6DC : 4D 43 36 38 30 31 IM6801: FCB "MC6801",CR,LF,$00 0D 0A 00 1100/ E6E5 : 48 44 36 33 30 31 IM6301: FCB "HD6301",CR,LF,$00 0D 0A 00 1101/ E6EE : 4D 42 38 38 36 31 IM8861: FCB "MB8861",CR,LF,$00 0D 0A 00 1102/ E6F7 : [1096] ENDIF 1103/ E6F7 : 1104/ E6F7 : =>TRUE IF USE_REGCMD 1105/ E6F7 : 1106/ E6F7 : 53 57 49 0D 0A 00 SWIMSG: DC "SWI",CR,LF,$00 1107/ E6FD : 1108/ E6FD : 41 3D 00 RDSA: DC "A=",$00 1109/ E700 : 20 42 3D 00 RDSB: DC " B=",$00 1110/ E704 : 20 58 3D 00 RDSX: DC " X=",$00 1111/ E708 : 20 53 50 3D 00 RDSSP: DC " SP=",$00 1112/ E70D : 20 50 43 3D 00 RDSPC: DC " PC=",$00 1113/ E712 : 20 43 43 52 3D 00 RDSCC: DC " CCR=",$00 1114/ E718 : 1115/ E718 : RNTAB: 1116/ E718 : 41 01 DC 'A',1 1117/ E71A : 00 DC E7 40 DC.W REGA,RNA AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 21 - 08/06/19 23:59:03 1118/ E71E : 42 01 DC 'B',1 1119/ E720 : 00 DD E7 42 DC.W REGB,RNB 1120/ E724 : 58 02 DC 'X',2 1121/ E726 : 00 DE E7 44 DC.W REGX,RNX 1122/ E72A : 53 02 DC 'S',2 1123/ E72C : 00 E0 E7 46 DC.W REGSP,RNSP 1124/ E730 : 50 02 DC 'P',2 1125/ E732 : 00 E0 E7 49 DC.W REGSP,RNPC 1126/ E736 : 43 01 DC 'C',1 1127/ E738 : 00 E4 E7 4C DC.W REGCC,RNCC 1128/ E73C : 1129/ E73C : 00 00 DC $00,0 ; End mark 1130/ E73E : 00 00 DC.W 0 1131/ E740 : 1132/ E740 : 41 00 RNA: DC "A",$00 1133/ E742 : 42 00 RNB: DC "B",$00 1134/ E744 : 58 00 RNX: DC "X",$00 1135/ E746 : 53 50 00 RNSP: DC "SP",$00 1136/ E749 : 50 43 00 RNPC: DC "PC",$00 1137/ E74C : 43 43 52 00 RNCC: DC "CCR",$00 1138/ E750 : 1139/ E750 : [1104] ENDIF 1140/ E750 : 1141/ E750 : =>TRUE IF USE_DEV_6850 1142/ E750 : INCLUDE "dev/unimon_dev_6850.asm" (1) 1/ E750 : (1) 2/ E750 : (1) 3/ E750 : INIT: (1) 4/ E750 : 86 03 LDAA #$03 (1) 5/ E752 : B7 80 18 STAA ACIAC (1) 6/ E755 : 01 NOP (1) 7/ E756 : 01 NOP (1) 8/ E757 : 86 15 LDAA #$15 ; x16 8bit N 1 (1) 9/ E759 : B7 80 18 STAA ACIAC (1) 10/ E75C : (1) 11/ E75C : 39 RTS (1) 12/ E75D : (1) 13/ E75D : CONIN: (1) 14/ E75D : B6 80 18 LDAA ACIAC (1) 15/ E760 : 84 01 ANDA #$01 (1) 16/ E762 : 27 F9 BEQ CONIN (1) 17/ E764 : B6 80 19 LDAA ACIAD (1) 18/ E767 : (1) 19/ E767 : 39 RTS (1) 20/ E768 : (1) 21/ E768 : CONST: (1) 22/ E768 : B6 80 18 LDAA ACIAC (1) 23/ E76B : 84 01 ANDA #$01 (1) 24/ E76D : (1) 25/ E76D : 39 RTS (1) 26/ E76E : (1) 27/ E76E : CONOUT: (1) 28/ E76E : 36 PSHA (1) 29/ E76F : CO0: (1) 30/ E76F : B6 80 18 LDAA ACIAC (1) 31/ E772 : 84 02 ANDA #$02 (1) 32/ E774 : 27 F9 BEQ CO0 (1) 33/ E776 : 32 PULA (1) 34/ E777 : B7 80 19 STAA ACIAD (1) 35/ E77A : AS V1.42 Beta [Bld 145] - source file unimon_6800.asm(unimon_dev_6850.asm) - page 22 - 08/06/19 23:59:03 (1) 36/ E77A : 39 RTS (1) 37/ E77B : (1) 38/ E77B : 1143/ E77B : [1141] ENDIF 1144/ E77B : 1145/ E77B : =>FALSE IF USE_DEV_6801 1146/ E77B : INCLUDE "dev/unimon_dev_6801.asm" 1147/ E77B : [1145] ENDIF 1148/ E77B : 1149/ E77B : ;; 1150/ E77B : ;; Entry point 1151/ E77B : ;; 1152/ E77B : 1153/ FF80 : ORG ENTRY+0 ; Cold start 1154/ FF80 : E_CSTART: 1155/ FF80 : 7E E0 00 JMP CSTART 1156/ FF83 : 1157/ FF88 : ORG ENTRY+8 ; Warm start 1158/ FF88 : E_WSTART: 1159/ FF88 : 7E E0 73 JMP WSTART 1160/ FF8B : 1161/ FF90 : ORG ENTRY+16 ; Console output 1162/ FF90 : E_CONOUT: 1163/ FF90 : 7E E7 6E JMP CONOUT 1164/ FF93 : 1165/ FF98 : ORG ENTRY+24 ; (Console) String output 1166/ FF98 : E_STROUT: 1167/ FF98 : 7E E5 4C JMP STROUT 1168/ FF9B : 1169/ FFA0 : ORG ENTRY+32 ; Console input 1170/ FFA0 : E_CONIN: 1171/ FFA0 : 7E E7 5D JMP CONIN 1172/ FFA3 : 1173/ FFA8 : ORG ENTRY+40 ; Console status 1174/ FFA8 : E_CONST: 1175/ FFA8 : 7E E7 68 JMP CONST 1176/ FFAB : 1177/ FFAB : ;; 1178/ FFAB : ;; Vector Area 1179/ FFAB : ;; 1180/ FFAB : 1181/ FFF8 : ORG $fff8 1182/ FFF8 : 1183/ FFF8 : E6 66 DC.W DUMMYH ; IRQ 1184/ FFFA : 1185/ FFFA : E6 3F DC.W SWIH ; SWI 1186/ FFFC : 1187/ FFFC : E6 66 DC.W DUMMYH ; NMI 1188/ FFFE : 1189/ FFFE : E0 00 DC.W CSTART ; RESET 1190/ 10000 : 1191/ 10000 : ;; 1192/ 10000 : ;; Work Area 1193/ 10000 : ;; 1194/ 10000 : 1195/ C0 : ORG WORK_B 1196/ C0 : 1197/ C0 : INBUF: DS BUFLEN ; Line input buffer 1198/ D0 : DSADDR: DS 2 ; Dump start address 1199/ D2 : DEADDR: DS 2 ; Dump end address AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 23 - 08/06/19 23:59:03 1200/ D4 : DSTATE: DS 1 ; Dump state 1201/ D5 : GADDR: DS 2 ; Go address 1202/ D7 : SADDR: DS 2 ; Set address 1203/ D9 : HEXMOD: DS 1 ; HEX file mode 1204/ DA : RECTYP: DS 1 ; Record type 1205/ DB : PSPEC: DS 1 ; Processor spec. 1206/ DC : 1207/ DC : =>TRUE IF USE_REGCMD 1208/ DC : REGA: DS 1 ; Accumulator A 1209/ DD : REGB: DS 1 ; Accumulator B 1210/ DE : REGX: DS 2 ; Index register X 1211/ E0 : REGSP: DS 2 ; Stack pointer SP 1212/ E2 : REGPC: DS 2 ; Program counter PC 1213/ E4 : REGCC: DS 1 ; Condition code register CCR 1214/ E5 : [1207] ENDIF 1215/ E5 : 1216/ E5 : RHVAL: DS 2 ; RDHEX Value 1217/ E7 : DMPPT: DS 2 ; DUMP pointer 1218/ E9 : ASCPT: DS 2 ; ASCII pointer 1219/ EB : CKSUM: DS 1 ; Checksum 1220/ EC : 1221/ EC : END AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 24 - 08/06/19 23:59:03 symbol table (* = unused): ------------------------ ACIAC : 8018 - | ACIAD : 8019 - | *ARCHITECTURE : i386-i386-netbsd - | ASCPT : E9 C | *BIGENDIAN : 0 - | *BRANCHEXT : 0 - | BS : 8 - | BUFLEN : 10 - | *CASESENSITIVE : 0 - | CKSUM : EB C | CO0 : E76F C | CONIN : E75D C | CONOUT : E76E C | CONST : E768 C | *CONSTPI : 3.141592653589793 - | CR : D - | CRLF : E595 C | CSTART : E000 C | *DATE : 08/06/19 - | DEADDR : D2 C | DEL : 7F - | DMPPT : E7 C | DP0 : E0D9 C | DP1 : E0FB C | DPB : E180 C | DPB0 : E195 C | DPB1 : E1AA C | DPB2 : E1AE C | DPBE : E1D5 C | DPL : E141 C | DPL0 : E155 C | DPL1 : E165 C | DPL2 : E175 C | DPL3 : E17A C | DPM : E111 C | DPM0 : E11E C | DPM1 : E136 C | DSADDR : D0 C | DSEP0 : E6A7 C | DSEP1 : E6AA C | DSTATE : D4 C | DUMMYH : E666 C | DUMP : E0BA C | ENTRY : FF80 - | ERR : E0B2 C | ERRMSG : E69F C | *E_CONIN : FFA0 C | *E_CONOUT : FF90 C | *E_CONST : FFA8 C | *E_CSTART : FF80 C | *E_STROUT : FF98 C | *E_WSTART : FF88 C | *FALSE : 0 - | *FULLPMMU : 1 - | G0 : E1EB C | GADDR : D5 C | GETLIN : E59F C | GL0 : E5A3 C | GLB : E5CB C | GLE : E5E1 C | GO : E1D6 C | GO0 : E1E4 C | GO1 : E1F3 C | *HAS64 : 1 - | *HASDSP : 0 - | *HASFPU : 0 - | *HASPMMU : 0 - | HEXIN : E56F C | HEXMOD : D9 C | HEXOUT1 : E562 C | HEXOUT2 : E55A C | HEXOUT4 : E557 C | HEXOUTE : E56C C | HI0 : E576 C | HI1 : E590 C | HIR : E593 C | IDE : E06E C | ID_6301 : E059 C | ID_6801 : E052 C | ID_8861 : E060 C | ID_UK : E067 C | IHEMSG : E685 C | IHEXER : E6AE C | IM6301 : E6E5 C | IM6800 : E6D3 C | IM6801 : E6DC C | IM8861 : E6EE C | IMUK : E6C9 C | INBUF : C0 C | *INEXTMODE : 0 - | INIT : E750 C | *INLWORDMODE : 0 - | *INMAXMODE : 0 - | *INSRCMODE : 0 - | *INSUPMODE : 0 - | LF : A - | LH0 : E27F C | *LH1 : E289 C | LH2 : E28D C | LH3 : E295 C | LHI0 : E29A C | LHI1 : E2CC C | LHI2 : E2DD C | LHI3 : E2E0 C | LHIE : E2EF C | LHS0 : E2F8 C | LHS1 : E327 C | LHS2 : E33B C | LHS20 : E33C C | LHS3 : E33F C | LHSE : E359 C | LHSR : E35F C | *LISTON : 1 - | LOADH : E271 C | AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 25 - 08/06/19 23:59:03 M00 : E08F C | M01 : E096 C | M02 : E09D C | M03 : E0A4 C | M04 : E0AB C | M05 : E0B2 C | *MACEXP : 7 - | *MOMCPU : 6800 - | *MOMCPUNAME : 6800 - | *NESTMAX : 100 - | OPNMSG : E667 C | *PACKING : 0 - | *PADDING : 0 - | PROMPT : E682 C | PSPEC : DB C | RDHEX : E5FB C | RDSA : E6FD C | RDSB : E700 C | RDSCC : E712 C | RDSPC : E70D C | RDSSP : E708 C | RDSX : E704 C | RDUMP : E501 C | RECTYP : DA C | REG : E473 C | REGA : DC C | REGB : DD C | REGCC : E4 C | REGPC : E2 C | REGSP : E0 C | REGX : DE C | *RELAXED : 0 - | RG0 : E483 C | RG1 : E488 C | RG2 : E498 C | RG3 : E4C1 C | RG4 : E4CB C | RG5 : E4F3 C | RG6 : E4FB C | RGE : E4FE C | RGR : E4FB C | RH0 : E602 C | RH1 : E618 C | RHE : E63E C | RHVAL : E5 C | RNA : E740 C | RNB : E742 C | RNCC : E74C C | RNPC : E749 C | RNSP : E746 C | RNTAB : E718 C | RNX : E744 C | ROM_B : E000 - | SADDR : D7 C | SAVEH : E362 C | SETM : E209 C | SH0 : E370 C | SH1 : E373 C | SH2 : E3A1 C | SH3 : E3B4 C | SH4 : E3CB C | SHE : E39E C | SHEMSG : E692 C | SHL : E3D4 C | SHL0 : E3E1 C | *SHLI : E3F2 C | SHLI0 : E419 C | SHLS : E431 C | SHLS0 : E45B C | SKIPSP : E5E6 C | SM1 : E21E C | SM2 : E24B C | SM3 : E256 C | SM4 : E25D C | SMER : E26E C | SRECER : E6BC C | SSE : E5EF C | STACK : FF - | STROE : E556 C | STROUT : E54C C | SWIH : E63F C | SWIMSG : E6F7 C | *TARGET : MC6800 - | *TIME : 23:59:02 - | *TRUE : 1 - | UPE : E5FA C | UPPER : E5F0 C | USE_DEV_6801 : 0 - | USE_DEV_6850 : 1 - | USE_IDENT : 1 - | USE_REGCMD : 1 - | *VERSION : 142F - | WORK_B : C0 - | WSTART : E073 C | 208 symbols 37 unused symbols AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 26 - 08/06/19 23:59:03 defined functions: ------------------ HIGH | LOW AS V1.42 Beta [Bld 145] - source file unimon_6800.asm - page 27 - 08/06/19 23:59:03 codepages: ---------- STANDARD (0 changed characters) 0.62 seconds assembly time 1326 lines source file 3 passes 0 errors 0 warnings