Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Regulars1 » MikeC/Software/TEST-A

MikeC/Software/TEST-A

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Regulars1
Filename: MikeC/Software/TEST-A
Read OK:
File size: 2352 bytes
Load address: 0000
Exec address: 0000
File contents
; PROGRAM TO TEST OPERATION OF EMULATOR
; By Bill Jeffs
; Set all switches to low
; Toggle PortA,4 Switch Hi-Lo for a pattern if held high will repeat.
; Toggle PortA,3 and 2 Hi-Lo for diffrent pattern.
; PortA,1 Hi then PortA,0 LED toggles until PortA,1 is Lo.
;
;=============================
;
;       DEFINITIONS
;
;-------MICROPROCESSOR--------
;
        LIST P=16C84
;
;-------GENERIC---------------
;
        W       EQU     0
        F       EQU     1
;
;-------REGISTERS-------------
;
        RTCC    EQU     H'01'   ; REGISTERS DEFINED USING
        STATUS  EQU     H'03'   ; HEX NOTATION
        PORTA   EQU     H'05'
        PORTB   EQU     H'06'
        INTCON  EQU     H'0B'
        WSAVE   EQU     H'0C'
        SSAVE   EQU     H'0D'
        SWSTAT  EQU     H'0E'
        SWNUM   EQU     H'0F'
        TEMP    EQU     H'10'
        LDELAY   EQU    H'11'
        MDELAY  EQU     H'12'
        SDELAY  EQU     H'13'
        IDELAY  EQU     H'14'
        OPTREG  EQU     H'01'   ; ACTUAL ADDRESS H'81' SO SET TO PAGE 1
        TRISA   EQU     H'05'   ; ACTUAL ADDRESS H'85' SO SET TO PAGE 1
        TRISB   EQU     H'06'   ; ACTUAL ADDRESS H'86' SO SET TO PAGE 1
        FUSES   EQU     H'2007'

;
;-------STATUS BITS-----------
;
        C       EQU     0
        DC      EQU     1
        Z       EQU     2
        TOIF    EQU     2
        RP0     EQU     5
        TOIE    EQU     5
        GIE     EQU     7
        BIT0    EQU     0
        BIT1    EQU     1
        BIT2    EQU     2
        BIT3    EQU     3
        BIT4    EQU     4
        BIT5    EQU     5
        BIT6    EQU     6
        BIT7    EQU     7
;
;-------START-----------------
;
        ORG     FUSES
        EQUB    H'0D'
;
        ORG     H'00'           ; START VECTOR
        GOTO    MAIN
;
        ORG     H'04'           ; INTERRUPT VECTOR
        GOTO    INTRPT
;
;-------SUBROUTINES-----------
;
        ORG     H'06'
;
;-------INITIALISE------------
;
INIT    MOVLW   0
        MOVWF   SWSTAT          ; CLEAR SWITCH STATUS REGISTER
        MOVLW   H'FF'           ; SET TO H'7F FOR RUNNING ON PIC
        MOVWF   RTCC            ; AND H'FF' FOR EMULATOR
        MOVLW   B'00000100'     ; SET PRESCALER TO DIV BY 32
        BSF     STATUS,RP0      ; SET FOR REGISTER PAGE 1
        MOVWF   OPTREG          ; OPTREG IS IN PAGE 1
        MOVLW   H'1E'
        MOVWF   TRISA           ; SET PORTA 4 INPUTS, 1 OUTPUT
        CLRW
        MOVWF   TRISB           ; SET PORTB FOR OUTPUT
        BCF     STATUS,RP0      ; RETURN TO PAGE 0
        MOVWF   PORTA           ; CLEAR PORT A
        MOVWF   PORTB           ; CLEAR PORT B

        BSF     INTCON,TOIE     ; TIMER INTERRUPT ENABLE
        RETURN
;
;-------SERVICE INTERRUPT-----
;
INTRPT  MOVWF   WSAVE           ; SAVE W REGISTER
        SWAPF   STATUS,W        ; STATUS WILL NOT BE CHANGED
        MOVWF   SSAVE           ; SAVE STATUS REGISTER
        BCF     INTCON,TOIF     ; CLEAR INTERRUPT FLAG
;
        MOVLW   H'FF'           ; SET TO H'7F FOR RUNNING ON PIC
        MOVWF   RTCC            ; AND H'FF' FOR EMULATOR
        CALL    EIDLY           ; EXTEND INTERRUPT DELAY
;
        SWAPF   SSAVE,W         ; RESTORE STATUS WITHOUT
        MOVWF   STATUS          ; CHANGING ANY STATUS BITS
        SWAPF   WSAVE,F         ; RESTORE W REGISTER WITHOUT
        SWAPF   WSAVE,W         ; CHANGING ANY STATUS BITS
        RETFIE                  ; AND THEN RETURN FROM INTERRUPT
;
;-------FIND CHANGED SWITCH---
;
SCAN    BTFSC   SWNUM,BIT1
        CALL    INTCRL
        MOVF    TEMP,W
        MOVWF   SWSTAT
        RETURN
;
;-------INITIALISE INTERRUPTS-
;
INTCRL  BTFSS   SWSTAT,BIT1
        BSF     INTCON,GIE      ; GLOBAL INTERRUPT ENABLE
        BTFSC   SWSTAT,BIT1
        BCF     INTCON,GIE      ; GLOBAL INTERRUPT DISABLE
        MOVLW   H'FF'           ; SET TO H'7F FOR RUNNING ON PIC
        MOVWF   RTCC            ; AND H'FF' FOR EMULATOR
        MOVLW   H'01'
        MOVWF   IDELAY
        RETURN
;
;-------STEP LEDS-------------
;
STEP    MOVLW   H'80'
        MOVWF   PORTB
        BCF     STATUS,C
LOOPSL  CALL    LPAUSE          ; RUNNING LIGHT LEFT TO RIGHT
        RRF     PORTB,F
        BTFSS   STATUS,C
        GOTO    LOOPSL
;
        CLRF    PORTB
        CALL    LPAUSE
;
        MOVLW   H'01'
        MOVWF   PORTB
        BCF     STATUS,C
LOOPB   CALL    LPAUSE          ; RUNNING LIGHT RIGHT TO LEFT
        RLF     PORTB,F
        BTFSS   STATUS,C
        GOTO    LOOPB
;
        CLRF    PORTB
        CALL    LPAUSE
;
LOOPR   CALL    LPAUSE          ; BINARY COUNT UP
        MOVLW   H'01'
        ADDWF   PORTB,F
        BTFSS   STATUS,DC
        GOTO    LOOPR
LOOPR2  CALL    LPAUSE          ; BINARY COUNT DOWN
        DECF    PORTB,F
        BTFSS   STATUS,Z
        GOTO    LOOPR2
;
        CLRF    PORTB
        CALL    LPAUSE
        RETURN
;
;-------LITERAL LOGIC---------
;
LOGIC   CLRF    PORTB
        CALL    LPAUSE
        BCF     STATUS,C
        MOVLW   H'AA'
        MOVWF   PORTB           ; SET PORTB TO   B'1010 1010'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        IORLW   H'55'           ; OR PORTB WITH  B'0101 0101'
        MOVWF   PORTB           ; RESULT         B'1111 1111'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        ANDLW   H'E7'           ; AND PORTB WITH B'1110 0111'
        MOVWF   PORTB           ; RESULT         B'1110 0111'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        ANDLW   H'7E'           ; AND PORTB WITH B'0111 1110'
        MOVWF   PORTB           ; RESULT         B'0110 0110'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        XORLW   H'0F'           ; EOR PORTB WITH B'0000 1111'
        MOVWF   PORTB           ; RESULT         B'0110 1001'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        ADDLW   H'17'           ; ADD TO PORTB   B'0001 0111'
        MOVWF   PORTB           ; RESULT         B'1000 0000'
        CALL    LPAUSE
;
        MOVF    PORTB,W
        SUBLW   H'7F'           ; SUBTRACT       B'0111 1111'
        MOVWF   PORTB           ; RESULT         B'1111 1111'
        CALL    LPAUSE
;
        CLRF    PORTB
        CALL    LPAUSE
        RETURN
;
;-------BYTE FUNCTIONS--------
;
BYTE    MOVLW   H'AA'
        MOVWF   PORTB
        CALL    LPAUSE
;
        MOVLW   H'55'           ; OR PORTB WITH  B'0101 0101'
        IORWF   PORTB,F         ; RESULT         B'1111 1111'
        CALL    LPAUSE
;
        MOVLW   H'E7'           ; AND PORTB WITH B'1110 0111'
        ANDWF   PORTB,F         ; RESULT         B'1110 0111'
        CALL    LPAUSE
;
        MOVLW   H'7E'           ; AND PORTB WITH B'0111 1110'
        ANDWF   PORTB,F         ; RESULT         B'0110 0110'
        CALL    LPAUSE
;
        MOVLW   H'0F'           ; EOR PORTB WITH B'0000 1111'
        XORWF   PORTB,F         ; RESULT         B'0110 1001'
        CALL    LPAUSE
;
        SWAPF   PORTB,F         ; SWAP PORTB NIBBLES
        CALL    LPAUSE          ; RESULT         B'1001 0110'
;
        SWAPF   PORTB,F         ; SWAP PORTB NIBBLES AGAIN
        CALL    LPAUSE          ; RESULT         B'0110 1001'
;
        MOVLW   H'17'           ; ADD TO PORTB   B'0001 0111'
        ADDWF   PORTB,F         ; RESULT         B'1000 0000'
        CALL    LPAUSE
;
        MOVLW   H'81'           ; SUBTRACT       B'1000 0001'
        SUBWF   PORTB,F         ; RESULT         B'1111 1111'
        CALL    LPAUSE
;
        CLRF    PORTB
        CALL    LPAUSE
        RETURN
;
;-------LONG DELAY------------
;
LPAUSE  MOVLW   H'FF'           ; SET TO H'80' FOR RUNNING ON PIC
        MOVWF   LDELAY          ; AND H'FF' FOR EMULATOR
LLOOP   CALL    MPAUSE
        INCF    LDELAY,F
        BTFSS   STATUS,Z
        GOTO    LLOOP
        BCF     STATUS,C
        BCF     STATUS,Z
        RETURN
;
;-------MEDIUM DELAY----------
;
MPAUSE  MOVLW   H'FF'           ; SET TO H'01' FOR RUNNING ON PIC
        MOVWF   MDELAY          ; AND H'FF' FOR EMULATOR
MLOOP   CALL    SPAUSE
        INCFSZ  MDELAY,F
        GOTO    MLOOP
        BCF     STATUS,C
        RETURN
;
;-------SHORT DELAY-----------
;
SPAUSE  MOVLW   H'01'           ; SET TO H'06' FOR RUNNING PIC
        MOVWF   SDELAY          ; AND H'01' FOR EMULATOR
SLOOP   DECFSZ  SDELAY,F
        GOTO    SLOOP
        BCF     STATUS,C
        RETURN
;
;-------INTERRUPT DELAY-------
;
EIDLY   DECF    IDELAY,F
        BTFSS   STATUS,Z
        RETURN                  ; EXIT, NOT REACHED ZERO
        MOVLW   H'02'           ; SET TO H'64' FOR RUNNING PIC
        MOVWF   IDELAY          ; AND H'02' FOR EMULATOR
        MOVLW   H'01'
        XORWF   PORTA,F         ; TOGGLE PORTA, LED 0
        RETURN
;
;-------PROGRAM STARTS HERE---
;
MAIN    CALL    INIT
LOOP    MOVF    PORTA,W
        MOVWF   TEMP
        ANDLW   H'1E'
        XORWF   SWSTAT,W
        MOVWF   SWNUM
        BTFSS   STATUS,Z        ; CHECK SWITCH
        CALL    SCAN
        BTFSC   SWSTAT,BIT4
        CALL    STEP
        BTFSC   PORTA,BIT3
        CALL    LOGIC
        BTFSC   PORTA,BIT2
        CALL    BYTE
        GOTO    LOOP
END
00000000  3b 20 50 52 4f 47 52 41  4d 20 54 4f 20 54 45 53  |; PROGRAM TO TES|
00000010  54 20 4f 50 45 52 41 54  49 4f 4e 20 4f 46 20 45  |T OPERATION OF E|
00000020  4d 55 4c 41 54 4f 52 0a  3b 20 42 79 20 42 69 6c  |MULATOR.; By Bil|
00000030  6c 20 4a 65 66 66 73 0a  3b 20 53 65 74 20 61 6c  |l Jeffs.; Set al|
00000040  6c 20 73 77 69 74 63 68  65 73 20 74 6f 20 6c 6f  |l switches to lo|
00000050  77 0a 3b 20 54 6f 67 67  6c 65 20 50 6f 72 74 41  |w.; Toggle PortA|
00000060  2c 34 20 53 77 69 74 63  68 20 48 69 2d 4c 6f 20  |,4 Switch Hi-Lo |
00000070  66 6f 72 20 61 20 70 61  74 74 65 72 6e 20 69 66  |for a pattern if|
00000080  20 68 65 6c 64 20 68 69  67 68 20 77 69 6c 6c 20  | held high will |
00000090  72 65 70 65 61 74 2e 0a  3b 20 54 6f 67 67 6c 65  |repeat..; Toggle|
000000a0  20 50 6f 72 74 41 2c 33  20 61 6e 64 20 32 20 48  | PortA,3 and 2 H|
000000b0  69 2d 4c 6f 20 66 6f 72  20 64 69 66 66 72 65 6e  |i-Lo for diffren|
000000c0  74 20 70 61 74 74 65 72  6e 2e 0a 3b 20 50 6f 72  |t pattern..; Por|
000000d0  74 41 2c 31 20 48 69 20  74 68 65 6e 20 50 6f 72  |tA,1 Hi then Por|
000000e0  74 41 2c 30 20 4c 45 44  20 74 6f 67 67 6c 65 73  |tA,0 LED toggles|
000000f0  20 75 6e 74 69 6c 20 50  6f 72 74 41 2c 31 20 69  | until PortA,1 i|
00000100  73 20 4c 6f 2e 0a 3b 0a  3b 3d 3d 3d 3d 3d 3d 3d  |s Lo..;.;=======|
00000110  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000120  3d 3d 3d 3d 3d 3d 0a 3b  0a 3b 20 20 20 20 20 20  |======.;.;      |
00000130  20 44 45 46 49 4e 49 54  49 4f 4e 53 0a 3b 0a 3b  | DEFINITIONS.;.;|
00000140  2d 2d 2d 2d 2d 2d 2d 4d  49 43 52 4f 50 52 4f 43  |-------MICROPROC|
00000150  45 53 53 4f 52 2d 2d 2d  2d 2d 2d 2d 2d 0a 3b 0a  |ESSOR--------.;.|
00000160  20 20 20 20 20 20 20 20  4c 49 53 54 20 50 3d 31  |        LIST P=1|
00000170  36 43 38 34 0a 3b 0a 3b  2d 2d 2d 2d 2d 2d 2d 47  |6C84.;.;-------G|
00000180  45 4e 45 52 49 43 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |ENERIC----------|
00000190  2d 2d 2d 2d 2d 0a 3b 0a  20 20 20 20 20 20 20 20  |-----.;.        |
000001a0  57 20 20 20 20 20 20 20  45 51 55 20 20 20 20 20  |W       EQU     |
000001b0  30 0a 20 20 20 20 20 20  20 20 46 20 20 20 20 20  |0.        F     |
000001c0  20 20 45 51 55 20 20 20  20 20 31 0a 3b 0a 3b 2d  |  EQU     1.;.;-|
000001d0  2d 2d 2d 2d 2d 2d 52 45  47 49 53 54 45 52 53 2d  |------REGISTERS-|
000001e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 3b 0a 20  |------------.;. |
000001f0  20 20 20 20 20 20 20 52  54 43 43 20 20 20 20 45  |       RTCC    E|
00000200  51 55 20 20 20 20 20 48  27 30 31 27 20 20 20 3b  |QU     H'01'   ;|
00000210  20 52 45 47 49 53 54 45  52 53 20 44 45 46 49 4e  | REGISTERS DEFIN|
00000220  45 44 20 55 53 49 4e 47  0a 20 20 20 20 20 20 20  |ED USING.       |
00000230  20 53 54 41 54 55 53 20  20 45 51 55 20 20 20 20  | STATUS  EQU    |
00000240  20 48 27 30 33 27 20 20  20 3b 20 48 45 58 20 4e  | H'03'   ; HEX N|
00000250  4f 54 41 54 49 4f 4e 0a  20 20 20 20 20 20 20 20  |OTATION.        |
00000260  50 4f 52 54 41 20 20 20  45 51 55 20 20 20 20 20  |PORTA   EQU     |
00000270  48 27 30 35 27 0a 20 20  20 20 20 20 20 20 50 4f  |H'05'.        PO|
00000280  52 54 42 20 20 20 45 51  55 20 20 20 20 20 48 27  |RTB   EQU     H'|
00000290  30 36 27 0a 20 20 20 20  20 20 20 20 49 4e 54 43  |06'.        INTC|
000002a0  4f 4e 20 20 45 51 55 20  20 20 20 20 48 27 30 42  |ON  EQU     H'0B|
000002b0  27 0a 20 20 20 20 20 20  20 20 57 53 41 56 45 20  |'.        WSAVE |
000002c0  20 20 45 51 55 20 20 20  20 20 48 27 30 43 27 0a  |  EQU     H'0C'.|
000002d0  20 20 20 20 20 20 20 20  53 53 41 56 45 20 20 20  |        SSAVE   |
000002e0  45 51 55 20 20 20 20 20  48 27 30 44 27 0a 20 20  |EQU     H'0D'.  |
000002f0  20 20 20 20 20 20 53 57  53 54 41 54 20 20 45 51  |      SWSTAT  EQ|
00000300  55 20 20 20 20 20 48 27  30 45 27 0a 20 20 20 20  |U     H'0E'.    |
00000310  20 20 20 20 53 57 4e 55  4d 20 20 20 45 51 55 20  |    SWNUM   EQU |
00000320  20 20 20 20 48 27 30 46  27 0a 20 20 20 20 20 20  |    H'0F'.      |
00000330  20 20 54 45 4d 50 20 20  20 20 45 51 55 20 20 20  |  TEMP    EQU   |
00000340  20 20 48 27 31 30 27 0a  20 20 20 20 20 20 20 20  |  H'10'.        |
00000350  4c 44 45 4c 41 59 20 20  20 45 51 55 20 20 20 20  |LDELAY   EQU    |
00000360  48 27 31 31 27 0a 20 20  20 20 20 20 20 20 4d 44  |H'11'.        MD|
00000370  45 4c 41 59 20 20 45 51  55 20 20 20 20 20 48 27  |ELAY  EQU     H'|
00000380  31 32 27 0a 20 20 20 20  20 20 20 20 53 44 45 4c  |12'.        SDEL|
00000390  41 59 20 20 45 51 55 20  20 20 20 20 48 27 31 33  |AY  EQU     H'13|
000003a0  27 0a 20 20 20 20 20 20  20 20 49 44 45 4c 41 59  |'.        IDELAY|
000003b0  20 20 45 51 55 20 20 20  20 20 48 27 31 34 27 0a  |  EQU     H'14'.|
000003c0  20 20 20 20 20 20 20 20  4f 50 54 52 45 47 20 20  |        OPTREG  |
000003d0  45 51 55 20 20 20 20 20  48 27 30 31 27 20 20 20  |EQU     H'01'   |
000003e0  3b 20 41 43 54 55 41 4c  20 41 44 44 52 45 53 53  |; ACTUAL ADDRESS|
000003f0  20 48 27 38 31 27 20 53  4f 20 53 45 54 20 54 4f  | H'81' SO SET TO|
00000400  20 50 41 47 45 20 31 0a  20 20 20 20 20 20 20 20  | PAGE 1.        |
00000410  54 52 49 53 41 20 20 20  45 51 55 20 20 20 20 20  |TRISA   EQU     |
00000420  48 27 30 35 27 20 20 20  3b 20 41 43 54 55 41 4c  |H'05'   ; ACTUAL|
00000430  20 41 44 44 52 45 53 53  20 48 27 38 35 27 20 53  | ADDRESS H'85' S|
00000440  4f 20 53 45 54 20 54 4f  20 50 41 47 45 20 31 0a  |O SET TO PAGE 1.|
00000450  20 20 20 20 20 20 20 20  54 52 49 53 42 20 20 20  |        TRISB   |
00000460  45 51 55 20 20 20 20 20  48 27 30 36 27 20 20 20  |EQU     H'06'   |
00000470  3b 20 41 43 54 55 41 4c  20 41 44 44 52 45 53 53  |; ACTUAL ADDRESS|
00000480  20 48 27 38 36 27 20 53  4f 20 53 45 54 20 54 4f  | H'86' SO SET TO|
00000490  20 50 41 47 45 20 31 0a  20 20 20 20 20 20 20 20  | PAGE 1.        |
000004a0  46 55 53 45 53 20 20 20  45 51 55 20 20 20 20 20  |FUSES   EQU     |
000004b0  48 27 32 30 30 37 27 0a  0a 3b 0a 3b 2d 2d 2d 2d  |H'2007'..;.;----|
000004c0  2d 2d 2d 53 54 41 54 55  53 20 42 49 54 53 2d 2d  |---STATUS BITS--|
000004d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 3b 0a 20 20 20 20  |---------.;.    |
000004e0  20 20 20 20 43 20 20 20  20 20 20 20 45 51 55 20  |    C       EQU |
000004f0  20 20 20 20 30 0a 20 20  20 20 20 20 20 20 44 43  |    0.        DC|
00000500  20 20 20 20 20 20 45 51  55 20 20 20 20 20 31 0a  |      EQU     1.|
00000510  20 20 20 20 20 20 20 20  5a 20 20 20 20 20 20 20  |        Z       |
00000520  45 51 55 20 20 20 20 20  32 0a 20 20 20 20 20 20  |EQU     2.      |
00000530  20 20 54 4f 49 46 20 20  20 20 45 51 55 20 20 20  |  TOIF    EQU   |
00000540  20 20 32 0a 20 20 20 20  20 20 20 20 52 50 30 20  |  2.        RP0 |
00000550  20 20 20 20 45 51 55 20  20 20 20 20 35 0a 20 20  |    EQU     5.  |
00000560  20 20 20 20 20 20 54 4f  49 45 20 20 20 20 45 51  |      TOIE    EQ|
00000570  55 20 20 20 20 20 35 0a  20 20 20 20 20 20 20 20  |U     5.        |
00000580  47 49 45 20 20 20 20 20  45 51 55 20 20 20 20 20  |GIE     EQU     |
00000590  37 0a 20 20 20 20 20 20  20 20 42 49 54 30 20 20  |7.        BIT0  |
000005a0  20 20 45 51 55 20 20 20  20 20 30 0a 20 20 20 20  |  EQU     0.    |
000005b0  20 20 20 20 42 49 54 31  20 20 20 20 45 51 55 20  |    BIT1    EQU |
000005c0  20 20 20 20 31 0a 20 20  20 20 20 20 20 20 42 49  |    1.        BI|
000005d0  54 32 20 20 20 20 45 51  55 20 20 20 20 20 32 0a  |T2    EQU     2.|
000005e0  20 20 20 20 20 20 20 20  42 49 54 33 20 20 20 20  |        BIT3    |
000005f0  45 51 55 20 20 20 20 20  33 0a 20 20 20 20 20 20  |EQU     3.      |
00000600  20 20 42 49 54 34 20 20  20 20 45 51 55 20 20 20  |  BIT4    EQU   |
00000610  20 20 34 0a 20 20 20 20  20 20 20 20 42 49 54 35  |  4.        BIT5|
00000620  20 20 20 20 45 51 55 20  20 20 20 20 35 0a 20 20  |    EQU     5.  |
00000630  20 20 20 20 20 20 42 49  54 36 20 20 20 20 45 51  |      BIT6    EQ|
00000640  55 20 20 20 20 20 36 0a  20 20 20 20 20 20 20 20  |U     6.        |
00000650  42 49 54 37 20 20 20 20  45 51 55 20 20 20 20 20  |BIT7    EQU     |
00000660  37 0a 3b 0a 3b 2d 2d 2d  2d 2d 2d 2d 53 54 41 52  |7.;.;-------STAR|
00000670  54 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |T---------------|
00000680  2d 2d 0a 3b 0a 20 20 20  20 20 20 20 20 4f 52 47  |--.;.        ORG|
00000690  20 20 20 20 20 46 55 53  45 53 0a 20 20 20 20 20  |     FUSES.     |
000006a0  20 20 20 45 51 55 42 20  20 20 20 48 27 30 44 27  |   EQUB    H'0D'|
000006b0  0a 3b 0a 20 20 20 20 20  20 20 20 4f 52 47 20 20  |.;.        ORG  |
000006c0  20 20 20 48 27 30 30 27  20 20 20 20 20 20 20 20  |   H'00'        |
000006d0  20 20 20 3b 20 53 54 41  52 54 20 56 45 43 54 4f  |   ; START VECTO|
000006e0  52 0a 20 20 20 20 20 20  20 20 47 4f 54 4f 20 20  |R.        GOTO  |
000006f0  20 20 4d 41 49 4e 0a 3b  0a 20 20 20 20 20 20 20  |  MAIN.;.       |
00000700  20 4f 52 47 20 20 20 20  20 48 27 30 34 27 20 20  | ORG     H'04'  |
00000710  20 20 20 20 20 20 20 20  20 3b 20 49 4e 54 45 52  |         ; INTER|
00000720  52 55 50 54 20 56 45 43  54 4f 52 0a 20 20 20 20  |RUPT VECTOR.    |
00000730  20 20 20 20 47 4f 54 4f  20 20 20 20 49 4e 54 52  |    GOTO    INTR|
00000740  50 54 0a 3b 0a 3b 2d 2d  2d 2d 2d 2d 2d 53 55 42  |PT.;.;-------SUB|
00000750  52 4f 55 54 49 4e 45 53  2d 2d 2d 2d 2d 2d 2d 2d  |ROUTINES--------|
00000760  2d 2d 2d 0a 3b 0a 20 20  20 20 20 20 20 20 4f 52  |---.;.        OR|
00000770  47 20 20 20 20 20 48 27  30 36 27 0a 3b 0a 3b 2d  |G     H'06'.;.;-|
00000780  2d 2d 2d 2d 2d 2d 49 4e  49 54 49 41 4c 49 53 45  |------INITIALISE|
00000790  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 3b 0a 49  |------------.;.I|
000007a0  4e 49 54 20 20 20 20 4d  4f 56 4c 57 20 20 20 30  |NIT    MOVLW   0|
000007b0  0a 20 20 20 20 20 20 20  20 4d 4f 56 57 46 20 20  |.        MOVWF  |
000007c0  20 53 57 53 54 41 54 20  20 20 20 20 20 20 20 20  | SWSTAT         |
000007d0  20 3b 20 43 4c 45 41 52  20 53 57 49 54 43 48 20  | ; CLEAR SWITCH |
000007e0  53 54 41 54 55 53 20 52  45 47 49 53 54 45 52 0a  |STATUS REGISTER.|
000007f0  20 20 20 20 20 20 20 20  4d 4f 56 4c 57 20 20 20  |        MOVLW   |
00000800  48 27 46 46 27 20 20 20  20 20 20 20 20 20 20 20  |H'FF'           |
00000810  3b 20 53 45 54 20 54 4f  20 48 27 37 46 20 46 4f  |; SET TO H'7F FO|
00000820  52 20 52 55 4e 4e 49 4e  47 20 4f 4e 20 50 49 43  |R RUNNING ON PIC|
00000830  0a 20 20 20 20 20 20 20  20 4d 4f 56 57 46 20 20  |.        MOVWF  |
00000840  20 52 54 43 43 20 20 20  20 20 20 20 20 20 20 20  | RTCC           |
00000850  20 3b 20 41 4e 44 20 48  27 46 46 27 20 46 4f 52  | ; AND H'FF' FOR|
00000860  20 45 4d 55 4c 41 54 4f  52 0a 20 20 20 20 20 20  | EMULATOR.      |
00000870  20 20 4d 4f 56 4c 57 20  20 20 42 27 30 30 30 30  |  MOVLW   B'0000|
00000880  30 31 30 30 27 20 20 20  20 20 3b 20 53 45 54 20  |0100'     ; SET |
00000890  50 52 45 53 43 41 4c 45  52 20 54 4f 20 44 49 56  |PRESCALER TO DIV|
000008a0  20 42 59 20 33 32 0a 20  20 20 20 20 20 20 20 42  | BY 32.        B|
000008b0  53 46 20 20 20 20 20 53  54 41 54 55 53 2c 52 50  |SF     STATUS,RP|
000008c0  30 20 20 20 20 20 20 3b  20 53 45 54 20 46 4f 52  |0      ; SET FOR|
000008d0  20 52 45 47 49 53 54 45  52 20 50 41 47 45 20 31  | REGISTER PAGE 1|
000008e0  0a 20 20 20 20 20 20 20  20 4d 4f 56 57 46 20 20  |.        MOVWF  |
000008f0  20 4f 50 54 52 45 47 20  20 20 20 20 20 20 20 20  | OPTREG         |
00000900  20 3b 20 4f 50 54 52 45  47 20 49 53 20 49 4e 20  | ; OPTREG IS IN |
00000910  50 41 47 45 20 31 0a 20  20 20 20 20 20 20 20 4d  |PAGE 1.        M|
00000920  4f 56 4c 57 20 20 20 48  27 31 45 27 0a 20 20 20  |OVLW   H'1E'.   |
00000930  20 20 20 20 20 4d 4f 56  57 46 20 20 20 54 52 49  |     MOVWF   TRI|
00000940  53 41 20 20 20 20 20 20  20 20 20 20 20 3b 20 53  |SA           ; S|
00000950  45 54 20 50 4f 52 54 41  20 34 20 49 4e 50 55 54  |ET PORTA 4 INPUT|
00000960  53 2c 20 31 20 4f 55 54  50 55 54 0a 20 20 20 20  |S, 1 OUTPUT.    |
00000970  20 20 20 20 43 4c 52 57  0a 20 20 20 20 20 20 20  |    CLRW.       |
00000980  20 4d 4f 56 57 46 20 20  20 54 52 49 53 42 20 20  | MOVWF   TRISB  |
00000990  20 20 20 20 20 20 20 20  20 3b 20 53 45 54 20 50  |         ; SET P|
000009a0  4f 52 54 42 20 46 4f 52  20 4f 55 54 50 55 54 0a  |ORTB FOR OUTPUT.|
000009b0  20 20 20 20 20 20 20 20  42 43 46 20 20 20 20 20  |        BCF     |
000009c0  53 54 41 54 55 53 2c 52  50 30 20 20 20 20 20 20  |STATUS,RP0      |
000009d0  3b 20 52 45 54 55 52 4e  20 54 4f 20 50 41 47 45  |; RETURN TO PAGE|
000009e0  20 30 0a 20 20 20 20 20  20 20 20 4d 4f 56 57 46  | 0.        MOVWF|
000009f0  20 20 20 50 4f 52 54 41  20 20 20 20 20 20 20 20  |   PORTA        |
00000a00  20 20 20 3b 20 43 4c 45  41 52 20 50 4f 52 54 20  |   ; CLEAR PORT |
00000a10  41 0a 20 20 20 20 20 20  20 20 4d 4f 56 57 46 20  |A.        MOVWF |
00000a20  20 20 50 4f 52 54 42 20  20 20 20 20 20 20 20 20  |  PORTB         |
00000a30  20 20 3b 20 43 4c 45 41  52 20 50 4f 52 54 20 42  |  ; CLEAR PORT B|
00000a40  0a 0a 20 20 20 20 20 20  20 20 42 53 46 20 20 20  |..        BSF   |
00000a50  20 20 49 4e 54 43 4f 4e  2c 54 4f 49 45 20 20 20  |  INTCON,TOIE   |
00000a60  20 20 3b 20 54 49 4d 45  52 20 49 4e 54 45 52 52  |  ; TIMER INTERR|
00000a70  55 50 54 20 45 4e 41 42  4c 45 0a 20 20 20 20 20  |UPT ENABLE.     |
00000a80  20 20 20 52 45 54 55 52  4e 0a 3b 0a 3b 2d 2d 2d  |   RETURN.;.;---|
00000a90  2d 2d 2d 2d 53 45 52 56  49 43 45 20 49 4e 54 45  |----SERVICE INTE|
00000aa0  52 52 55 50 54 2d 2d 2d  2d 2d 0a 3b 0a 49 4e 54  |RRUPT-----.;.INT|
00000ab0  52 50 54 20 20 4d 4f 56  57 46 20 20 20 57 53 41  |RPT  MOVWF   WSA|
00000ac0  56 45 20 20 20 20 20 20  20 20 20 20 20 3b 20 53  |VE           ; S|
00000ad0  41 56 45 20 57 20 52 45  47 49 53 54 45 52 0a 20  |AVE W REGISTER. |
00000ae0  20 20 20 20 20 20 20 53  57 41 50 46 20 20 20 53  |       SWAPF   S|
00000af0  54 41 54 55 53 2c 57 20  20 20 20 20 20 20 20 3b  |TATUS,W        ;|
00000b00  20 53 54 41 54 55 53 20  57 49 4c 4c 20 4e 4f 54  | STATUS WILL NOT|
00000b10  20 42 45 20 43 48 41 4e  47 45 44 0a 20 20 20 20  | BE CHANGED.    |
00000b20  20 20 20 20 4d 4f 56 57  46 20 20 20 53 53 41 56  |    MOVWF   SSAV|
00000b30  45 20 20 20 20 20 20 20  20 20 20 20 3b 20 53 41  |E           ; SA|
00000b40  56 45 20 53 54 41 54 55  53 20 52 45 47 49 53 54  |VE STATUS REGIST|
00000b50  45 52 0a 20 20 20 20 20  20 20 20 42 43 46 20 20  |ER.        BCF  |
00000b60  20 20 20 49 4e 54 43 4f  4e 2c 54 4f 49 46 20 20  |   INTCON,TOIF  |
00000b70  20 20 20 3b 20 43 4c 45  41 52 20 49 4e 54 45 52  |   ; CLEAR INTER|
00000b80  52 55 50 54 20 46 4c 41  47 0a 3b 0a 20 20 20 20  |RUPT FLAG.;.    |
00000b90  20 20 20 20 4d 4f 56 4c  57 20 20 20 48 27 46 46  |    MOVLW   H'FF|
00000ba0  27 20 20 20 20 20 20 20  20 20 20 20 3b 20 53 45  |'           ; SE|
00000bb0  54 20 54 4f 20 48 27 37  46 20 46 4f 52 20 52 55  |T TO H'7F FOR RU|
00000bc0  4e 4e 49 4e 47 20 4f 4e  20 50 49 43 0a 20 20 20  |NNING ON PIC.   |
00000bd0  20 20 20 20 20 4d 4f 56  57 46 20 20 20 52 54 43  |     MOVWF   RTC|
00000be0  43 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 41  |C            ; A|
00000bf0  4e 44 20 48 27 46 46 27  20 46 4f 52 20 45 4d 55  |ND H'FF' FOR EMU|
00000c00  4c 41 54 4f 52 0a 20 20  20 20 20 20 20 20 43 41  |LATOR.        CA|
00000c10  4c 4c 20 20 20 20 45 49  44 4c 59 20 20 20 20 20  |LL    EIDLY     |
00000c20  20 20 20 20 20 20 3b 20  45 58 54 45 4e 44 20 49  |      ; EXTEND I|
00000c30  4e 54 45 52 52 55 50 54  20 44 45 4c 41 59 0a 3b  |NTERRUPT DELAY.;|
00000c40  0a 20 20 20 20 20 20 20  20 53 57 41 50 46 20 20  |.        SWAPF  |
00000c50  20 53 53 41 56 45 2c 57  20 20 20 20 20 20 20 20  | SSAVE,W        |
00000c60  20 3b 20 52 45 53 54 4f  52 45 20 53 54 41 54 55  | ; RESTORE STATU|
00000c70  53 20 57 49 54 48 4f 55  54 0a 20 20 20 20 20 20  |S WITHOUT.      |
00000c80  20 20 4d 4f 56 57 46 20  20 20 53 54 41 54 55 53  |  MOVWF   STATUS|
00000c90  20 20 20 20 20 20 20 20  20 20 3b 20 43 48 41 4e  |          ; CHAN|
00000ca0  47 49 4e 47 20 41 4e 59  20 53 54 41 54 55 53 20  |GING ANY STATUS |
00000cb0  42 49 54 53 0a 20 20 20  20 20 20 20 20 53 57 41  |BITS.        SWA|
00000cc0  50 46 20 20 20 57 53 41  56 45 2c 46 20 20 20 20  |PF   WSAVE,F    |
00000cd0  20 20 20 20 20 3b 20 52  45 53 54 4f 52 45 20 57  |     ; RESTORE W|
00000ce0  20 52 45 47 49 53 54 45  52 20 57 49 54 48 4f 55  | REGISTER WITHOU|
00000cf0  54 0a 20 20 20 20 20 20  20 20 53 57 41 50 46 20  |T.        SWAPF |
00000d00  20 20 57 53 41 56 45 2c  57 20 20 20 20 20 20 20  |  WSAVE,W       |
00000d10  20 20 3b 20 43 48 41 4e  47 49 4e 47 20 41 4e 59  |  ; CHANGING ANY|
00000d20  20 53 54 41 54 55 53 20  42 49 54 53 0a 20 20 20  | STATUS BITS.   |
00000d30  20 20 20 20 20 52 45 54  46 49 45 20 20 20 20 20  |     RETFIE     |
00000d40  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 41  |             ; A|
00000d50  4e 44 20 54 48 45 4e 20  52 45 54 55 52 4e 20 46  |ND THEN RETURN F|
00000d60  52 4f 4d 20 49 4e 54 45  52 52 55 50 54 0a 3b 0a  |ROM INTERRUPT.;.|
00000d70  3b 2d 2d 2d 2d 2d 2d 2d  46 49 4e 44 20 43 48 41  |;-------FIND CHA|
00000d80  4e 47 45 44 20 53 57 49  54 43 48 2d 2d 2d 0a 3b  |NGED SWITCH---.;|
00000d90  0a 53 43 41 4e 20 20 20  20 42 54 46 53 43 20 20  |.SCAN    BTFSC  |
00000da0  20 53 57 4e 55 4d 2c 42  49 54 31 0a 20 20 20 20  | SWNUM,BIT1.    |
00000db0  20 20 20 20 43 41 4c 4c  20 20 20 20 49 4e 54 43  |    CALL    INTC|
00000dc0  52 4c 0a 20 20 20 20 20  20 20 20 4d 4f 56 46 20  |RL.        MOVF |
00000dd0  20 20 20 54 45 4d 50 2c  57 0a 20 20 20 20 20 20  |   TEMP,W.      |
00000de0  20 20 4d 4f 56 57 46 20  20 20 53 57 53 54 41 54  |  MOVWF   SWSTAT|
00000df0  0a 20 20 20 20 20 20 20  20 52 45 54 55 52 4e 0a  |.        RETURN.|
00000e00  3b 0a 3b 2d 2d 2d 2d 2d  2d 2d 49 4e 49 54 49 41  |;.;-------INITIA|
00000e10  4c 49 53 45 20 49 4e 54  45 52 52 55 50 54 53 2d  |LISE INTERRUPTS-|
00000e20  0a 3b 0a 49 4e 54 43 52  4c 20 20 42 54 46 53 53  |.;.INTCRL  BTFSS|
00000e30  20 20 20 53 57 53 54 41  54 2c 42 49 54 31 0a 20  |   SWSTAT,BIT1. |
00000e40  20 20 20 20 20 20 20 42  53 46 20 20 20 20 20 49  |       BSF     I|
00000e50  4e 54 43 4f 4e 2c 47 49  45 20 20 20 20 20 20 3b  |NTCON,GIE      ;|
00000e60  20 47 4c 4f 42 41 4c 20  49 4e 54 45 52 52 55 50  | GLOBAL INTERRUP|
00000e70  54 20 45 4e 41 42 4c 45  0a 20 20 20 20 20 20 20  |T ENABLE.       |
00000e80  20 42 54 46 53 43 20 20  20 53 57 53 54 41 54 2c  | BTFSC   SWSTAT,|
00000e90  42 49 54 31 0a 20 20 20  20 20 20 20 20 42 43 46  |BIT1.        BCF|
00000ea0  20 20 20 20 20 49 4e 54  43 4f 4e 2c 47 49 45 20  |     INTCON,GIE |
00000eb0  20 20 20 20 20 3b 20 47  4c 4f 42 41 4c 20 49 4e  |     ; GLOBAL IN|
00000ec0  54 45 52 52 55 50 54 20  44 49 53 41 42 4c 45 0a  |TERRUPT DISABLE.|
00000ed0  20 20 20 20 20 20 20 20  4d 4f 56 4c 57 20 20 20  |        MOVLW   |
00000ee0  48 27 46 46 27 20 20 20  20 20 20 20 20 20 20 20  |H'FF'           |
00000ef0  3b 20 53 45 54 20 54 4f  20 48 27 37 46 20 46 4f  |; SET TO H'7F FO|
00000f00  52 20 52 55 4e 4e 49 4e  47 20 4f 4e 20 50 49 43  |R RUNNING ON PIC|
00000f10  0a 20 20 20 20 20 20 20  20 4d 4f 56 57 46 20 20  |.        MOVWF  |
00000f20  20 52 54 43 43 20 20 20  20 20 20 20 20 20 20 20  | RTCC           |
00000f30  20 3b 20 41 4e 44 20 48  27 46 46 27 20 46 4f 52  | ; AND H'FF' FOR|
00000f40  20 45 4d 55 4c 41 54 4f  52 0a 20 20 20 20 20 20  | EMULATOR.      |
00000f50  20 20 4d 4f 56 4c 57 20  20 20 48 27 30 31 27 0a  |  MOVLW   H'01'.|
00000f60  20 20 20 20 20 20 20 20  4d 4f 56 57 46 20 20 20  |        MOVWF   |
00000f70  49 44 45 4c 41 59 0a 20  20 20 20 20 20 20 20 52  |IDELAY.        R|
00000f80  45 54 55 52 4e 0a 3b 0a  3b 2d 2d 2d 2d 2d 2d 2d  |ETURN.;.;-------|
00000f90  53 54 45 50 20 4c 45 44  53 2d 2d 2d 2d 2d 2d 2d  |STEP LEDS-------|
00000fa0  2d 2d 2d 2d 2d 2d 0a 3b  0a 53 54 45 50 20 20 20  |------.;.STEP   |
00000fb0  20 4d 4f 56 4c 57 20 20  20 48 27 38 30 27 0a 20  | MOVLW   H'80'. |
00000fc0  20 20 20 20 20 20 20 4d  4f 56 57 46 20 20 20 50  |       MOVWF   P|
00000fd0  4f 52 54 42 0a 20 20 20  20 20 20 20 20 42 43 46  |ORTB.        BCF|
00000fe0  20 20 20 20 20 53 54 41  54 55 53 2c 43 0a 4c 4f  |     STATUS,C.LO|
00000ff0  4f 50 53 4c 20 20 43 41  4c 4c 20 20 20 20 4c 50  |OPSL  CALL    LP|
00001000  41 55 53 45 20 20 20 20  20 20 20 20 20 20 3b 20  |AUSE          ; |
00001010  52 55 4e 4e 49 4e 47 20  4c 49 47 48 54 20 4c 45  |RUNNING LIGHT LE|
00001020  46 54 20 54 4f 20 52 49  47 48 54 0a 20 20 20 20  |FT TO RIGHT.    |
00001030  20 20 20 20 52 52 46 20  20 20 20 20 50 4f 52 54  |    RRF     PORT|
00001040  42 2c 46 0a 20 20 20 20  20 20 20 20 42 54 46 53  |B,F.        BTFS|
00001050  53 20 20 20 53 54 41 54  55 53 2c 43 0a 20 20 20  |S   STATUS,C.   |
00001060  20 20 20 20 20 47 4f 54  4f 20 20 20 20 4c 4f 4f  |     GOTO    LOO|
00001070  50 53 4c 0a 3b 0a 20 20  20 20 20 20 20 20 43 4c  |PSL.;.        CL|
00001080  52 46 20 20 20 20 50 4f  52 54 42 0a 20 20 20 20  |RF    PORTB.    |
00001090  20 20 20 20 43 41 4c 4c  20 20 20 20 4c 50 41 55  |    CALL    LPAU|
000010a0  53 45 0a 3b 0a 20 20 20  20 20 20 20 20 4d 4f 56  |SE.;.        MOV|
000010b0  4c 57 20 20 20 48 27 30  31 27 0a 20 20 20 20 20  |LW   H'01'.     |
000010c0  20 20 20 4d 4f 56 57 46  20 20 20 50 4f 52 54 42  |   MOVWF   PORTB|
000010d0  0a 20 20 20 20 20 20 20  20 42 43 46 20 20 20 20  |.        BCF    |
000010e0  20 53 54 41 54 55 53 2c  43 0a 4c 4f 4f 50 42 20  | STATUS,C.LOOPB |
000010f0  20 20 43 41 4c 4c 20 20  20 20 4c 50 41 55 53 45  |  CALL    LPAUSE|
00001100  20 20 20 20 20 20 20 20  20 20 3b 20 52 55 4e 4e  |          ; RUNN|
00001110  49 4e 47 20 4c 49 47 48  54 20 52 49 47 48 54 20  |ING LIGHT RIGHT |
00001120  54 4f 20 4c 45 46 54 0a  20 20 20 20 20 20 20 20  |TO LEFT.        |
00001130  52 4c 46 20 20 20 20 20  50 4f 52 54 42 2c 46 0a  |RLF     PORTB,F.|
00001140  20 20 20 20 20 20 20 20  42 54 46 53 53 20 20 20  |        BTFSS   |
00001150  53 54 41 54 55 53 2c 43  0a 20 20 20 20 20 20 20  |STATUS,C.       |
00001160  20 47 4f 54 4f 20 20 20  20 4c 4f 4f 50 42 0a 3b  | GOTO    LOOPB.;|
00001170  0a 20 20 20 20 20 20 20  20 43 4c 52 46 20 20 20  |.        CLRF   |
00001180  20 50 4f 52 54 42 0a 20  20 20 20 20 20 20 20 43  | PORTB.        C|
00001190  41 4c 4c 20 20 20 20 4c  50 41 55 53 45 0a 3b 0a  |ALL    LPAUSE.;.|
000011a0  4c 4f 4f 50 52 20 20 20  43 41 4c 4c 20 20 20 20  |LOOPR   CALL    |
000011b0  4c 50 41 55 53 45 20 20  20 20 20 20 20 20 20 20  |LPAUSE          |
000011c0  3b 20 42 49 4e 41 52 59  20 43 4f 55 4e 54 20 55  |; BINARY COUNT U|
000011d0  50 0a 20 20 20 20 20 20  20 20 4d 4f 56 4c 57 20  |P.        MOVLW |
000011e0  20 20 48 27 30 31 27 0a  20 20 20 20 20 20 20 20  |  H'01'.        |
000011f0  41 44 44 57 46 20 20 20  50 4f 52 54 42 2c 46 0a  |ADDWF   PORTB,F.|
00001200  20 20 20 20 20 20 20 20  42 54 46 53 53 20 20 20  |        BTFSS   |
00001210  53 54 41 54 55 53 2c 44  43 0a 20 20 20 20 20 20  |STATUS,DC.      |
00001220  20 20 47 4f 54 4f 20 20  20 20 4c 4f 4f 50 52 0a  |  GOTO    LOOPR.|
00001230  4c 4f 4f 50 52 32 20 20  43 41 4c 4c 20 20 20 20  |LOOPR2  CALL    |
00001240  4c 50 41 55 53 45 20 20  20 20 20 20 20 20 20 20  |LPAUSE          |
00001250  3b 20 42 49 4e 41 52 59  20 43 4f 55 4e 54 20 44  |; BINARY COUNT D|
00001260  4f 57 4e 0a 20 20 20 20  20 20 20 20 44 45 43 46  |OWN.        DECF|
00001270  20 20 20 20 50 4f 52 54  42 2c 46 0a 20 20 20 20  |    PORTB,F.    |
00001280  20 20 20 20 42 54 46 53  53 20 20 20 53 54 41 54  |    BTFSS   STAT|
00001290  55 53 2c 5a 0a 20 20 20  20 20 20 20 20 47 4f 54  |US,Z.        GOT|
000012a0  4f 20 20 20 20 4c 4f 4f  50 52 32 0a 3b 0a 20 20  |O    LOOPR2.;.  |
000012b0  20 20 20 20 20 20 43 4c  52 46 20 20 20 20 50 4f  |      CLRF    PO|
000012c0  52 54 42 0a 20 20 20 20  20 20 20 20 43 41 4c 4c  |RTB.        CALL|
000012d0  20 20 20 20 4c 50 41 55  53 45 0a 20 20 20 20 20  |    LPAUSE.     |
000012e0  20 20 20 52 45 54 55 52  4e 0a 3b 0a 3b 2d 2d 2d  |   RETURN.;.;---|
000012f0  2d 2d 2d 2d 4c 49 54 45  52 41 4c 20 4c 4f 47 49  |----LITERAL LOGI|
00001300  43 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 3b 0a 4c 4f 47  |C---------.;.LOG|
00001310  49 43 20 20 20 43 4c 52  46 20 20 20 20 50 4f 52  |IC   CLRF    POR|
00001320  54 42 0a 20 20 20 20 20  20 20 20 43 41 4c 4c 20  |TB.        CALL |
00001330  20 20 20 4c 50 41 55 53  45 0a 20 20 20 20 20 20  |   LPAUSE.      |
00001340  20 20 42 43 46 20 20 20  20 20 53 54 41 54 55 53  |  BCF     STATUS|
00001350  2c 43 0a 20 20 20 20 20  20 20 20 4d 4f 56 4c 57  |,C.        MOVLW|
00001360  20 20 20 48 27 41 41 27  0a 20 20 20 20 20 20 20  |   H'AA'.       |
00001370  20 4d 4f 56 57 46 20 20  20 50 4f 52 54 42 20 20  | MOVWF   PORTB  |
00001380  20 20 20 20 20 20 20 20  20 3b 20 53 45 54 20 50  |         ; SET P|
00001390  4f 52 54 42 20 54 4f 20  20 20 42 27 31 30 31 30  |ORTB TO   B'1010|
000013a0  20 31 30 31 30 27 0a 20  20 20 20 20 20 20 20 43  | 1010'.        C|
000013b0  41 4c 4c 20 20 20 20 4c  50 41 55 53 45 0a 3b 0a  |ALL    LPAUSE.;.|
000013c0  20 20 20 20 20 20 20 20  4d 4f 56 46 20 20 20 20  |        MOVF    |
000013d0  50 4f 52 54 42 2c 57 0a  20 20 20 20 20 20 20 20  |PORTB,W.        |
000013e0  49 4f 52 4c 57 20 20 20  48 27 35 35 27 20 20 20  |IORLW   H'55'   |
000013f0  20 20 20 20 20 20 20 20  3b 20 4f 52 20 50 4f 52  |        ; OR POR|
00001400  54 42 20 57 49 54 48 20  20 42 27 30 31 30 31 20  |TB WITH  B'0101 |
00001410  30 31 30 31 27 0a 20 20  20 20 20 20 20 20 4d 4f  |0101'.        MO|
00001420  56 57 46 20 20 20 50 4f  52 54 42 20 20 20 20 20  |VWF   PORTB     |
00001430  20 20 20 20 20 20 3b 20  52 45 53 55 4c 54 20 20  |      ; RESULT  |
00001440  20 20 20 20 20 20 20 42  27 31 31 31 31 20 31 31  |       B'1111 11|
00001450  31 31 27 0a 20 20 20 20  20 20 20 20 43 41 4c 4c  |11'.        CALL|
00001460  20 20 20 20 4c 50 41 55  53 45 0a 3b 0a 20 20 20  |    LPAUSE.;.   |
00001470  20 20 20 20 20 4d 4f 56  46 20 20 20 20 50 4f 52  |     MOVF    POR|
00001480  54 42 2c 57 0a 20 20 20  20 20 20 20 20 41 4e 44  |TB,W.        AND|
00001490  4c 57 20 20 20 48 27 45  37 27 20 20 20 20 20 20  |LW   H'E7'      |
000014a0  20 20 20 20 20 3b 20 41  4e 44 20 50 4f 52 54 42  |     ; AND PORTB|
000014b0  20 57 49 54 48 20 42 27  31 31 31 30 20 30 31 31  | WITH B'1110 011|
000014c0  31 27 0a 20 20 20 20 20  20 20 20 4d 4f 56 57 46  |1'.        MOVWF|
000014d0  20 20 20 50 4f 52 54 42  20 20 20 20 20 20 20 20  |   PORTB        |
000014e0  20 20 20 3b 20 52 45 53  55 4c 54 20 20 20 20 20  |   ; RESULT     |
000014f0  20 20 20 20 42 27 31 31  31 30 20 30 31 31 31 27  |    B'1110 0111'|
00001500  0a 20 20 20 20 20 20 20  20 43 41 4c 4c 20 20 20  |.        CALL   |
00001510  20 4c 50 41 55 53 45 0a  3b 0a 20 20 20 20 20 20  | LPAUSE.;.      |
00001520  20 20 4d 4f 56 46 20 20  20 20 50 4f 52 54 42 2c  |  MOVF    PORTB,|
00001530  57 0a 20 20 20 20 20 20  20 20 41 4e 44 4c 57 20  |W.        ANDLW |
00001540  20 20 48 27 37 45 27 20  20 20 20 20 20 20 20 20  |  H'7E'         |
00001550  20 20 3b 20 41 4e 44 20  50 4f 52 54 42 20 57 49  |  ; AND PORTB WI|
00001560  54 48 20 42 27 30 31 31  31 20 31 31 31 30 27 0a  |TH B'0111 1110'.|
00001570  20 20 20 20 20 20 20 20  4d 4f 56 57 46 20 20 20  |        MOVWF   |
00001580  50 4f 52 54 42 20 20 20  20 20 20 20 20 20 20 20  |PORTB           |
00001590  3b 20 52 45 53 55 4c 54  20 20 20 20 20 20 20 20  |; RESULT        |
000015a0  20 42 27 30 31 31 30 20  30 31 31 30 27 0a 20 20  | B'0110 0110'.  |
000015b0  20 20 20 20 20 20 43 41  4c 4c 20 20 20 20 4c 50  |      CALL    LP|
000015c0  41 55 53 45 0a 3b 0a 20  20 20 20 20 20 20 20 4d  |AUSE.;.        M|
000015d0  4f 56 46 20 20 20 20 50  4f 52 54 42 2c 57 0a 20  |OVF    PORTB,W. |
000015e0  20 20 20 20 20 20 20 58  4f 52 4c 57 20 20 20 48  |       XORLW   H|
000015f0  27 30 46 27 20 20 20 20  20 20 20 20 20 20 20 3b  |'0F'           ;|
00001600  20 45 4f 52 20 50 4f 52  54 42 20 57 49 54 48 20  | EOR PORTB WITH |
00001610  42 27 30 30 30 30 20 31  31 31 31 27 0a 20 20 20  |B'0000 1111'.   |
00001620  20 20 20 20 20 4d 4f 56  57 46 20 20 20 50 4f 52  |     MOVWF   POR|
00001630  54 42 20 20 20 20 20 20  20 20 20 20 20 3b 20 52  |TB           ; R|
00001640  45 53 55 4c 54 20 20 20  20 20 20 20 20 20 42 27  |ESULT         B'|
00001650  30 31 31 30 20 31 30 30  31 27 0a 20 20 20 20 20  |0110 1001'.     |
00001660  20 20 20 43 41 4c 4c 20  20 20 20 4c 50 41 55 53  |   CALL    LPAUS|
00001670  45 0a 3b 0a 20 20 20 20  20 20 20 20 4d 4f 56 46  |E.;.        MOVF|
00001680  20 20 20 20 50 4f 52 54  42 2c 57 0a 20 20 20 20  |    PORTB,W.    |
00001690  20 20 20 20 41 44 44 4c  57 20 20 20 48 27 31 37  |    ADDLW   H'17|
000016a0  27 20 20 20 20 20 20 20  20 20 20 20 3b 20 41 44  |'           ; AD|
000016b0  44 20 54 4f 20 50 4f 52  54 42 20 20 20 42 27 30  |D TO PORTB   B'0|
000016c0  30 30 31 20 30 31 31 31  27 0a 20 20 20 20 20 20  |001 0111'.      |
000016d0  20 20 4d 4f 56 57 46 20  20 20 50 4f 52 54 42 20  |  MOVWF   PORTB |
000016e0  20 20 20 20 20 20 20 20  20 20 3b 20 52 45 53 55  |          ; RESU|
000016f0  4c 54 20 20 20 20 20 20  20 20 20 42 27 31 30 30  |LT         B'100|
00001700  30 20 30 30 30 30 27 0a  20 20 20 20 20 20 20 20  |0 0000'.        |
00001710  43 41 4c 4c 20 20 20 20  4c 50 41 55 53 45 0a 3b  |CALL    LPAUSE.;|
00001720  0a 20 20 20 20 20 20 20  20 4d 4f 56 46 20 20 20  |.        MOVF   |
00001730  20 50 4f 52 54 42 2c 57  0a 20 20 20 20 20 20 20  | PORTB,W.       |
00001740  20 53 55 42 4c 57 20 20  20 48 27 37 46 27 20 20  | SUBLW   H'7F'  |
00001750  20 20 20 20 20 20 20 20  20 3b 20 53 55 42 54 52  |         ; SUBTR|
00001760  41 43 54 20 20 20 20 20  20 20 42 27 30 31 31 31  |ACT       B'0111|
00001770  20 31 31 31 31 27 0a 20  20 20 20 20 20 20 20 4d  | 1111'.        M|
00001780  4f 56 57 46 20 20 20 50  4f 52 54 42 20 20 20 20  |OVWF   PORTB    |
00001790  20 20 20 20 20 20 20 3b  20 52 45 53 55 4c 54 20  |       ; RESULT |
000017a0  20 20 20 20 20 20 20 20  42 27 31 31 31 31 20 31  |        B'1111 1|
000017b0  31 31 31 27 0a 20 20 20  20 20 20 20 20 43 41 4c  |111'.        CAL|
000017c0  4c 20 20 20 20 4c 50 41  55 53 45 0a 3b 0a 20 20  |L    LPAUSE.;.  |
000017d0  20 20 20 20 20 20 43 4c  52 46 20 20 20 20 50 4f  |      CLRF    PO|
000017e0  52 54 42 0a 20 20 20 20  20 20 20 20 43 41 4c 4c  |RTB.        CALL|
000017f0  20 20 20 20 4c 50 41 55  53 45 0a 20 20 20 20 20  |    LPAUSE.     |
00001800  20 20 20 52 45 54 55 52  4e 0a 3b 0a 3b 2d 2d 2d  |   RETURN.;.;---|
00001810  2d 2d 2d 2d 42 59 54 45  20 46 55 4e 43 54 49 4f  |----BYTE FUNCTIO|
00001820  4e 53 2d 2d 2d 2d 2d 2d  2d 2d 0a 3b 0a 42 59 54  |NS--------.;.BYT|
00001830  45 20 20 20 20 4d 4f 56  4c 57 20 20 20 48 27 41  |E    MOVLW   H'A|
00001840  41 27 0a 20 20 20 20 20  20 20 20 4d 4f 56 57 46  |A'.        MOVWF|
00001850  20 20 20 50 4f 52 54 42  0a 20 20 20 20 20 20 20  |   PORTB.       |
00001860  20 43 41 4c 4c 20 20 20  20 4c 50 41 55 53 45 0a  | CALL    LPAUSE.|
00001870  3b 0a 20 20 20 20 20 20  20 20 4d 4f 56 4c 57 20  |;.        MOVLW |
00001880  20 20 48 27 35 35 27 20  20 20 20 20 20 20 20 20  |  H'55'         |
00001890  20 20 3b 20 4f 52 20 50  4f 52 54 42 20 57 49 54  |  ; OR PORTB WIT|
000018a0  48 20 20 42 27 30 31 30  31 20 30 31 30 31 27 0a  |H  B'0101 0101'.|
000018b0  20 20 20 20 20 20 20 20  49 4f 52 57 46 20 20 20  |        IORWF   |
000018c0  50 4f 52 54 42 2c 46 20  20 20 20 20 20 20 20 20  |PORTB,F         |
000018d0  3b 20 52 45 53 55 4c 54  20 20 20 20 20 20 20 20  |; RESULT        |
000018e0  20 42 27 31 31 31 31 20  31 31 31 31 27 0a 20 20  | B'1111 1111'.  |
000018f0  20 20 20 20 20 20 43 41  4c 4c 20 20 20 20 4c 50  |      CALL    LP|
00001900  41 55 53 45 0a 3b 0a 20  20 20 20 20 20 20 20 4d  |AUSE.;.        M|
00001910  4f 56 4c 57 20 20 20 48  27 45 37 27 20 20 20 20  |OVLW   H'E7'    |
00001920  20 20 20 20 20 20 20 3b  20 41 4e 44 20 50 4f 52  |       ; AND POR|
00001930  54 42 20 57 49 54 48 20  42 27 31 31 31 30 20 30  |TB WITH B'1110 0|
00001940  31 31 31 27 0a 20 20 20  20 20 20 20 20 41 4e 44  |111'.        AND|
00001950  57 46 20 20 20 50 4f 52  54 42 2c 46 20 20 20 20  |WF   PORTB,F    |
00001960  20 20 20 20 20 3b 20 52  45 53 55 4c 54 20 20 20  |     ; RESULT   |
00001970  20 20 20 20 20 20 42 27  31 31 31 30 20 30 31 31  |      B'1110 011|
00001980  31 27 0a 20 20 20 20 20  20 20 20 43 41 4c 4c 20  |1'.        CALL |
00001990  20 20 20 4c 50 41 55 53  45 0a 3b 0a 20 20 20 20  |   LPAUSE.;.    |
000019a0  20 20 20 20 4d 4f 56 4c  57 20 20 20 48 27 37 45  |    MOVLW   H'7E|
000019b0  27 20 20 20 20 20 20 20  20 20 20 20 3b 20 41 4e  |'           ; AN|
000019c0  44 20 50 4f 52 54 42 20  57 49 54 48 20 42 27 30  |D PORTB WITH B'0|
000019d0  31 31 31 20 31 31 31 30  27 0a 20 20 20 20 20 20  |111 1110'.      |
000019e0  20 20 41 4e 44 57 46 20  20 20 50 4f 52 54 42 2c  |  ANDWF   PORTB,|
000019f0  46 20 20 20 20 20 20 20  20 20 3b 20 52 45 53 55  |F         ; RESU|
00001a00  4c 54 20 20 20 20 20 20  20 20 20 42 27 30 31 31  |LT         B'011|
00001a10  30 20 30 31 31 30 27 0a  20 20 20 20 20 20 20 20  |0 0110'.        |
00001a20  43 41 4c 4c 20 20 20 20  4c 50 41 55 53 45 0a 3b  |CALL    LPAUSE.;|
00001a30  0a 20 20 20 20 20 20 20  20 4d 4f 56 4c 57 20 20  |.        MOVLW  |
00001a40  20 48 27 30 46 27 20 20  20 20 20 20 20 20 20 20  | H'0F'          |
00001a50  20 3b 20 45 4f 52 20 50  4f 52 54 42 20 57 49 54  | ; EOR PORTB WIT|
00001a60  48 20 42 27 30 30 30 30  20 31 31 31 31 27 0a 20  |H B'0000 1111'. |
00001a70  20 20 20 20 20 20 20 58  4f 52 57 46 20 20 20 50  |       XORWF   P|
00001a80  4f 52 54 42 2c 46 20 20  20 20 20 20 20 20 20 3b  |ORTB,F         ;|
00001a90  20 52 45 53 55 4c 54 20  20 20 20 20 20 20 20 20  | RESULT         |
00001aa0  42 27 30 31 31 30 20 31  30 30 31 27 0a 20 20 20  |B'0110 1001'.   |
00001ab0  20 20 20 20 20 43 41 4c  4c 20 20 20 20 4c 50 41  |     CALL    LPA|
00001ac0  55 53 45 0a 3b 0a 20 20  20 20 20 20 20 20 53 57  |USE.;.        SW|
00001ad0  41 50 46 20 20 20 50 4f  52 54 42 2c 46 20 20 20  |APF   PORTB,F   |
00001ae0  20 20 20 20 20 20 3b 20  53 57 41 50 20 50 4f 52  |      ; SWAP POR|
00001af0  54 42 20 4e 49 42 42 4c  45 53 0a 20 20 20 20 20  |TB NIBBLES.     |
00001b00  20 20 20 43 41 4c 4c 20  20 20 20 4c 50 41 55 53  |   CALL    LPAUS|
00001b10  45 20 20 20 20 20 20 20  20 20 20 3b 20 52 45 53  |E          ; RES|
00001b20  55 4c 54 20 20 20 20 20  20 20 20 20 42 27 31 30  |ULT         B'10|
00001b30  30 31 20 30 31 31 30 27  0a 3b 0a 20 20 20 20 20  |01 0110'.;.     |
00001b40  20 20 20 53 57 41 50 46  20 20 20 50 4f 52 54 42  |   SWAPF   PORTB|
00001b50  2c 46 20 20 20 20 20 20  20 20 20 3b 20 53 57 41  |,F         ; SWA|
00001b60  50 20 50 4f 52 54 42 20  4e 49 42 42 4c 45 53 20  |P PORTB NIBBLES |
00001b70  41 47 41 49 4e 0a 20 20  20 20 20 20 20 20 43 41  |AGAIN.        CA|
00001b80  4c 4c 20 20 20 20 4c 50  41 55 53 45 20 20 20 20  |LL    LPAUSE    |
00001b90  20 20 20 20 20 20 3b 20  52 45 53 55 4c 54 20 20  |      ; RESULT  |
00001ba0  20 20 20 20 20 20 20 42  27 30 31 31 30 20 31 30  |       B'0110 10|
00001bb0  30 31 27 0a 3b 0a 20 20  20 20 20 20 20 20 4d 4f  |01'.;.        MO|
00001bc0  56 4c 57 20 20 20 48 27  31 37 27 20 20 20 20 20  |VLW   H'17'     |
00001bd0  20 20 20 20 20 20 3b 20  41 44 44 20 54 4f 20 50  |      ; ADD TO P|
00001be0  4f 52 54 42 20 20 20 42  27 30 30 30 31 20 30 31  |ORTB   B'0001 01|
00001bf0  31 31 27 0a 20 20 20 20  20 20 20 20 41 44 44 57  |11'.        ADDW|
00001c00  46 20 20 20 50 4f 52 54  42 2c 46 20 20 20 20 20  |F   PORTB,F     |
00001c10  20 20 20 20 3b 20 52 45  53 55 4c 54 20 20 20 20  |    ; RESULT    |
00001c20  20 20 20 20 20 42 27 31  30 30 30 20 30 30 30 30  |     B'1000 0000|
00001c30  27 0a 20 20 20 20 20 20  20 20 43 41 4c 4c 20 20  |'.        CALL  |
00001c40  20 20 4c 50 41 55 53 45  0a 3b 0a 20 20 20 20 20  |  LPAUSE.;.     |
00001c50  20 20 20 4d 4f 56 4c 57  20 20 20 48 27 38 31 27  |   MOVLW   H'81'|
00001c60  20 20 20 20 20 20 20 20  20 20 20 3b 20 53 55 42  |           ; SUB|
00001c70  54 52 41 43 54 20 20 20  20 20 20 20 42 27 31 30  |TRACT       B'10|
00001c80  30 30 20 30 30 30 31 27  0a 20 20 20 20 20 20 20  |00 0001'.       |
00001c90  20 53 55 42 57 46 20 20  20 50 4f 52 54 42 2c 46  | SUBWF   PORTB,F|
00001ca0  20 20 20 20 20 20 20 20  20 3b 20 52 45 53 55 4c  |         ; RESUL|
00001cb0  54 20 20 20 20 20 20 20  20 20 42 27 31 31 31 31  |T         B'1111|
00001cc0  20 31 31 31 31 27 0a 20  20 20 20 20 20 20 20 43  | 1111'.        C|
00001cd0  41 4c 4c 20 20 20 20 4c  50 41 55 53 45 0a 3b 0a  |ALL    LPAUSE.;.|
00001ce0  20 20 20 20 20 20 20 20  43 4c 52 46 20 20 20 20  |        CLRF    |
00001cf0  50 4f 52 54 42 0a 20 20  20 20 20 20 20 20 43 41  |PORTB.        CA|
00001d00  4c 4c 20 20 20 20 4c 50  41 55 53 45 0a 20 20 20  |LL    LPAUSE.   |
00001d10  20 20 20 20 20 52 45 54  55 52 4e 0a 3b 0a 3b 2d  |     RETURN.;.;-|
00001d20  2d 2d 2d 2d 2d 2d 4c 4f  4e 47 20 44 45 4c 41 59  |------LONG DELAY|
00001d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 3b 0a 4c  |------------.;.L|
00001d40  50 41 55 53 45 20 20 4d  4f 56 4c 57 20 20 20 48  |PAUSE  MOVLW   H|
00001d50  27 46 46 27 20 20 20 20  20 20 20 20 20 20 20 3b  |'FF'           ;|
00001d60  20 53 45 54 20 54 4f 20  48 27 38 30 27 20 46 4f  | SET TO H'80' FO|
00001d70  52 20 52 55 4e 4e 49 4e  47 20 4f 4e 20 50 49 43  |R RUNNING ON PIC|
00001d80  0a 20 20 20 20 20 20 20  20 4d 4f 56 57 46 20 20  |.        MOVWF  |
00001d90  20 4c 44 45 4c 41 59 20  20 20 20 20 20 20 20 20  | LDELAY         |
00001da0  20 3b 20 41 4e 44 20 48  27 46 46 27 20 46 4f 52  | ; AND H'FF' FOR|
00001db0  20 45 4d 55 4c 41 54 4f  52 0a 4c 4c 4f 4f 50 20  | EMULATOR.LLOOP |
00001dc0  20 20 43 41 4c 4c 20 20  20 20 4d 50 41 55 53 45  |  CALL    MPAUSE|
00001dd0  0a 20 20 20 20 20 20 20  20 49 4e 43 46 20 20 20  |.        INCF   |
00001de0  20 4c 44 45 4c 41 59 2c  46 0a 20 20 20 20 20 20  | LDELAY,F.      |
00001df0  20 20 42 54 46 53 53 20  20 20 53 54 41 54 55 53  |  BTFSS   STATUS|
00001e00  2c 5a 0a 20 20 20 20 20  20 20 20 47 4f 54 4f 20  |,Z.        GOTO |
00001e10  20 20 20 4c 4c 4f 4f 50  0a 20 20 20 20 20 20 20  |   LLOOP.       |
00001e20  20 42 43 46 20 20 20 20  20 53 54 41 54 55 53 2c  | BCF     STATUS,|
00001e30  43 0a 20 20 20 20 20 20  20 20 42 43 46 20 20 20  |C.        BCF   |
00001e40  20 20 53 54 41 54 55 53  2c 5a 0a 20 20 20 20 20  |  STATUS,Z.     |
00001e50  20 20 20 52 45 54 55 52  4e 0a 3b 0a 3b 2d 2d 2d  |   RETURN.;.;---|
00001e60  2d 2d 2d 2d 4d 45 44 49  55 4d 20 44 45 4c 41 59  |----MEDIUM DELAY|
00001e70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 3b 0a 4d 50 41  |----------.;.MPA|
00001e80  55 53 45 20 20 4d 4f 56  4c 57 20 20 20 48 27 46  |USE  MOVLW   H'F|
00001e90  46 27 20 20 20 20 20 20  20 20 20 20 20 3b 20 53  |F'           ; S|
00001ea0  45 54 20 54 4f 20 48 27  30 31 27 20 46 4f 52 20  |ET TO H'01' FOR |
00001eb0  52 55 4e 4e 49 4e 47 20  4f 4e 20 50 49 43 0a 20  |RUNNING ON PIC. |
00001ec0  20 20 20 20 20 20 20 4d  4f 56 57 46 20 20 20 4d  |       MOVWF   M|
00001ed0  44 45 4c 41 59 20 20 20  20 20 20 20 20 20 20 3b  |DELAY          ;|
00001ee0  20 41 4e 44 20 48 27 46  46 27 20 46 4f 52 20 45  | AND H'FF' FOR E|
00001ef0  4d 55 4c 41 54 4f 52 0a  4d 4c 4f 4f 50 20 20 20  |MULATOR.MLOOP   |
00001f00  43 41 4c 4c 20 20 20 20  53 50 41 55 53 45 0a 20  |CALL    SPAUSE. |
00001f10  20 20 20 20 20 20 20 49  4e 43 46 53 5a 20 20 4d  |       INCFSZ  M|
00001f20  44 45 4c 41 59 2c 46 0a  20 20 20 20 20 20 20 20  |DELAY,F.        |
00001f30  47 4f 54 4f 20 20 20 20  4d 4c 4f 4f 50 0a 20 20  |GOTO    MLOOP.  |
00001f40  20 20 20 20 20 20 42 43  46 20 20 20 20 20 53 54  |      BCF     ST|
00001f50  41 54 55 53 2c 43 0a 20  20 20 20 20 20 20 20 52  |ATUS,C.        R|
00001f60  45 54 55 52 4e 0a 3b 0a  3b 2d 2d 2d 2d 2d 2d 2d  |ETURN.;.;-------|
00001f70  53 48 4f 52 54 20 44 45  4c 41 59 2d 2d 2d 2d 2d  |SHORT DELAY-----|
00001f80  2d 2d 2d 2d 2d 2d 0a 3b  0a 53 50 41 55 53 45 20  |------.;.SPAUSE |
00001f90  20 4d 4f 56 4c 57 20 20  20 48 27 30 31 27 20 20  | MOVLW   H'01'  |
00001fa0  20 20 20 20 20 20 20 20  20 3b 20 53 45 54 20 54  |         ; SET T|
00001fb0  4f 20 48 27 30 36 27 20  46 4f 52 20 52 55 4e 4e  |O H'06' FOR RUNN|
00001fc0  49 4e 47 20 50 49 43 0a  20 20 20 20 20 20 20 20  |ING PIC.        |
00001fd0  4d 4f 56 57 46 20 20 20  53 44 45 4c 41 59 20 20  |MOVWF   SDELAY  |
00001fe0  20 20 20 20 20 20 20 20  3b 20 41 4e 44 20 48 27  |        ; AND H'|
00001ff0  30 31 27 20 46 4f 52 20  45 4d 55 4c 41 54 4f 52  |01' FOR EMULATOR|
00002000  0a 53 4c 4f 4f 50 20 20  20 44 45 43 46 53 5a 20  |.SLOOP   DECFSZ |
00002010  20 53 44 45 4c 41 59 2c  46 0a 20 20 20 20 20 20  | SDELAY,F.      |
00002020  20 20 47 4f 54 4f 20 20  20 20 53 4c 4f 4f 50 0a  |  GOTO    SLOOP.|
00002030  20 20 20 20 20 20 20 20  42 43 46 20 20 20 20 20  |        BCF     |
00002040  53 54 41 54 55 53 2c 43  0a 20 20 20 20 20 20 20  |STATUS,C.       |
00002050  20 52 45 54 55 52 4e 0a  3b 0a 3b 2d 2d 2d 2d 2d  | RETURN.;.;-----|
00002060  2d 2d 49 4e 54 45 52 52  55 50 54 20 44 45 4c 41  |--INTERRUPT DELA|
00002070  59 2d 2d 2d 2d 2d 2d 2d  0a 3b 0a 45 49 44 4c 59  |Y-------.;.EIDLY|
00002080  20 20 20 44 45 43 46 20  20 20 20 49 44 45 4c 41  |   DECF    IDELA|
00002090  59 2c 46 0a 20 20 20 20  20 20 20 20 42 54 46 53  |Y,F.        BTFS|
000020a0  53 20 20 20 53 54 41 54  55 53 2c 5a 0a 20 20 20  |S   STATUS,Z.   |
000020b0  20 20 20 20 20 52 45 54  55 52 4e 20 20 20 20 20  |     RETURN     |
000020c0  20 20 20 20 20 20 20 20  20 20 20 20 20 3b 20 45  |             ; E|
000020d0  58 49 54 2c 20 4e 4f 54  20 52 45 41 43 48 45 44  |XIT, NOT REACHED|
000020e0  20 5a 45 52 4f 0a 20 20  20 20 20 20 20 20 4d 4f  | ZERO.        MO|
000020f0  56 4c 57 20 20 20 48 27  30 32 27 20 20 20 20 20  |VLW   H'02'     |
00002100  20 20 20 20 20 20 3b 20  53 45 54 20 54 4f 20 48  |      ; SET TO H|
00002110  27 36 34 27 20 46 4f 52  20 52 55 4e 4e 49 4e 47  |'64' FOR RUNNING|
00002120  20 50 49 43 0a 20 20 20  20 20 20 20 20 4d 4f 56  | PIC.        MOV|
00002130  57 46 20 20 20 49 44 45  4c 41 59 20 20 20 20 20  |WF   IDELAY     |
00002140  20 20 20 20 20 3b 20 41  4e 44 20 48 27 30 32 27  |     ; AND H'02'|
00002150  20 46 4f 52 20 45 4d 55  4c 41 54 4f 52 0a 20 20  | FOR EMULATOR.  |
00002160  20 20 20 20 20 20 4d 4f  56 4c 57 20 20 20 48 27  |      MOVLW   H'|
00002170  30 31 27 0a 20 20 20 20  20 20 20 20 58 4f 52 57  |01'.        XORW|
00002180  46 20 20 20 50 4f 52 54  41 2c 46 20 20 20 20 20  |F   PORTA,F     |
00002190  20 20 20 20 3b 20 54 4f  47 47 4c 45 20 50 4f 52  |    ; TOGGLE POR|
000021a0  54 41 2c 20 4c 45 44 20  30 0a 20 20 20 20 20 20  |TA, LED 0.      |
000021b0  20 20 52 45 54 55 52 4e  0a 3b 0a 3b 2d 2d 2d 2d  |  RETURN.;.;----|
000021c0  2d 2d 2d 50 52 4f 47 52  41 4d 20 53 54 41 52 54  |---PROGRAM START|
000021d0  53 20 48 45 52 45 2d 2d  2d 0a 3b 0a 4d 41 49 4e  |S HERE---.;.MAIN|
000021e0  20 20 20 20 43 41 4c 4c  20 20 20 20 49 4e 49 54  |    CALL    INIT|
000021f0  0a 4c 4f 4f 50 20 20 20  20 4d 4f 56 46 20 20 20  |.LOOP    MOVF   |
00002200  20 50 4f 52 54 41 2c 57  0a 20 20 20 20 20 20 20  | PORTA,W.       |
00002210  20 4d 4f 56 57 46 20 20  20 54 45 4d 50 0a 20 20  | MOVWF   TEMP.  |
00002220  20 20 20 20 20 20 41 4e  44 4c 57 20 20 20 48 27  |      ANDLW   H'|
00002230  31 45 27 0a 20 20 20 20  20 20 20 20 58 4f 52 57  |1E'.        XORW|
00002240  46 20 20 20 53 57 53 54  41 54 2c 57 0a 20 20 20  |F   SWSTAT,W.   |
00002250  20 20 20 20 20 4d 4f 56  57 46 20 20 20 53 57 4e  |     MOVWF   SWN|
00002260  55 4d 0a 20 20 20 20 20  20 20 20 42 54 46 53 53  |UM.        BTFSS|
00002270  20 20 20 53 54 41 54 55  53 2c 5a 20 20 20 20 20  |   STATUS,Z     |
00002280  20 20 20 3b 20 43 48 45  43 4b 20 53 57 49 54 43  |   ; CHECK SWITC|
00002290  48 0a 20 20 20 20 20 20  20 20 43 41 4c 4c 20 20  |H.        CALL  |
000022a0  20 20 53 43 41 4e 0a 20  20 20 20 20 20 20 20 42  |  SCAN.        B|
000022b0  54 46 53 43 20 20 20 53  57 53 54 41 54 2c 42 49  |TFSC   SWSTAT,BI|
000022c0  54 34 0a 20 20 20 20 20  20 20 20 43 41 4c 4c 20  |T4.        CALL |
000022d0  20 20 20 53 54 45 50 0a  20 20 20 20 20 20 20 20  |   STEP.        |
000022e0  42 54 46 53 43 20 20 20  50 4f 52 54 41 2c 42 49  |BTFSC   PORTA,BI|
000022f0  54 33 0a 20 20 20 20 20  20 20 20 43 41 4c 4c 20  |T3.        CALL |
00002300  20 20 20 4c 4f 47 49 43  0a 20 20 20 20 20 20 20  |   LOGIC.       |
00002310  20 42 54 46 53 43 20 20  20 50 4f 52 54 41 2c 42  | BTFSC   PORTA,B|
00002320  49 54 32 0a 20 20 20 20  20 20 20 20 43 41 4c 4c  |IT2.        CALL|
00002330  20 20 20 20 42 59 54 45  0a 20 20 20 20 20 20 20  |    BYTE.       |
00002340  20 47 4f 54 4f 20 20 20  20 4c 4f 4f 50 0a 45 4e  | GOTO    LOOP.EN|
00002350  44 0a                                             |D.|
00002352