[A83] Re: Displaying Characters


[Prev][Next][Index][Thread]

[A83] Re: Displaying Characters




My ideas:
 
> start:
>  ld a,1   ;set level to one
> LvlSetup:
>  bcall(_clrlcdfull) ;clear screen
>  bcall(_grbufclr) ;clear graphscreen

>  ld b,a   ;load level to b 
>  ld hl,5
>  cp b
if b=a do jump to lvla?

>  jp z,lvla
>  dec hl
>  cp b
if b = the same a, do jump to lvlb?

>  jp z,lvlb
>  dec hl
>  cp b
ditto
>  jp z,lvlc
>  dec hl
>  cp b
ditto
>  jp z,lvld
>  jp lvle

personally, i'd go for:
ld a, (level)
cp 1
....
cp 2
....
cp 3
....
cp 4
....
cp 5
....

I couldn't see you preserve the value of the level you're in too.
after the jump to the level, the proggram goes to txt:
where the registers a and b, which contain the level are overwritten
without saving.


 
> lvla:
> lvlb:    ;these are where i call on iline to draw the levels (its a worm
> maze like game)
> lvlc:
> lvld:
> lvle:
> 
> txt:
>  ld hl,3702h  ;load position on screen x37 y2
>  ld (pencol),hl
>  ld hl,livestxt  ;print "lives on screen"
>  bcall(_vputs)  ;put string on display
>  ld a,(lives)
>  ld h,0
>  ld l,a
>  bcall(_Setxxxxop2)
>  bcall(_op2toop1)
>  ld a,5 ;<--- number of digits, 5 is a safe number
>  bcall(_dispop1a)
>  ld b,0
>  ld c,9
>  ld d,94
>  ld e,9
>  call line
>  call pause  ;pause progarm until key entry
>  jp move   ;jump to move section
> getkey:
>  halt
>  halt
>  halt
>  halt
>  halt
>  ld a,(xtest)
>  ld b,a
>  ld a,(ytest)
>  ld c,a
>  ld a,(direction)
>  ld e,a
>  bcall(_getcsc)
>  cp g_left
>  jp z,left
>  cp g_down
>  jp z,down
>  cp g_right
>  jp z,right
>  cp g_up
>  jp z,up
>  cp g_mode
>  jp z,quit
>  cp g_2nd
>  call z,pause
>  dec e
>  ld a,0
>  cp e
>  jp z,up
>  dec e
>  ld a,0 
>  cp e
>  jp z,left
>  dec e
>  ld a,0
>  cp e
>  jp z,down
>  jp right
> move:
>  ld d,3   ;pixel test part
>  ld a,(xtest)
>  ld b,a
>  ld a,(ytest)
>  ld c,a
>  bcall(_IPoint)
>  jp nz,die
>  ld d,2   ;Pixel draw part
>  ld a,(xtest)
>  ld b,a
>  ld a,(ytest)
>  ld c,a
>  ld a,b
>  ld (xtest),a
>  ld a,c
>  ld (ytest),a
>  bcall(_IPoint)
>  jp getkey
> pause:
>  ld b,0
>  bcall(_getcsc)
>  cp b
>  jp z,pause
>  ret
> right:
>  ld bc,(xtest)
>  inc bc
>  ld (xtest),bc
>  ld hl,00000100b
>  ld (direction),hl
>  jp move
> down:
>  ld bc,(ytest)
>  dec bc
>  ld (ytest),bc
>  ld bc,00000011b
>  ld (direction),bc
>  jp move
> left:
>  ld bc,(xtest)
>  dec bc
>  ld (xtest),bc
>  ld bc,00000010b
>  ld (direction),bc
>  jp move
> up:
>  ld bc,(ytest)
>  inc bc
>  ld (ytest),bc
>  ld bc,00000001b
>  ld (direction),bc
>  jp move
> die:
>  ld hl,lives
>  dec (hl)
>  jp lvlsetup 
> line:
>  ld h,1
>  bcall(_iline)
> quit:
>  res (write_on_graph),(iy+sgrflags) 
>  ei
>  ret
> xtest: .db 00h
> ytest: .db 00h
> direction: .db 00h
> lives: .db 0h
> name: .db "S.Z.",0
> livestxt: .db "LIVES:",0
> picture:
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
>     .db     0,0,0,0,0,0,0,0,6,35,30,31,142,56,0,0,0,0,0,0,6,35,63,31,206,56
> 0,0,0,0,0
>     .db     0,6,83,51,152,206,56,0,0,0,0,0,0,3,86,97,152,207,120,0,0,0,0,0,0
> 3,86,97,159,205,88
>     .db     0,0,0,0,0,0,3,86,97,159,141,88,0,0,0,0,0,0,3,86,97,153,141,88,0
> 0,0,0,0,0,3
>     .db     86,97,152,205,88,0,0,0,0,0,0,1,140,51,24,205,216,0,0,0,0,0,0,1
> 140,63,24,205,152,0,0
>     .db     0,0,0,0,1,140,30,24,108,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> 0,0,0
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15
>     .db     128,1,230,0,0,3,237,176,0,192,0,12,192,3,54,0,0,0,109,176,0,192
> 0,12,192,3,54,0,0,0,193
>     .db     128,0,192,0,12,219,195,199,156,241,128,205,183,140,215,24,15,155
> 1,230,198,219,65,141,182,218,241,180,12,202,0
>     .db     118,206,219,193,141,182,222,243,188,12,206,3,54,214,219,1,141
> 182,198,245,140,12,206,3,54,214,219,67,13,182,214
>     .db     221,172,15,132,193,230,222,217,131,237,182,204,223,152,0,4,0,0,0
> 0,0,0,0,0,0,0,255,255,255,255,255
>     .db     255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> 0,0,0,0,0,0
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,128,8,20,0,12,0,0,0,0,0,0,17
> 217,92,28
>     .db     164,17,164,128,0,0,0,0,8,133,136,29,228,20,125,192,0,0,0,0,4,157
> 8,21,60,21,229,0,0,0,0
>     .db     0,24,93,4,20,216,13,228,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> 8,0,0,0
>     .db     0,0,0,0,0,0,12,0,128,0,0,0,0,0,0,0,0,0,16,153,217,148,128,0,0,0
> 0,0,0,0,17
>     .db     84,137,85,192,0,0,0,0,0,0,0,17,84,137,85,0,0,0,0,0,0,0,0,12,148
> 73,76,192,0,0,0
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,24,8,0
>     .db     0,0,0,0,0,0,0,0,0,37,157,137,140,0,0,0,0,0,0,0,0,37,72,149,88,0
> 0,0,0,0,0
>     .db     0,0,37,72,149,68,0,0,0,0,0,0,0,0,25,132,137,88,0,0,0,0,0,0,0,0,1
> 0,0,0,0
>     .db     0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,28,0,128,0,0,0,0,0,0,0,0,0
>     .db     17,89,192,0,0,0,0,0,0,0,0,0,28,136,128,0,0,0,0,0,0,0,0,0,16,136
> 128,0,0,0,0
>     .db     0,0,0,0,0,29,72,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
>     .db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> end
> END
> 
> 





References: