Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :BasicUpstart2(main)
- .label PamiecEkranu = $4400
- .label Ramka = $d020
- .label Ekran = $d021
- .label memory_setup_register_D018 = $d018
- .label VIC_bank = $dd00
- //----------------------------------------------------------
- // Code for creating the breakpoint file sent to Vice.
- //----------------------------------------------------------
- .var _useBinFolderForBreakpoints = cmdLineVars.get("usebin") == "true"
- .var _createDebugFiles = cmdLineVars.get("afo") == "true"
- .print "File creation " + [_createDebugFiles
- ? "enabled (creating breakpoint file)"
- : "disabled (no breakpoint file created)"]
- .var brkFile
- .if(_createDebugFiles) {
- .if(_useBinFolderForBreakpoints)
- .eval brkFile = createFile("bin/breakpoints.txt")
- else
- .eval brkFile = createFile("breakpoints.txt")
- }
- .macro break() {
- .if(_createDebugFiles) {
- .eval brkFile.writeln("break " + toHexString(*))
- }
- }
- //------------------------------------------------------
- .macro trybTekstowy () {
- lda #$1b
- sta $d011
- lda #$c8
- sta $d016
- }
- .macro trybGraficzny()
- {
- lda #$3b
- sta $d011
- lda #$08
- sta $d016
- }
- .macro wybierz_index_charmem_pamieci_D018(index) {
- lda memory_setup_register_D018
- and #%11110001 // ustawia tylko bity oznaczone 0
- ora #[index << 1] // wybiera numer strony pamięci według mapy C64 z netu
- sta memory_setup_register_D018 // zapisuje do $D018
- }
- .macro wybierz_index_screen_memory_pamieci_D018(index) {
- lda memory_setup_register_D018
- and #%00001111 // ustawia tylko bity oznaczone 0
- ora #[index << 4] // wybiera numer strony pamięci według mapy C64 z netu
- sta memory_setup_register_D018 // zapisuje do $D018
- }
- .macro wybierz_index_banku_pamieci_VIC_DD00(index) {
- lda VIC_bank
- and #%11111100 // zeruje bit #0 i #1
- ora #[index ^ %00000011] // XOR na wartości z index
- sta VIC_bank
- }
- .macro ClearScreen(PamiecEkranu, clearByte) {
- lda #clearByte
- ldx #0
- !loop:
- sta PamiecEkranu, x
- sta PamiecEkranu + $100, x
- sta PamiecEkranu + $200, x
- sta PamiecEkranu + $300, x
- inx
- bne !loop-
- }
- .macro ClearScreen_DOL(PamiecEkranu, clearByte) {
- lda #clearByte
- ldx #0
- !loop:
- sta PamiecEkranu+633, x
- sta PamiecEkranu+633+100, x
- inx
- bne !loop-
- }
- main:
- sei //wyłączenie flafi przerwania
- :wybierz_index_banku_pamieci_VIC_DD00(1)
- // lda #BLACK
- // sta Ekran
- // sta Ramka // wszystko na czarno
- ldy #$7f ////; $7f = %01111111
- sty $dc0d ////; wyłączamy timer CIA
- sty $dd0d ////; ; wyłączamy timer CIA
- lda $dc0d ////; kasuje wszystki przerwania CIA w kolejce
- lda $dd0d ////; kasuje wszystki przerwania CIA w kolejce
- lda #$01 ////; Set Interrupt Request Mask...
- sta $d01a ////; ...we want IRQ by Rasterbeam
- lda #<irq1 ////; wskaźnik to IRQ
- ldx #>irq1
- sta $314 ////; zapisz tutaj
- stx $315
- lda #$00 ////; ustawiam pierwsze przerwanie na raster 0
- sta $d012
- lda $d011 ////; ustawiam 9 bit z $d011 na 0
- and #$7f ////;
- sta $d011 ////;
- :ClearScreen(PamiecEkranu,$20)
- jsr obrazek
- cli
- jsr wyswietl_text_1
- jsr wyswietl_text_2
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- :ClearScreen_DOL($4400,$20)
- jsr wyswietl_text_3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- :ClearScreen_DOL($4400,$20)
- jsr wyswietl_text_4
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- :ClearScreen_DOL($4400,$20)
- jsr wyswietl_text_5
- jsr wyswietl_text_6
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- jsr opoznienie3
- :ClearScreen_DOL($4400,$20)
- jsr wyswietl_text_7
- jmp *
- irq2: inc $d019
- lda #$60
- sta $d012
- jsr colwash
- :trybTekstowy()
- :wybierz_index_charmem_pamieci_D018(1)
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- lda #BLACK
- sta Ekran
- lda #WHITE
- sta Ramka
- lda #<irq3
- sta $0314
- lda #>irq3
- sta $0315
- pla
- tay
- pla
- tax
- pla
- rti
- irq3: inc $d019
- lda #$b0
- sta $d012
- :break()
- :trybGraficzny()
- :wybierz_index_charmem_pamieci_D018(6)
- lda #WHITE
- // sta Ekran
- sta Ramka
- lda #<irq1
- sta $0314
- lda #>irq1
- sta $0315
- pla
- tay
- pla
- tax
- pla
- rti
- irq1: inc $d019
- lda #$f0
- sta $d012
- :trybTekstowy()
- :wybierz_index_charmem_pamieci_D018(2)
- lda #BLACK
- sta Ekran
- sta Ramka
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- lda #WHITE
- sta Ekran
- //sta Ramka
- lda #<irq2
- sta $0314
- lda #>irq2
- sta $0315
- pla
- tay
- pla
- tax
- pla
- rti
- wyswietl_text_1:
- ldx #$00
- !petla:
- lda teksty,x
- sta PamiecEkranu+40,x
- jsr opoznienie
- cpx #72
- beq powrot
- inx
- bne !petla-
- powrot:
- rts
- wyswietl_text_2:
- ldx #$00
- !petla:
- lda tekst_2,x
- sta PamiecEkranu+633,x
- jsr opoznienie
- cpx #195
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- wyswietl_text_3:
- ldx #$00
- !petla:
- lda tekst_8,x
- sta PamiecEkranu+845,x
- jsr opoznienie
- cpx #31
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- wyswietl_text_4:
- ldx #$00
- !petla:
- lda tekst_10,x
- sta PamiecEkranu+643,x
- jsr opoznienie
- cpx #249
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- wyswietl_text_5:
- ldx #$00
- !petla:
- lda tekst_15,x
- sta PamiecEkranu+642,x
- jsr opoznienie
- cpx #255
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- wyswietl_text_6:
- ldx #$00
- !petla:
- lda tekst_16,x
- sta PamiecEkranu+880,x
- jsr opoznienie
- cpx #51
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- wyswietl_text_7:
- ldx #$00
- !petla:
- lda tekst_17,x
- sta PamiecEkranu+851,x
- jsr opoznienie
- cpx #22
- beq !powrot+
- inx
- bne !petla-
- !powrot:
- rts
- opoznienie:
- txa
- ldx #$00
- petla1:
- ldy #$00
- petla2:
- iny
- cpy #$40
- bne petla2
- inx
- cpx #$90
- bne petla1
- tax
- rts
- colwash: ldx #$27
- lda color+$27
- cycle1: ldy color-1,x
- sta color-1,x
- sta $d800,x
- tya
- dex
- bne cycle1
- sta color+$27
- sta $d800
- colwash2: ldx #$00
- lda color2+$27
- cycle2: ldy color2,x
- sta color2,x
- sta $d822,x
- tya
- inx
- cpx #$26
- bne cycle2
- sta color2+$27
- sta $d820+$27
- rts
- colwash2_1: ldx #$2d
- lda color+$2a
- !cycle1: ldy color-1,x
- sta color-1,x
- sta $d800+593,x
- tya
- dex
- bne !cycle1-
- sta color+$2d
- sta $d800+593
- colwash2_2: ldx #$00
- lda color2+$27
- !cycle2: ldy color2,x
- sta color2,x
- sta $d822,x
- tya
- inx
- cpx #$26
- bne !cycle2-
- sta color2+$27
- sta $d820+$27
- rts
- colwash_dol: ldx #$27
- lda color+$27
- cycle1_dol: ldy color-1,x
- sta color-1,x
- sta $d800+920,x
- tya
- dex
- bne cycle1_dol
- sta color+$27
- sta $d800+920
- colwash2_dol: ldx #$00
- lda color2+$27
- cycle2_dol: ldy color2,x
- sta color2,x
- sta $dbb2,x
- tya
- inx
- cpx #$26
- bne cycle2_dol
- sta color2+$27
- sta $db20+$27
- rts
- color: .byte $09,$09,$02,$02,$08
- .byte $08,$0a,$0a,$0f,$0f
- .byte $07,$07,$01,$01,$01
- .byte $01,$01,$01,$01,$01
- .byte $01,$01,$01,$01,$01
- .byte $01,$01,$01,$07,$07
- .byte $0f,$0f,$0a,$0a,$08
- .byte $08,$02,$02,$09,$09
- color2: .byte $09,$09,$02,$02,$08
- .byte $08,$0a,$0a,$0f,$0f
- .byte $07,$07,$01,$01,$01
- .byte $01,$01,$01,$01,$01
- .byte $01,$01,$01,$01,$01
- .byte $01,$01,$01,$07,$07
- .byte $0f,$0f,$0a,$0a,$08
- .byte $08,$02,$02,$09,$09
- obrazek:
- ldx #$ff
- laduj_obrazek:
- :break()
- // lda $3f40+$4000,x
- // sta PamiecEkranu,x
- lda $3f40+$4000+256,x
- sta PamiecEkranu+256,x
- lda $3f40+$4000+300,x
- sta PamiecEkranu+300,x
- // lda $3f40+$4000+768,x
- // sta PamiecEkranu+768,x
- dex
- bne laduj_obrazek
- rts
- opoznienie2:
- txa
- ldx #$00
- petla1_2:
- ldy #$00
- petla2_2:
- iny
- cpy #$50
- bne petla2_2
- inx
- cpx #$90
- bne petla1_2
- tax
- rts
- opoznienie3:
- txa
- ldx #$00
- petla4_1:
- ldy #$00
- petla4_2:
- iny
- cpy #$ff
- bne petla4_2
- inx
- cpx #$ff
- bne petla4_1
- tax
- rts
- teksty:
- .text " yugorin of samar productions"
- teksty_dolne:
- .text " prezentuje pierwsze wypociny"
- tekst_2:
- .text " nie umiem jeszcze zrobic scrolla"
- tekst_3:
- .text " ale to kwestia czasu."
- tekst_4:
- .text " bardzo chcialem zrobic pierwsze"
- tekst_5:
- .text "'cokolwiek', zeby moc powiedziecwszystkim"
- tekst_6:
- .text " ze po 30 latach jestem tu, gdzie"
- tekst_7:
- .text " przerwalem jako dziecko."
- tekst_8:
- .text " nigdy nie zrobilem scrolla :-) "
- tekst_10:
- .text "dziekuje dkt, isildurowi"
- tekst_11:
- .text " i slejerkowi za wiare we mnie."
- tekst_12:
- .text "calemu samarowi za przyjecie,"
- tekst_13:
- .text "jammerowi za opierdol na startza dropboxa :-p"
- tekst_14:
- .text " wielkie dzieki mojemu mlodszemu bratu"
- .text " programiscie (fucking genius) !!!"
- .text " za wsparcie, wiare we mnie, cierpliwosc."
- tekst_15:
- .text " to, ze skubany nie zna asm"
- .text " a tlumaczy mi co robie zle"
- .text " sprawia,ze jestem dumny"
- .text " z niego jak nikt na swiecie."
- .text "namawiam go na kodzenie w asm "
- .text "na c64. zobaczymy co z tego wyjdzie."
- .text "na koniec dziekuje asi i biance "
- .text "za to, ze jeszcze nie zwariowaly "
- tekst_16:
- .text "bo na kazde pytanie co robie "
- .text "odpowiadam 'kodze' ;-p"
- tekst_17:
- .text " sceno - przybywam !!!!"
- .pc = $6000
- .import c64 "smrlogo.art"
- .pc = $4800
- .import c64 "mega_designer_3_c.64c"
- .pc = $5000
- .import c64 "amigo_s.64c"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement