News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Example Z80 assembly programs (was:ASM source code)

Started by arnoldemu, 08:59, 04 April 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

funkheld

#175
FutureOS ASM , a nice quick thing :

Use the Q/W/E/S keys to move the "A" over the graphic.
Every time you move the "A" the image is updated very quickly without flickering.
It stops at the edges.

Use the "a" key to exit the program.

greeting

------------------------------------------
ORG &8000

; mode 1
LD  A,(RAMCHAR)
SET 0,A
RES 1,A
LD  (RAMCHAR),A
LD  B,&7F
OUT (C),A

LD IX,LESC
CALL ROM_A2C
                                 
LD  HL,S80X25
CALL ROM_A

LD  BC,&7F10 ;border
OUT (C),C
LD  A,&55   
OUT (C),A   
LD  (BORDER),A  ;border color &40-&5F

LD  BC,&7F00 ;INK 0
OUT (C),C
LD  A,&54     
OUT (C),A
LD  (INK_0),A ;paper color &40-&5F

LD  BC,&7F01 ;INK 1
OUT (C),C
LD  A,&52   
OUT (C),A
LD  (INK_1),A ;INK 1 color &40-&5F

LD  BC,&7F02 ;INK 2
OUT (C),C
LD  A,&4f   
OUT (C),A
LD  (INK_2),A ;INK 2 color &40-&5F

LD  BC,&7F03 ;INK 3
OUT (C),C
LD  A,&4c     
OUT (C),A
LD  (INK_3),A ;INK 3 color &40-&5F

LD A,(REG_PC+1)
ld a,0
LD (MEDIUM),A

;Lade Bild in E-RAM
LD BC,&7fc4 
LD (AKT_RAM),BC
LD  DE,LBI
CALL LABIER

anfang:

schleife:
call H_ALLET
jr z,schleife

ld (hl),a
cp "q"
jp nz,weiter1

ld  a,(TXT+4)
dec a
cp &ff
jr nz,mache
jr gehe

mache:
ld (TXT+4),a
call posxy

gehe:
jp anfang

weiter1:
ld (hl),a
cp "e"
jr nz,weiter2

ld  a,(TXT+4)
inc a
cp 40
jr nz,mache1
jr gehe1

mache1:
ld (TXT+4),a
call posxy

gehe1:
jp anfang

weiter2:
ld (hl),a
cp "w"
jr nz,weiter3

ld  a,(TXT+3)
dec a
cp &ff
jr nz,mache2
jr gehe2

mache2:
ld (TXT+3),a
call posxy

gehe2:
jp anfang

weiter3:
ld (hl),a
cp "s"
jr nz,weiter4

ld  a,(TXT+3)
inc a
cp 25
jr nz,mache3
jr gehe3

mache3:
ld (TXT+3),a
call posxy
jr gehe3

gehe3:
jp anfang

weiter4:
  ld (hl),a
  cp "a"
  jp nz,anfang
  call ende

TXT DB &02,&10, &1F,10,10,"A",&00

LBI DB &00,"BILDF001SCR"
MEDIUM DB &00

ende:
LD HL,TUR_E
JP ROM_D 
ret

posxy:
LD  BC,&7fc4
OUT (C),C
LD  HL,&4000 
LD  DE,&C000 
LD  BC,&4000 
LD  IX,F_MOVE
CALL ROM_A2C 

LD  HL,TXT 
CALL TER_BB
call FRAME
ret

FRAME:
  LD B,&F5
FRA_L
  IN A,(C)
  RRCA     

  JR NC,FRA_L
RET 

LABIER
LD A,&03
LD (REG08_4),A ;Laden in E-RAM

LD HL,&4000
LD (REG16_3),HL ;Ziel-Adresse ist &4000 im E-RAM bei 16 KB Bildern

LD A,(MEDIUM) ;Quell-Medium

LD IX,LADE_N
CALL ROM_A2C ;Lade Bild

INC A
JR NZ,LB_ERR ;A<>&FF --> Fehler beim Laden!

LD BC,&FA7E
LD A,(MO_ST)
OUT (C),A ;Laufwerks-Motoren ausschalten

LD BC,&7FC0
OUT (C),C ;Bank in Main RAM

LD A,&FF
RET ;A = &FF --> Bild wurde erfolgreich geladen!

;Fehler beim Laden
LB_ERR
LD BC,&FA7E
LD A,(MO_ST)
OUT (C),A
LD BC,&7FC0
OUT (C),C
XOR A
RET

;Switch ROM char set on = lower RAM on
romchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
RES 2,A
LD  (RAMCHAR),A ;set L-RAM on
LD  B,&7F
OUT (C),A
ret

;Switch ROM char set off = lower ROM off
ramchar:
LD  A,(RAMCHAR) ;actual RAM/ROM state
SET 2,A
LD  (RAMCHAR),A ;set L-ROM off
LD  B,&7F
OUT (C),A
ret

H_ALLET EQU &C02F
TER_GB EQU &CDF6
TER_BB EQU &CD4C
TER_GG EQU &CE80
TER_RR EQU &CF2A
AKT_RAM EQU &B84C
F_MOVE EQU &C0C8
LADE_N EQU &FD5C
REG_PC  EQU &B8DA ;RAM
REG08_4 EQU &B8E0
REG16_3 EQU &B8EA
MO_ST  EQU &B97F
STR_BB EQU &CA1C
C_POS  EQU &B848
WATA  EQU &FD38
TUR_E EQU &FE9D
RAMCHAR EQU &B847
LESC EQU &C017
ROM_A2C EQU &FF2A
OSRON_A EQU &FF22
OSRON_B EQU &FF58
OSRON_C EQU &FF8E
OSRON_D EQU &FFD6
ROM_A  EQU &FF00
ROM_C  EQU &FF0C
ROM_D  EQU &FF12
ROM_D2A EQU &FFBA

S64X32 EQU &D5A8
S80X25 EQU &D60E

BORDER EQU &BB91
INK_0  EQU &BB92
INK_1  EQU &BB93
INK_2  EQU &BB94
INK_3  EQU &BB95

TERM_2  EQU &D48C
TERM_2D EQU &D2F7
TERM_2I EQU &D358
TERM_2K EQU &D3C0
TERM_2U EQU &D42

GUNHED

Please put it on disc, the picture to be loaded is missing. Also there is a missing letter in the source code: TERM_2U EQU &D42C
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

funkheld

#177
This Picture is in the BILDF001.ZIP 1,33kb

"C" is been stolen...

greeting.


Powered by SMFPacks Menu Editor Mod