📄 hc11demo.sdi
字号:
,,, ;HC11 Pixel Addressable LCD Demo
,,,
,,, #include ioregs.inc
,,, ;MC68HC11A8 I/O Registers.
,,,
,,, PORTA equ $0000
,,, PIOC equ $0002
,,, PORTC equ $0003
,,, PORTB equ $0004
,,, PORTCL equ $0005
,,, DDRC equ $0007
,,, PORTD equ $0008
,,, DDRD equ $0009
,,, PORTE equ $000A
,,, CFORC equ $000B
,,, OC1M equ $000C
,,, OC1D equ $000D
,,, TCNT equ $000E
,,, TIC1 equ $0010
,,, TIC2 equ $0012
,,, TIC3 equ $0014
,,, TOC1 equ $0016
,,, TOC2 equ $0018
,,, TOC3 equ $001A
,,, TOC4 equ $001C
,,, TOC5 equ $001E
,,, TCTL1 equ $0020
,,, TCTL2 equ $0021
,,, TMSK1 equ $0022
,,, TFLG1 equ $0023
,,, TMSK2 equ $0024
,,, TFLG2 equ $0025
,,, PACTL equ $0026
,,, PACNT equ $0027
,,, SPCR equ $0028
,,, SPSR equ $0029
,,, SPDR equ $002A
,,, BAUD equ $002B
,,, SCCR1 equ $002C
,,, SCCR2 equ $002D
,,, SCSR equ $002E
,,, SCDR equ $002F
,,, ADCTL equ $0030
,,, ADR1 equ $0031
,,, ADR2 equ $0032
,,, ADR3 equ $0033
,,, ADR4 equ $0034
,,, OPTION equ $0039
,,, COPRST equ $003A
,,, PPROG equ $003B
,,, HPRIO equ $003C
,,, INIT equ $003D
,,, TEST1 equ $003E
,,, CONFIG equ $003F
,,,
,,,
,,, ;Reset Vectors etc.
,,, org $FFFE
FFFE,F0 00,, dw start
,,,
,,, org $F000
,,,
,,, ;Initialization code:
F000,8E 00 FF,start:, start: lds #$FF
F003,CE 10 00,, ldx #$1000
,,,
F006,BD F8 BE,, jsr lcdinit
,,,
,,, ;Reset the graphics home address:
F009,CC 04 00,main:, main: ldd #$0400
F00C,BD F9 25,, jsr wrdouble
F00F,86 42,, ldaa #LCD_GFXHOME
F011,BD F9 10,, jsr wrcmd
,,,
,,, ;Write the Labcenter logo to the LCD graphics area
,,, ;This is performed in auto-write mode for maximum speed.
F014,CC 04 00,, ldd #$0400
F017,BD F8 F8,, jsr wraddr
F01A,86 B0,, ldaa #LCD_AUTOWRITE
F01C,BD F9 10,, jsr wrcmd
F01F,18 CE F0 BE,, ldy #lxlogo
F023,18 A6 00,loop1, loop1 ldaa 0,Y
F026,BD F9 3F,, jsr awdata
F029,18 08,, iny
F02B,18 8C F3 3E,, cpy #presents
F02F,26 F2,, bne loop1
,,,
F031,BD F0 AF,, jsr delay
,,,
,,, ;Now the word 'presents'. The LCD is still in auto-write mode.
F034,18 A6 00,loop2, loop2 ldaa 0,Y
F037,BD F9 3F,, jsr awdata
F03A,18 08,, iny
F03C,18 8C F4 BE,, cpy #vsmlogo
F040,26 F2,, bne loop2
,,,
F042,BD F0 AF,, jsr delay
,,,
,,,
,,, ;Cancel auto-write mode, then re-start it at the top of the display:
F045,BD F9 54,, jsr awreset
F048,CC 04 00,, ldd #$0400
F04B,BD F8 F8,, jsr wraddr
F04E,86 B0,, ldaa #LCD_AUTOWRITE
F050,BD F9 10,, jsr wrcmd
,,,
,,, ;Now the VSM logo is transferred:
F053,18 CE F4 BE,, ldy #vsmlogo
F057,18 A6 00,loop3, loop3 ldaa 0,Y
F05A,BD F9 3F,, jsr awdata
F05D,18 08,, iny
F05F,18 8C F8 BE,, cpy #vsmlogoend
F063,26 F2,, bne loop3
F065,BD F9 54,, jsr awreset
,,,
F068,BD F0 AF,, jsr delay
,,,
,,, ;Finally, we scroll it off the screen by moving the GFXHOME address
,,, ;downwards by one row (16 bytes) at a time.
F06B,CC 04 00,, ldd #$0400
F06E,36,loop4a, loop4a psha
F06F,37,, pshb
F070,BD F9 25,, jsr wrdouble
F073,86 42,, ldaa #LCD_GFXHOME
F075,BD F9 10,, jsr wrcmd
F078,CC 03 E8,, ldd #1000
F07B,83 00 01,loop4b, loop4b subd #1
F07E,26 FB,, bne loop4b
F080,33,, pulb
F081,32,, pula
F082,C3 00 10,, addd #16
F085,1A 83 08 00,, cpd #$0800
F089,26 E3,, bne loop4a
,,,
F08B,BD F0 AF,, jsr delay
,,,
,,, ;Clear the screeen so that we are ready to start again.
,,, ;The graphics screen occupies 1k of memory.
F08E,CC 04 00,, ldd #$0400
F091,BD F8 F8,, jsr wraddr
F094,86 B0,, ldaa #LCD_AUTOWRITE
F096,BD F9 10,, jsr wrcmd
F099,18 CE 00 00,, ldy #0
F09D,4F,loop5, loop5 clra
F09E,BD F9 3F,, jsr awdata
F0A1,18 08,, iny
F0A3,18 8C 04 00,, cpy #$0400
F0A7,26 F4,, bne loop5
F0A9,BD F9 54,, jsr awreset
,,,
,,, ;And round we go again...
F0AC,7E F0 09,, jmp main
,,,
,,, ;Subroutine to create a pause.
F0AF,CC 00 00,delay:, delay: ldd #0
F0B2,83 00 01,dloop, dloop subd #1
F0B5,01,, nop
F0B6,01,, nop
F0B7,01,, nop
F0B8,01,, nop
F0B9,01,, nop
F0BA,01,, nop
F0BB,26 F5,, bne dloop
F0BD,39,, rts
,,,
,,,
,,,
,,, ;The Labcenter Logo bitmap
F0BE,00,lxlogo:, lxlogo: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0BF,00,,
F0C0,00,,
F0C1,00,,
F0C2,00,,
F0C3,00,,
F0C4,00,,
F0C5,00,,
F0C6,00,,
F0C7,00,,
F0C8,00,,
F0C9,00,,
F0CA,00,,
F0CB,00,,
F0CC,00,,
F0CD,00,,
F0CE,00,, db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0CF,00,,
F0D0,00,,
F0D1,00,,
F0D2,00,,
F0D3,00,,
F0D4,00,,
F0D5,00,,
F0D6,00,,
F0D7,00,,
F0D8,00,,
F0D9,00,,
F0DA,00,,
F0DB,00,,
F0DC,00,,
F0DD,00,,
F0DE,00,, db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0DF,00,,
F0E0,00,,
F0E1,00,,
F0E2,00,,
F0E3,00,,
F0E4,00,,
F0E5,00,,
F0E6,00,,
F0E7,00,,
F0E8,00,,
F0E9,00,,
F0EA,00,,
F0EB,00,,
F0EC,00,,
F0ED,00,,
F0EE,00,, db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0EF,00,,
F0F0,00,,
F0F1,00,,
F0F2,00,,
F0F3,00,,
F0F4,00,,
F0F5,00,,
F0F6,00,,
F0F7,00,,
F0F8,00,,
F0F9,00,,
F0FA,00,,
F0FB,00,,
F0FC,00,,
F0FD,00,,
F0FE,1E,, db $1E,$00,$00,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0FF,00,,
F100,00,,
F101,40,,
F102,00,,
F103,00,,
F104,00,,
F105,00,,
F106,00,,
F107,00,,
F108,00,,
F109,00,,
F10A,00,,
F10B,00,,
F10C,00,,
F10D,00,,
F10E,1E,, db $1E,$00,$00,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F10F,00,,
F110,00,,
F111,40,,
F112,00,,
F113,00,,
F114,00,,
F115,00,,
F116,00,,
F117,00,,
F118,00,,
F119,00,,
F11A,00,,
F11B,00,,
F11C,00,,
F11D,00,,
F11E,1E,, db $1E,$00,$00,$40,$00,$00,$00,$00,$00,$00,$20,$00,$00,$00,$00,$00
F11F,00,,
F120,00,,
F121,40,,
F122,00,,
F123,00,,
F124,00,,
F125,00,,
F126,00,,
F127,00,,
F128,20,,
F129,00,,
F12A,00,,
F12B,00,,
F12C,00,,
F12D,00,,
F12E,1E,, db $1E,$00,$00,$40,$00,$00,$00,$00,$00,$00,$20,$00,$00,$00,$00,$00
F12F,00,,
F130,00,,
F131,40,,
F132,00,,
F133,00,,
F134,00,,
F135,00,,
F136,00,,
F137,00,,
F138,20,,
F139,00,,
F13A,00,,
F13B,00,,
F13C,00,,
F13D,00,,
F13E,1E,, db $1E,$00,$00,$40,$00,$00,$00,$00,$00,$00,$20,$00,$00,$00,$00,$00
F13F,00,,
F140,00,,
F141,40,,
F142,00,,
F143,00,,
F144,00,,
F145,00,,
F146,00,,
F147,00,,
F148,20,,
F149,00,,
F14A,00,,
F14B,00,,
F14C,00,,
F14D,00,,
F14E,1E,, db $1E,$07,$FE,$7F,$E0,$3F,$C0,$FE,$03,$F8,$3F,$C0,$3F,$C0,$FF,$00
F14F,07,,
F150,FE,,
F151,7F,,
F152,E0,,
F153,3F,,
F154,C0,,
F155,FE,,
F156,03,,
F157,F8,,
F158,3F,,
F159,C0,,
F15A,3F,,
F15B,C0,,
F15C,FF,,
F15D,00,,
F15E,1E,, db $1E,$08,$02,$40,$10,$40,$01,$01,$04,$04,$20,$00,$40,$40,$80,$80
F15F,08,,
F160,02,,
F161,40,,
F162,10,,
F163,40,,
F164,01,,
F165,01,,
F166,04,,
F167,04,,
F168,20,,
F169,00,,
F16A,40,,
F16B,40,,
F16C,80,,
F16D,80,,
F16E,1E,, db $1E,$08,$02,$40,$10,$80,$02,$00,$88,$02,$20,$00,$40,$21,$00,$80
F16F,08,,
F170,02,,
F171,40,,
F172,10,,
F173,80,,
F174,02,,
F175,00,,
F176,88,,
F177,02,,
F178,20,,
F179,00,,
F17A,40,,
F17B,21,,
F17C,00,,
F17D,80,,
F17E,1E,, db $1E,$10,$02,$40,$08,$80,$02,$00,$88,$02,$20,$00,$80,$12,$00,$40
F17F,10,,
F180,02,,
F181,40,,
F182,08,,
F183,80,,
F184,02,,
F185,00,,
F186,88,,
F187,02,,
F188,20,,
F189,00,,
F18A,80,,
F18B,12,,
F18C,00,,
F18D,40,,
F18E,1E,, db $1E,$10,$02,$40,$09,$00,$04,$00,$88,$01,$20,$00,$80,$12,$00,$40
F18F,10,,
F190,02,,
F191,40,,
F192,09,,
F193,00,,
F194,04,,
F195,00,,
F196,88,,
F197,01,,
F198,20,,
F199,00,,
F19A,80,,
F19B,12,,
F19C,00,,
F19D,40,,
F19E,1E,, db $1E,$10,$02,$40,$09,$00,$07,$FF,$D0,$01,$20,$00,$FF,$F2,$00,$00
F19F,10,,
F1A0,02,,
F1A1,40,,
F1A2,09,,
F1A3,00,,
F1A4,07,,
F1A5,FF,,
F1A6,D0,,
F1A7,01,,
F1A8,20,,
F1A9,00,,
F1AA,FF,,
F1AB,F2,,
F1AC,00,,
F1AD,00,,
F1AE,1E,, db $1E,$10,$02,$40,$09,$00,$04,$00,$10,$01,$20,$04,$80,$02,$00,$00
F1AF,10,,
F1B0,02,,
F1B1,40,,
F1B2,09,,
F1B3,00,,
F1B4,04,,
F1B5,00,,
F1B6,10,,
F1B7,01,,
F1B8,20,,
F1B9,04,,
F1BA,80,,
F1BB,02,,
F1BC,00,,
F1BD,00,,
F1BE,1E,, db $1E,$10,$02,$40,$08,$80,$02,$00,$10,$01,$20,$04,$80,$02,$00,$00
F1BF,10,,
F1C0,02,,
F1C1,40,,
F1C2,08,,
F1C3,80,,
F1C4,02,,
F1C5,00,,
F1C6,10,,
F1C7,01,,
F1C8,20,,
F1C9,04,,
F1CA,80,,
F1CB,02,,
F1CC,00,,
F1CD,00,,
F1CE,1E,, db $1E,$08,$02,$40,$10,$80,$02,$00,$10,$01,$10,$08,$40,$02,$00,$00
F1CF,08,,
F1D0,02,,
F1D1,40,,
F1D2,10,,
F1D3,80,,
F1D4,02,,
F1D5,00,,
F1D6,10,,
F1D7,01,,
F1D8,10,,
F1D9,08,,
F1DA,40,,
F1DB,02,,
F1DC,00,,
F1DD,00,,
F1DE,1E,, db $1E,$08,$02,$40,$10,$40,$01,$00,$10,$01,$10,$18,$40,$02,$00,$00
F1DF,08,,
F1E0,02,,
F1E1,40,,
F1E2,10,,
F1E3,40,,
F1E4,01,,
F1E5,00,,
F1E6,10,,
F1E7,01,,
F1E8,10,,
F1E9,18,,
F1EA,40,,
F1EB,02,,
F1EC,00,,
F1ED,00,,
F1EE,1E,, db $1E,$06,$02,$40,$60,$30,$00,$C0,$10,$01,$0C,$60,$30,$02,$00,$00
F1EF,06,,
F1F0,02,,
F1F1,40,,
F1F2,60,,
F1F3,30,,
F1F4,00,,
F1F5,C0,,
F1F6,10,,
F1F7,01,,
F1F8,0C,,
F1F9,60,,
F1FA,30,,
F1FB,02,,
F1FC,00,,
F1FD,00,,
F1FE,1E,, db $1E,$01,$FE,$7F,$80,$0F,$E0,$3F,$90,$01,$03,$80,$0F,$E2,$00,$00
F1FF,01,,
F200,FE,,
F201,7F,,
F202,80,,
F203,0F,,
F204,E0,,
F205,3F,,
F206,90,,
F207,01,,
F208,03,,
F209,80,,
F20A,0F,,
F20B,E2,,
F20C,00,,
F20D,00,,
F20E,1E,, db $1E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F20F,00,,
F210,00,,
F211,00,,
F212,00,,
F213,00,,
F214,00,,
F215,00,,
F216,00,,
F217,00,,
F218,00,,
F219,00,,
F21A,00,,
F21B,00,,
F21C,00,,
F21D,00,,
F21E,1E,, db $1E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F21F,00,,
F220,00,,
F221,00,,
F222,00,,
F223,00,,
F224,00,,
F225,00,,
F226,00,,
F227,00,,
F228,00,,
F229,00,,
F22A,00,,
F22B,00,,
F22C,00,,
F22D,00,,
F22E,1F,, db $1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F8
F22F,FF,,
F230,FF,,
F231,FF,,
F232,FF,,
F233,FF,,
F234,FF,,
F235,FF,,
F236,FF,,
F237,FF,,
F238,FF,,
F239,FF,,
F23A,FF,,
F23B,FF,,
F23C,FF,,
F23D,F8,,
F23E,1F,, db $1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F8
F23F,FF,,
F240,FF,,
F241,FF,,
F242,FF,,
F243,FF,,
F244,FF,,
F245,FF,,
F246,FF,,
F247,FF,,
F248,FF,,
F249,FF,,
F24A,FF,,
F24B,FF,,
F24C,FF,,
F24D,F8,,
F24E,1F,, db $1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F8
F24F,FF,,
F250,FF,,
F251,FF,,
F252,FF,,
F253,FF,,
F254,FF,,
F255,FF,,
F256,FF,,
F257,FF,,
F258,FF,,
F259,FF,,
F25A,FF,,
F25B,FF,,
F25C,FF,,
F25D,F8,,
F25E,1F,, db $1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F8
F25F,FF,,
F260,FF,,
F261,FF,,
F262,FF,,
F263,FF,,
F264,FF,,
F265,FF,,
F266,FF,,
F267,FF,,
F268,FF,,
F269,FF,,
F26A,FF,,
F26B,FF,,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -