atarionline.pl Assembler 6502 - odwapnianie mózgu :) - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 12:04
       
      Loader moze zaladowac font ktory potem mozna uzyc, prawda?
      • 2: CommentAuthorxxl
      • CommentTime3 Apr 2019 12:04
       
      prawda
      • 3: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 12:04 zmieniony
       
      No w kazdym badz razie, nic nie pomoglo :(

      icl 'atari.hea'

      CHARSET_ADDRESS equ $D800; // same as in intro and game
      org CHARSET_ADDRESS
      ins '../assets/Nvdi8.fnt'
      org $0580

      introfile .byte c'INTRO XEX' ; 11 characters ATASCII (8.3 without the dot, space padded)
      gamefile .byte c'STARV XEX'
      xBiosIOresult .byte
      xBiosIOerror .byte


      loadfile
      mva #0 xBiosIOresult
      sta xBiosIOerror
      adr1 ldy #0
      adr2 ldx #0
      jsr xBIOS_LOAD_FILE
      bcc @+
      stx xBiosIOerror
      mva #1 xBiosIOresult
      @ rts



      ;---------------------------------------------------------
      dlist
      .byte DL_BLANK8, DL_BLANK8, DL_BLANK8
      .byte DL_MODE_40x24T2 + DL_LMS, a(vmem)
      .byte DL_JVB, a(dlist)

      vmem
      .byte " LOADING... "
      main


      mva #.hi(CHARSET_ADDRESS) chbas
      mva #.hi(CHARSET_ADDRESS) chbase

      mva #28 colpf1s
      mva #0 colpf0s
      mva #0 colpf2s
      mva #0 colpf3s
      mva #0 colbaks
      mwa #dlist sdlstl

      intro mva <introfile adr1+1
      mva >introfile adr2+1
      jsr loadfile

      mva #28 colpf1
      mva #0 colpf0
      mva #0 colpf2
      mva #0 colpf3
      mva #0 colbak
      mwa #dlist dlistl

      game mva <gamefile adr1+1
      mva >gamefile adr2+1
      jmp loadfile

      run main

      • 4: CommentAuthorxxl
      • CommentTime3 Apr 2019 12:04
       
      ale wiesz zeby to dzialalo... to ladowanie pod $D8xx mozesz wykonac tylko z WYŁĄCZONYM OS ?
      • 5: CommentAuthorgorgh
      • CommentTime3 Apr 2019 12:04
       
      MADRAFi: ja bym tobie radził najpierw przyswoić sobie składnie MADSa porządnie, potem przeczytać kurs assemblera Tebe i potem przeczytać dokumentację xBiosa, bez tego ciągle będziesz miał problemy. Nie rzucaj się z motyką na słońce jak nie znasz podstaw.
      • 6: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 13:04
       
      Gorgh,
      Dzieki za porade. Z takim podejscie do dzisiaj bym czytal.
      Od samego czytania jeszcze nikt sie nie nauczyl.
      Trzeba probowac, a ktos bardziej obeznany musi korygowac bledy.

      Niestety potrzebna jest praktyka a nie same czytanie.
      • 7: CommentAuthorgorgh
      • CommentTime3 Apr 2019 13:04
       
      spoczko, sam chętnie pomogę, ale z twoich postów wynika, że masz podstawowe braki
      • 8: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 13:04 zmieniony
       
      Mam braki bo wogle nie mam ochoty na asm a zmusilo mnie do tego zycie :)

      wiec probuje zalatac ten program i skupic sie na Mad-Pascalu :)

      co do loadera, dodalem systemoff, tylko pytanie mam, czy to onacza ze powinienem przestawic bit nmi w xbios.cfg ?
      • 9: CommentAuthorgorgh
      • CommentTime3 Apr 2019 13:04
       
      a to ok, myślałem, że chcesz kodować w asm, przepraszam zatem
      • 10: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 13:04
       
      Probowalem zmienic ten bit nmi, i to nie pomoglo. Dalej pomysly mi sie skonczyly.
      • 11: CommentAuthorxxl
      • CommentTime3 Apr 2019 13:04
       
      w config masz bajt odpowiedzialny za PORTB ustaw o na FE a NMI i IRQ na 00...
      • 12: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 13:04
       
      Ustawilem :)
      Poslalem mail z source, moze zauwazysz jaka glupote zrobilem :)
      • 13: CommentAuthorxxl
      • CommentTime3 Apr 2019 14:04
       
      0C50: AD 0B D4 LDA $D40B ;VCOUNT
      0C53: D0 FB BNE $0C50
      0C55: A9 FF LDA #$FF
      0C57: 8D 01 D3 STA $D301 ;PORTB
      0C5A: CE 0E D4 DEC $D40E ;NMIEN
      0C5D: 58 CLI
      0C5E: 60 RTS

      kolejna ogolna uwaga: jesli nie uzywasz czystego asemblera to bedziesz napotykal na takie kwiatki. pewnie jakies funkcje madpascala ktore wywolujesz same sobie wlacza rom jak wyzej...

      moim zdaniem zebys mniej mniej problemow w laczeniu asma i mad pascala to nie umieszczaj zadnych danych uzywanych do wyswietlania pod romem (ani DL ani zestawow ani pamieci obrazu) zadnch przerwan pod rom itd.
      • 14: CommentAuthorpin
      • CommentTime3 Apr 2019 16:04
       

      MADRAFi:

      co do loadera, dodalem systemoff,


      program nie odpali ze Side 1/2, IDEplus itd, czyli mniej więcej połowa nośników występujących wśród użytkowników NIE emulatorów ;)
      • 15: CommentAuthortebe
      • CommentTime3 Apr 2019 17:04
       
      MadPascal sam z siebie nie rusza PORTB, domyślnie działa z włączonym OS-em

      jedynie co rusza PORTB to TMemoryStream, gdzie pamięć bankowana traktowana jest jak liniowa, w sensie można do niej zapisać/odczytać zadaną ilość danych
      • 16: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 18:04
       
      @Pin
      ano nie odpali bo moja gra jak na razie rzre cala pamiec i nie ma tam miejsce na cartridge :)
      • 17: CommentAuthorpin
      • CommentTime3 Apr 2019 18:04
       
      dziwne rzeczy mówisz. Idź może najpierw drogą o której wspomniał Gorgh :)
      • 18: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 20:04
       
      system wylaczony, font sie laduje i napis sie pojawia,
      ale znika po chwili - wyglada na to ze display lista sie zmienia.

      Jak uzyskac efekt ze display lista z loadera wyswietla sie do momentu zaladowania programu przez xbios ?
      • 19: CommentAuthortebe
      • CommentTime3 Apr 2019 21:04
       
      pod Altirrą przejdź do Debug (F8), wpisz w konsoli "a8", następnie wpisz "dlist"

      co pokazuje? Twoją DLIST-e ?
      • 20: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 21:04 zmieniony
       
      dzieki,
      no jak pisalem, zmienila sie dlista na defaultowa

      BC20: x3   blank 8
      BC23: mode 2 @ BC40
      BC26: x23 mode 2
      BC3D: waitvbl BC20



      tylko dlaczego? program sie laduje z domyslna?
      Czyzby wlaczyl sie os??
      • 21: CommentAuthorxxl
      • CommentTime3 Apr 2019 21:04
       
      a to co probujesz ladowac? czym to wygenerowales?
      • 22: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 21:04
       
      loader laduje gre - z mad pascala
      • 23: CommentAuthorxxl
      • CommentTime3 Apr 2019 21:04
       
      Tebe pisze jak rozumiem, że mad-pascal by nie wygenerowal tego od $0C50... wiec?
      • 24: CommentAuthorMADRAFi
      • CommentTime3 Apr 2019 22:04
       
      nie rozumiem pytania chyba.
      Loader laduje w tej chwili bezposrednio gre( XEX) z mad-pascala.(wykastrowalem intro z loadera by skupic sie na 1 rzeczy na raz)
      • 25: CommentAuthorstc
      • CommentTime4 Apr 2019 00:04
       
      Bładzisz więc potrzebna Ci będzie mapa...
      Większość jak robi coś na atari to ma ją w pamięci :)
      • 26: CommentAuthorMADRAFi
      • CommentTime4 Apr 2019 08:04
       
      moja mapa:

      ZPFREE: $0000..$007F
      ZPFREE: $00D8..$00FF
      STRINGS SIZE: $0564
      STRINGS : $B500..$BA64
      SYSTEM: $113B..$14C9
      B_UTILS: $14CA..$1520
      B_SYSTEM: $1521..$1661
      SYSUTILS: $1662..$1698
      B_CRT: $1699..$1B2D
      XBIOS: $1B2E..$1C2C
      CODE: $0C00..$77C0
      DATA: $77C1..$968E

      FREE_TOP = $9800;

      DISPLAY_LIST_ADDRESS_TITLE = FREE_TOP;
      DISPLAY_LIST_ADDRESS_MENU = DISPLAY_LIST_ADDRESS_TITLE + $100;
      DISPLAY_LIST_ADDRESS_CONSOLE = DISPLAY_LIST_ADDRESS_MENU + $100; // $9A00
      SCROLL_ADDRESS = DISPLAY_LIST_ADDRESS_CONSOLE + $100; // $9B00
      // $100 free
      CHARSET_ADDRESS = $9C00; // $9C00 - $A000
      GFX_ADDRESS = CHARSET_ADDRESS + $400; // $A000 - $B000
      TXT_ADDRESS = GFX_ADDRESS + $1000; // $B000 - $B0B4 // 180 bytes for text

      // $400 free

      FREE_DOWN = $B500;
      STRINGS_ADDRESS = FREE_DOWN;