Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
41
Task/Loops-For/Z80-Assembly/loops-for.z80
Normal file
41
Task/Loops-For/Z80-Assembly/loops-for.z80
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
org &4000 ; put code at memory address 0x4000
|
||||
wr_char equ &bb5a ; write ASCII character in register A to screen
|
||||
; (jumps into CPC ROM)
|
||||
|
||||
; put registers on stack so we can return to BASIC later
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
|
||||
ld b,5 ; loop from 5 to 1
|
||||
|
||||
row:
|
||||
|
||||
push bc ; save outer loop variable
|
||||
|
||||
; calculate inner loop limit (6 - outer loop variable)
|
||||
ld a,6
|
||||
sub b
|
||||
ld b,a
|
||||
|
||||
column:
|
||||
|
||||
ld a,42 ; asterisk in ASCII
|
||||
call wr_char
|
||||
djnz column ; decrement B, jump to label if non-zero
|
||||
|
||||
pop bc ; restore outer loop
|
||||
|
||||
; print carriage return/line feed
|
||||
ld a,13
|
||||
call wr_char
|
||||
ld a,10
|
||||
call wr_char
|
||||
|
||||
djnz row
|
||||
|
||||
; restore registers
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
ret ; return to BASIC interpreter
|
||||
Loading…
Add table
Add a link
Reference in a new issue