Welcome, Guest. Please login or register.


Author Topic: Verseny ötlet (Read 7657 times)

Offline endi

  • EP addict
  • *
  • Posts: 7031
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Verseny ötlet
« Reply #105 on: 2018.May.01. 19:39:21 »
8 bit fonts-ra rákeresve vannak jó találatok amik megvalósíthatók 8x9 pixelen is:

https://www.dafont.com/04b-30.font
https://www.dafont.com/pixel-lcd7.font
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
Re: Verseny ötlet
« Reply #106 on: 2018.May.01. 19:40:02 »
Találtam egy hibát az előző verziókban a scrollozásban, azt javítottam, és elkészült Endi változata is.
 space: karakter kiválasztása
 esc: karakterkészlet reset
 enter: kilépés

Az 1K-snál ez a megoldás nem lenne jobb, de azon is lehetne még egy keveset javítani. Talán azzal is, ha a karakterkészleteket generáló rutinokat nem külön CALL utasítások hívnák, hanem ha egyébként is közvetlenül egymás után vannak, akkor a RET utasítások törlésével összefűzhetők. Így lehet, hogy még egy elférne. :)
Nagyon jó ötlet,sőt akár 2 kisebb is talán :)
Holnap meg is csinálom.

Offline endi

  • EP addict
  • *
  • Posts: 7031
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Verseny ötlet
« Reply #107 on: 2018.May.01. 19:51:24 »
na ez tök jó. pl egy kicsinyítés és egy körvonal tök jó eredményt ad
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Verseny ötlet
« Reply #108 on: 2018.May.02. 08:22:05 »
na ez tök jó. pl egy kicsinyítés és egy körvonal tök jó eredményt ad
Én fordított sorrendben próbáltam :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Verseny ötlet
« Reply #109 on: 2018.May.02. 14:09:31 »
Néhány további próbálkozás méretcsökkentésre:
* chrsetm6.com (1.33 kB. 62x5 - viewed 92 times.)
* chrsetm6.asm (20.08 kB - downloaded 89 times.)
* loader.s (2.26 kB - downloaded 89 times.)

Code: Diff
  1. @@ -10,8 +10,10 @@
  2.  
  3.          org     160h
  4.  
  5.  startpr ld      sp,0100h
  6. +        ld      a,0ffh
  7. +        out     (0b2h),a
  8.          ld      hl,hiba
  9.          ld      (0bff8h),hl
  10.          xor     a
  11.          ld      de,video
  12. @@ -26,12 +28,17 @@
  13.          ld      a,0ffh
  14.          out     (0b3h),a
  15.          call    vid
  16.          out     (0b1h),a
  17. -        call    memaddr
  18. -        ld      l,h
  19. -        ld      h,00h
  20. -        add     hl,hl
  21. + ;      call    memaddr
  22. + ;      ld      l,h
  23. + ;      ld      h,00h
  24. + ;      add     hl,hl
  25. +        and     03h
  26. +        rra
  27. +        ld      h, a
  28. +        rra
  29. +        ld      l, a
  30.          ld      (chradd+1),hl
  31.          ld      ix,chraddr
  32.          call    fillcha
  33.          ld      hl,(chradd+1)
  34. @@ -69,9 +76,11 @@
  35.          exx
  36.  fillpt  xor     a
  37.          call    wide44
  38.          call    wide44
  39. -        call    wide40
  40. + ;      call    wide40
  41. +        ld      de,0b33h
  42. +        call    filllpb
  43.          exx
  44.          add     hl,de
  45.          exx
  46.          djnz    fillpt
  47. @@ -110,61 +119,63 @@
  48.          pop     hl
  49.          ld      bc,1bh*0480h
  50.          ldir
  51.          call    edgefnt
  52. -        call    edgfnt2
  53. -        call    fontmod
  54. -        call    fntmod2
  55. -        call    ibmchar
  56. -        call    botemp1
  57. -        call    botemp2
  58. -        call    chrendi
  59. -        call    chrthin
  60. + ;      call    edgfnt2
  61. + ;      call    fontmod
  62. + ;      call    fntmod2
  63. + ;      call    ibmchar
  64. + ;      call    botemp1
  65. + ;      call    botemp2
  66. + ;      call    chrendi
  67. + ;      call    chrthin
  68.          call    chrhftn
  69.          call    chrital
  70.          call    chrita1
  71.          call    chrita2
  72.          call    chrvshp
  73.          call    fntend1
  74. -        call    fntend2
  75. -        call    fntend3
  76. -        call    fntend4
  77. -        call    fntszp1
  78. + ;      call    fntend2
  79. + ;      call    fntend3
  80. + ;      call    fntend4
  81. + ;      call    fntszp1
  82.          call    fntszp2
  83.          call    fntszp3
  84.          call    fntszp4
  85.          xor     a
  86.          ld      (actpos+1),a
  87.          di
  88. -        ld      a,0c3h
  89. -        ld      hl,intrut
  90. -        ld      (0038h),a
  91. -        ld      (0039h),hl
  92. +        ld      a, 09h
  93. +        ld      i, a
  94. +        im      2
  95.          ei
  96.          ld      ix,(lptadd+1)
  97.  xxx     call    keys
  98.  animval jr      xxx
  99.  chraddx ld      hl,0b480h
  100.  animate call    chrani1
  101.          jr      xxx
  102.  
  103. -intrut  push    af
  104. -        push    bc
  105. -        push    hl
  106. -        ld      a,30h
  107. -        out     (0b4h),a
  108. -        pop     hl
  109. -        pop     bc
  110. -        pop     af
  111. -        ei
  112. -        ret
  113. +hiba1   di
  114. +        im      1
  115. +hiba    ld      sp,0100h        ;0124
  116. +        ld      a,0ffh
  117. +        out     (0b2h),a
  118. +        ld      hl,hiba         ;0124h
  119. +        ld      (0bff8h),hl
  120. +        ld      c,40h
  121. +        exos    0
  122. +        ld      a,01h
  123. +        out     (0b3h), a
  124. +        ld      a,06h
  125. +        jp      0c00dh
  126.  
  127.  keys    halt
  128.          halt
  129. -        ld      c,03h
  130. +        ld      c,0
  131.          call    extjoy          ;ext1
  132.          ld      d,e
  133. -        ld      c,08h
  134. +        ld      c,5
  135.          call    extjoy          ;ext2
  136.          ld      a,e
  137.          and     d
  138.          ld      d,a
  139. @@ -300,17 +311,16 @@
  140.          ret
  141.  
  142.  aniaddr dw      chrani1,chrani2,chrani3,chrani4
  143.  
  144. -extjoy  ld      b,03h           ;fire up down
  145. -        ld      e,0ffh
  146. +extjoy  ld      e,3fh           ;fire up down
  147.  extjoy1 ld      a,c
  148. -        sub     b
  149. +        inc     c
  150.          out     (0b5h),a
  151.          in      a,(0b6h)
  152.          rra
  153.          rl      e
  154. -        djnz    extjoy1
  155. +        jr      nc,extjoy1
  156.          ret
  157.  
  158.  edgefnt ld      hl,(chradde+1)
  159.          ld      de, tmpFont
  160. @@ -347,9 +357,9 @@
  161.          add     ix, de
  162.          ld      a, l
  163.          add     a, a
  164.          jr      nz, .l1
  165. -        ret
  166. + ;      ret
  167.  
  168.  edgfnt2 xor     a
  169.          ld      hl, tmpFont - 256
  170.  .l0:    ld      (hl), a
  171. @@ -384,9 +394,9 @@
  172.          add     ix, de
  173.          ld      a, l
  174.          add     a, a
  175.          jr      nz, .l1
  176. -        ret
  177. + ;      ret
  178.  
  179.  fontmod ld      hl,chrset+2*0480h
  180.          ld      c, 4
  181.          ld      de, 128
  182. @@ -396,9 +406,9 @@
  183.          inc     hl
  184.          djnz    .l2
  185.          dec     c
  186.          jr      nz, .l1
  187. -        ret
  188. + ;      ret
  189.  
  190.  fntmod2 xor     a
  191.          ld      hl, tmpFont - 256
  192.  .l0:    ld      (hl), a
  193. @@ -430,9 +440,9 @@
  194.          djnz    .l2
  195.          rlc     d
  196.          dec     c
  197.          jr      nz, .l1
  198. -        ret
  199. + ;      ret
  200.  
  201.  ibmchar ld      hl,chrset+4*0480h
  202.          ld      de,0080h
  203.          ld      c,04h
  204. @@ -442,9 +452,9 @@
  205.          inc     hl
  206.          djnz    delch2
  207.          dec     c
  208.          jr      nz,delch1
  209. -        ret
  210. + ;      ret
  211.  
  212.  botemp1 ld      hl,chrset+5*0480h
  213.          ld      de,0080h
  214.          add     hl,de
  215. @@ -462,9 +472,9 @@
  216.          inc     hl
  217.          djnz    carry
  218.          dec     c
  219.          jr      nz,delcha
  220. -        ret
  221. + ;      ret
  222.  
  223.  botemp2 ld      hl,chrset+6*0480h
  224.          ld      c,09h
  225.          ld      e,0ffh
  226. @@ -480,9 +490,9 @@
  227.          inc     hl
  228.          djnz    carryb
  229.          dec     c
  230.          jr      nz,delchb
  231. -        ret
  232. + ;      ret
  233.  
  234.  chrendi ld      hl,chrset+7*0480h
  235.          ld      c,09h
  236.          ld      e,0ffh
  237. @@ -498,9 +508,9 @@
  238.          inc     hl
  239.          djnz    delch3
  240.          dec     c
  241.          jr      nz,delchc
  242. -        ret
  243. + ;      ret
  244.  
  245.  chrthin ld      hl,chrset+8*0480h
  246.          ld      c,09h
  247.  delchd1 ld      b,80h
  248. @@ -619,9 +629,9 @@
  249.          add     hl,de
  250.          exx
  251.          dec     c
  252.          jr      nz,fnte11
  253. -        ret
  254. + ;      ret
  255.  
  256.  fntend2 ld      hl,chrset+15*0480h+8*80h
  257.          exx
  258.          ld      c,80h
  259. @@ -653,9 +663,9 @@
  260.          add     hl,de
  261.          exx
  262.          dec     c
  263.          jr      nz,fnte21
  264. -        ret
  265. + ;      ret
  266.  
  267.  fntend3 ld      hl,chrset+16*0480h+8*80h
  268.          exx
  269.          ld      c,80h
  270. @@ -682,9 +692,9 @@
  271.          add     hl,de
  272.          exx
  273.          dec     c
  274.          jr      nz,fnte31
  275. -        ret
  276. + ;      ret
  277.  
  278.  fntend4 ld      hl,chrset+17*0480h+8*80h
  279.          exx
  280.          ld      c,80h
  281. @@ -714,9 +724,9 @@
  282.          add     hl,de
  283.          exx
  284.          dec     c
  285.          jr      nz,fnte41
  286. -        ret
  287. + ;      ret
  288.  
  289.  fntszp1 ld      hl,chrset+18*0480h+1
  290.          ld      de,0007h
  291.          ld      bc,8010h
  292. @@ -857,32 +867,18 @@
  293.  mask2   db      3fh
  294.  
  295.          defs    low -$
  296.  chraddr defs    numchr*4*3
  297. -hiba1   ld      a,0f5h
  298. -        ld      hl,1837h
  299. -        ld      (0038h),a
  300. -        ld      (0039h),hl
  301. -hiba    ld      sp,0100h        ;0124
  302. -        ld      a,0ffh
  303. -        out     (0b2h),a
  304. -        ld      hl,hiba         ;0124h
  305. -        ld      (0bff8h),hl
  306. -        ld      c,40h
  307. -        exos    0
  308. -        ld      a,01h
  309. -        out     (0b3h), a
  310. -        ld      a,06h
  311. -        jp      0c00dh
  312. +
  313.              ;   00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e  0f
  314.              ;   00  02  04  06  08  0a  0c  0e  10  12  14  16  18  1a  1c  1e
  315.  mask    db      00h,02h,04h,02h,08h,0ah,04h,1eh,20h,22h,24h,22h,28h,2ah,28h,3eh
  316.              ;   20  22  24  26  28  2a  2c  2e  30  32  34  36  38  3a  3c  3e
  317.          db      40h,42h,44h,42h,48h,4ah,44h,5eh,60h,42h,44h,62h,58h,4ah,7ch,7eh
  318.  
  319.  
  320. -wide40  ld      de,0b33h
  321. -        jr      filllpb
  322. +;wide40 ld      de,0b33h
  323. +;       jr      filllpb
  324.  wide44  ld      de,0935h
  325.  filllpb ld      (hl),d
  326.          inc     l
  327.          ld      (hl),e
  328. @@ -903,18 +899,22 @@
  329.          add     a,2ch
  330.          ret
  331.  
  332.  fillcha ld      b,numchr
  333. -fillch1 ld      (ix+0),l
  334. -        ld      (ix+1),h
  335. -        ld      (ix+2),l
  336. -        ld      (ix+3),h
  337. -        ld      (ix+4),l
  338. -        ld      (ix+5),h
  339.          ld      de,0009h
  340. +fillch1 ld      (ix),l
  341. +        inc     ix
  342. +        ld      (ix),h
  343. +        inc     ix
  344. +        ld      (ix),l
  345. +        inc     ix
  346. +        ld      (ix),h
  347. +        inc     ix
  348. +        ld      (ix),l
  349. +        inc     ix
  350. +        ld      (ix),h
  351. +        inc     ix
  352.          add     hl,de
  353. -        ld      de,0006h
  354. -        add     ix,de
  355.          djnz    fillch1
  356.          ret
  357.  
  358.  colors  db      20h,04h,24h,0a4h,34h,0b4h,26h,0a6h,36h,0f6h,0feh,0f7h,0ffh,0ffh
  359. @@ -948,15 +948,28 @@
  360.          ld      a,c                            ;a contains the page
  361.  ;        jp      z,hiba
  362.          ret
  363.  
  364. -memaddr ld      hl,0000h
  365. -        rra
  366. -        rr      h
  367. -        rra
  368. -        rr      h
  369. -        ret
  370. +;memaddr ld      hl,0000h
  371. +;       rra
  372. +;       rr      h
  373. +;       rra
  374. +;       rr      h
  375. +;       ret
  376.  
  377.  video   db      6,"VIDEO:"
  378. +
  379. +        block   0a0ah - $, 0ah
  380. +
  381. +intrut  push    af
  382. + ;      push    bc
  383. + ;      push    hl
  384. +        ld      a,30h
  385. +        out     (0b4h),a
  386. + ;      pop     hl
  387. + ;      pop     bc
  388. +        pop     af
  389. +        ei
  390. +        ret
  391.  vege
  392.  
  393.  fillen  equ $-startpr

Szerk.: a VID rutinon is lehet egyszerűsíteni:
* chrsetm6.asm (20.43 kB - downloaded 87 times.)
« Last Edit: 2018.May.02. 20:53:09 by IstvanV »

Offline endi

  • EP addict
  • *
  • Posts: 7031
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Verseny ötlet
« Reply #110 on: 2018.May.02. 14:37:03 »
Én fordított sorrendben próbáltam :)

amúgy ha az elején nem resetelné a karaktereket akkor más karakterkészletekre is rá lehetne nyomni ezeket az effekteket
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Online szipucsu

  • EP addict
  • *
  • Posts: 7684
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 66.0.3359.139 Chrome 66.0.3359.139
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Verseny ötlet
« Reply #111 on: 2018.May.02. 19:03:54 »
amúgy ha az elején nem resetelné a karaktereket akkor más karakterkészletekre is rá lehetne nyomni ezeket az effekteket
Például karakteres képernyőn futó Hamika vagy Pacman megváltoztatná a karakterkészletét, amikor bónusz powerupot vesz fel. Ezt a karakteres átírós effektet egész jól lehetne használni ilyen játékokban! (Már ha egyáltalán említésre méltó ez a "kétszínű" karakteres képernyő.) Bár ott nem kell feltétlen az összes karakterre alkalmazni, és lehetnek teljesen egyedi átmeneti karakterek is.
Vagy szöveges kalandjátékban megváltozhatna a karakterkészlet olykor, pl. ha kevés az energia, valami nagy esemény történik, stb. Laci úgyis rengeteg kalandjátékot készített EP-re, lehetne azokban is ilyet csinálni. Nem tudom, ilyen nem jutott-e még eszébe senkinek, de akár zavaró is lehet, ha pl. a kastélyban másmilyenek a karakterek, mint a tónál.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
Re: Verseny ötlet
« Reply #112 on: 2018.May.02. 21:06:19 »
Maradtam a régi kicsomagoló rutinnál. és a régi csomagolási paramétereknél, mert a csomagolt fájlok kisebbek voltak 2-5 bájttal a régi csomagolási paraméterekkel, és az 1KB-s verzió 1023 bájt lett, és ha jól láttam az új rutin két bájttal lett kisebb, mint a régi, így több dolgot nem sikerült volna belezsúfolni az 1Kb-s verzióba, amit alaposan átalakítottam javaslataidat is felhasználva :) (most látom, hogy nem az összeset), így 12 helyett 17 karakterkészlet fért bele :)
A karaktermódosító verziót is módosítottam, már nem reseteli a karakterkészletet az elején.
« Last Edit: 2018.May.02. 21:10:20 by geco »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Verseny ötlet
« Reply #113 on: 2018.May.02. 22:29:42 »
Kisebb probléma lehet még, hogy eredeti EXOS ROM esetén a program indításakor engedélyezett a megszakítás, ezért lefagyhat DI és LD SP nélkül. Ezt az EXOS 0 hibája okozza (C=10h vagy 20h használatakor), amit Zozosoft javított a 2.32 verzióban, de az emulátor csomagjában a régebbi változatok is tartalmazzák a javítást. Azonban DI utasítással is pontosan 1024 byte a CHRSET1K.COM. :) Bár ezzel a csomagolással még sikerült 1021-re faragni (gyakorlatilag véletlenszerű, hogy melyik lesz néhány byte-tal kisebb):
* loader3.s (2.09 kB - downloaded 88 times.)

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Verseny ötlet
« Reply #114 on: 2018.May.03. 08:45:19 »
Kisebb probléma lehet még, hogy eredeti EXOS ROM esetén a program indításakor engedélyezett a megszakítás, ezért lefagyhat DI és LD SP nélkül. Ezt az EXOS 0 hibája okozza (C=10h vagy 20h használatakor), amit Zozosoft javított a 2.32 verzióban, de az emulátor csomagjában a régebbi változatok is tartalmazzák a javítást. Azonban DI utasítással is pontosan 1024 byte a CHRSET1K.COM. :) Bár ezzel a csomagolással még sikerült 1021-re faragni (gyakorlatilag véletlenszerű, hogy melyik lesz néhány byte-tal kisebb):
Áhá, ezt nem tudtam, azért is vettem ki a DI-t mert alapból tiltott megszakítással indult a program, az 1024 meg pont jó :D , gyanúsan lehetne még pár bájtot nyerni átrendezéssel, és call-ok megszűntetésével, nem tudom lehetne-e egy újabb karakterkészletet nyerni.

Offline endi

  • EP addict
  • *
  • Posts: 7031
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Verseny ötlet
« Reply #115 on: 2018.May.03. 15:30:41 »
asszem ilyen lapos még nem volt
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Verseny ötlet
« Reply #116 on: 2018.May.03. 15:46:51 »
asszem ilyen lapos még nem volt
Jól néz ki, nem volt még ilyen, ha jól látom ,csak összenyomod a karaktereket felülről 1 pixelsorral, és alulról 1 pixelsorral.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Verseny ötlet
« Reply #117 on: 2018.May.03. 15:49:40 »
Áhá, ezt nem tudtam, azért is vettem ki a DI-t mert alapból tiltott megszakítással indult a program, az 1024 meg pont jó :D , gyanúsan lehetne még pár bájtot nyerni átrendezéssel, és call-ok megszűntetésével, nem tudom lehetne-e egy újabb karakterkészletet nyerni.

Így 1001 byre, de nem biztos, hogy nem rontottam el valamit: :oops:

Code: Diff
  1. @@ -8,18 +8,39 @@
  2.  chraddr equ     0800h
  3.  chrset  equ     4000h
  4.  tmpFont equ     3000h
  5.  
  6. +        macro   filllpb
  7. +        ld      (hl),e
  8. +        inc     l
  9. +        ld      (hl),d
  10. +        inc     l
  11. +        ld      (hl),a
  12. +        inc     l
  13. +        ld      (hl),0c0h
  14. +        inc     l
  15. +        exx
  16. +        push    hl
  17. +        exx
  18. +        pop     de
  19. +        ld      (hl),e
  20. +        inc     l
  21. +        ld      (hl),d
  22. +        ld      de,000bh
  23. +        add     hl,de
  24. +        add     a,2ch
  25. +        endm
  26. +
  27.          org     160h
  28.  
  29.  startpr ld      sp,0100h
  30.          ld      hl,hiba
  31.          ld      (0bff8h),hl
  32. -        xor     a
  33.          ld      de,video
  34. -        exos    1
  35.          xor     a
  36. +        exos    1
  37.          ld      b,4
  38. +        xor     a
  39.          exos    11                         ;clear font
  40.          xor     a
  41.          exos    3
  42.          ld      a,0ch
  43. @@ -97,12 +118,12 @@
  44.          rr      h
  45.          rra
  46.          ld      l,a
  47.          ld      (chradde+1),hl
  48. -        exx
  49. -        ld      bc,0935h
  50. -        ld      hl,0b33h
  51. -        exx
  52. + ;      exx
  53. + ;      ld      bc,0935h
  54. + ;      ld      hl,0b33h
  55. + ;      exx
  56.  lptadd  ld      hl,0000h
  57.          ld      de,0012h
  58.          add     hl,de
  59.          ld      b,09h
  60. @@ -110,14 +131,14 @@
  61.  chradd  ld      hl,0000h
  62.          ld      de,0009h
  63.          exx
  64.  fillpt  xor     a
  65. -        ld      de,0935h
  66. -        call    filllpb
  67. -        ld      de,0935h
  68. -        call    filllpb
  69. -        ld      de,0b33h
  70. -        call    filllpb
  71. +        ld      de,3509h
  72. +        filllpb
  73. +        ld      de,3509h
  74. +        filllpb
  75. +        ld      de,330bh
  76. +        filllpb
  77.          exx
  78.          add     hl,de
  79.          exx
  80.          djnz    fillpt
  81. @@ -156,17 +177,17 @@
  82.          pop     hl
  83.          ld      bc,animchr*0480h
  84.          ldir
  85.  
  86. -edgefnt ld      hl,(chradde+1)
  87. -        ld      de, tmpFont
  88. +edgefnt xor     a
  89. +        ld      de, tmpFont - 256
  90. +.l0:    ld      (de), a
  91. +        inc     e
  92. +        jr      nz, .l0
  93. +        inc     d
  94. +        ld      hl,(chradde+1)
  95.          ld      bc, 128 * 9
  96.          ldir
  97. -        ld      hl, tmpFont - 128
  98. -        ld      de, tmpFont - 127
  99. -        ld      c, 127
  100. -        ld      (hl), b
  101. -        ldir
  102.          ld      hl,chrset+0*0480h
  103.          ld      ix,tmpFont
  104.  .l1:    ld      b, 9
  105.  .l2:    ld      c, (ix)
  106. @@ -193,15 +214,15 @@
  107.          ld      a, l
  108.          add     a, a
  109.          jr      nz, .l1
  110.  
  111. -edgfnt2 xor     a
  112. -        ld      hl, tmpFont - 256
  113. -.l0:    ld      (hl), a
  114. -        inc     l
  115. +edgfnt2 ; xor     a
  116. +        ld      de, tmpFont - 256
  117. +.l0:    ld      (de), a
  118. +        inc     e
  119.          jr      nz, .l0
  120. +        inc     d
  121.          ld      hl,(chradde+1)
  122. -        ld      de, tmpFont
  123.          ld      bc, 128 * 9
  124.          ldir
  125.          ld      hl,chrset+1*0480h
  126.          ld      ix, tmpFont - 128
  127. @@ -229,15 +250,15 @@
  128.          ld      a, l
  129.          add     a, a
  130.          jr      nz, .l1
  131.  
  132. -fntmod2 xor     a
  133. -        ld      hl, tmpFont - 256
  134. -.l0:    ld      (hl), a
  135. -        inc     l
  136. +fntmod2 ; xor     a
  137. +        ld      de, tmpFont - 256
  138. +.l0:    ld      (de), a
  139. +        inc     e
  140.          jr      nz, .l0
  141. +        inc     d
  142.          ld      hl,(chradde+1)
  143. -        ld      de, tmpFont
  144.          ld      bc, 128 * 9
  145.          ldir
  146.          ld      hl,chrset+2*0480h
  147.          ld      ix, tmpFont
  148. @@ -893,45 +914,23 @@
  149.  mask    db      00h,02h,04h,02h,08h,0ah,04h,1eh,20h,22h,24h,22h,28h,2ah,28h,3eh
  150.              ;   20  22  24  26  28  2a  2c  2e  30  32  34  36  38  3a  3c  3e
  151.          db      40h,42h,44h,42h,48h,4ah,44h,5eh,60h,42h,44h,62h,58h,4ah,7ch,7eh
  152.  
  153. -filllpb ld      (hl),d
  154. -        inc     l
  155. -        ld      (hl),e
  156. -        inc     l
  157. -        ld      (hl),a
  158. -        inc     l
  159. -        ld      (hl),0c0h
  160. -        inc     l
  161. -        exx
  162. -        push    hl
  163. -        exx
  164. -        pop     de
  165. -        ld      (hl),e
  166. -        inc     l
  167. -        ld      (hl),d
  168. -        ld      de,000bh
  169. -        add     hl,de
  170. -        add     a,2ch
  171. -        ret
  172. -
  173.  vid     ld      hl,vege
  174. -        ld      (hl),0
  175. -ker     exos    24
  176. +        xor     a
  177. +ker     ld      (hl),a
  178. +        inc     hl
  179. +        exos    24
  180.          jp      nz,hiba
  181. -namivan ld      a,c
  182. +        ld      a,c
  183.          cp      0fch
  184. -        jr      nc,nemker
  185. -        inc     hl
  186. -        ld      (hl),c
  187. -        jr      ker
  188. -nemker  push    bc
  189. -vissza  ld      c,(hl)
  190. +        jr      c,ker
  191. +        push    af
  192. +vissza  dec     hl
  193. +        ld      c,(hl)
  194.          exos    25
  195. -        dec     hl
  196.          jr      z,vissza
  197. -        pop     bc
  198. -        ld      a,c                            ;a contains the page
  199. +        pop     af                             ;a contains the page
  200.          ret
  201.  
  202.  colors  db      20h,04h,24h,0a4h,34h,0b4h,26h,0a6h,36h,0f6h,0feh,0f7h,0ffh,0ffh

A VID egyszerűsítése, az EDGEFNT és hasonló rutinok átalakítása és a FILLLPB makró változata csökkentették a méretet, illetve egy helyen töröltem a BC' és HL' beállítását olyan értékekre, amikre később nincs hivatkozás. Néhány kisebb módosítás még a tömöríthetőséget próbálja javítani, de ezeknek nincs különösebb jelentőségük.

Offline geco

  • Moderator
  • EP addict
  • *
  • Posts: 5347
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Verseny ötlet
« Reply #118 on: 2018.May.03. 16:01:32 »
Majd meglesem, lehet csak holnap, és a normál verzióba akkor beteszem az új karakterkészletet is, de ha rövidre sikerül átírnom, akkor lehet megpróbálom az 1k-sba is.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Verseny ötlet
« Reply #119 on: 2018.May.03. 19:55:08 »
992 byte (szerk.: ezzel 989) a memadd1 remélhetőleg helyesen működő optimalizálásával, a program elejét a HIBA rutinhoz hasonlóbbra módosítva, a HIBA áthelyezésével, és még egy kisebb változtatással:

Code: Diff
  1. @@ -32,8 +32,10 @@
  2.  
  3.          org     160h
  4.  
  5.  startpr ld      sp,0100h
  6. +        ld      a,0ffh
  7. +        out     (0b2h),a
  8.          ld      hl,hiba
  9.          ld      (0bff8h),hl
  10.          ld      de,video
  11.          xor     a
  12. @@ -49,16 +51,13 @@
  13.          out     (0b3h),a
  14.          call    vid
  15.          out     (0b1h),a
  16.  
  17. -memadd1 ld      hl,0000h
  18. +memadd1 and     03h
  19.          rra
  20. -        rr      h
  21. +        ld      h, a
  22.          rra
  23. -        rr      h
  24. -        ld      l,h
  25. -        ld      h,00h
  26. -        add     hl,hl
  27. +        ld      l, a
  28.          ld      (chradd+1),hl
  29.          ld      ix,chraddr
  30.  ;        call    fillcha
  31.          ld      de,0009h
  32. @@ -123,11 +122,12 @@
  33.   ;      ld      bc,0935h
  34.   ;      ld      hl,0b33h
  35.   ;      exx
  36.  lptadd  ld      hl,0000h
  37. -        ld      de,0012h
  38. +        ld      de,0009h
  39.          add     hl,de
  40. -        ld      b,09h
  41. +        add     hl,de
  42. +        ld      b,e
  43.          exx
  44.  chradd  ld      hl,0000h
  45.          ld      de,0009h
  46.          exx
  47. @@ -722,9 +722,24 @@
  48.          ld      h,a
  49.          ld      de,(chradde+1)
  50.          ld      bc,0480h
  51.          ldir
  52. -        jp      hiba1
  53. +
  54. +hiba1   ;ld      a,0f5h
  55. +        ;ld      hl,1837h
  56. +        ;ld      (0038h),a
  57. +        ;ld      (0039h),hl
  58. +hiba    ld      sp,0100h        ;0124
  59. +        ld      a,0ffh
  60. +        out     (0b2h),a
  61. +        ld      hl,hiba         ;0124h
  62. +        ld      (0bff8h),hl
  63. +        ld      c,40h
  64. +        exos    0
  65. +        ld      a,01h
  66. +        out     (0b3h), a
  67. +        ld      a,06h
  68. +        jp      0c00dh
  69.  
  70.  down
  71.  up      
  72.  actpos  ld      a,00h
  73. @@ -893,23 +908,9 @@
  74.  ;        ret
  75.  ;
  76.  ;mask2   db      3fh
  77.          defs    low -$
  78. -hiba1   ;ld      a,0f5h
  79. -        ;ld      hl,1837h
  80. -        ;ld      (0038h),a
  81. -        ;ld      (0039h),hl
  82. -hiba    ld      sp,0100h        ;0124
  83. -        ld      a,0ffh
  84. -        out     (0b2h),a
  85. -        ld      hl,hiba         ;0124h
  86. -        ld      (0bff8h),hl
  87. -        ld      c,40h
  88. -        exos    0
  89. -        ld      a,01h
  90. -        out     (0b3h), a
  91. -        ld      a,06h
  92. -        jp      0c00dh
  93. +
  94.              ;   00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e  0f
  95.              ;   00  02  04  06  08  0a  0c  0e  10  12  14  16  18  1a  1c  1e
  96.  mask    db      00h,02h,04h,02h,08h,0ah,04h,1eh,20h,22h,24h,22h,28h,2ah,28h,3eh
  97.              ;   20  22  24  26  28  2a  2c  2e  30  32  34  36  38  3a  3c  3e
« Last Edit: 2018.May.03. 21:10:48 by IstvanV »