mirror of
https://github.com/EranMorkon/AMTS.git
synced 2023-12-28 16:48:38 +00:00
Adding Reischl
This commit is contained in:
parent
e30b39b37a
commit
76010f8d07
97 changed files with 1375 additions and 43 deletions
67
Reischl/lst/PIO_RAM_COUNTER.s
Normal file
67
Reischl/lst/PIO_RAM_COUNTER.s
Normal file
|
@ -0,0 +1,67 @@
|
|||
;******************************************************************************
|
||||
;* Z80 Assembler program *
|
||||
;* Josef Reisinger *
|
||||
;* josef.reisinger@htl-hl.ac.at *
|
||||
;* 10/07/2017 *
|
||||
;******************************************************************************
|
||||
|
||||
; ---------------------------- PIO 82C55 I/O ---------------------------------
|
||||
PIO_A: EQU $80 ; (INPUT)
|
||||
PIO_B: EQU $81 ; (OUTPUT) OUT TO LEDS
|
||||
PIO_C: EQU $82 ; (INPUT) IN from DIP SWITCHES
|
||||
PIO_CON: EQU $83 ; CONTROL BYTE PIO 82C55
|
||||
|
||||
; --------------------------- CTC Z80 Timer Counter --------------------------
|
||||
CTC0 EQU $00 ; Channel 0
|
||||
CTC1 EQU $01 ; Channel 1
|
||||
CTC2 EQU $02 ; Channel 2
|
||||
CTC3 EQU $03 ; Channel 3
|
||||
|
||||
; -------------------------- SIO (USART) ----------------------------------------
|
||||
SIO_A_D: EQU $40 ; Channel A Data Register
|
||||
SIO_B_D: EQU $41 ; Channel B Data Register
|
||||
SIO_A_C: EQU $42 ; Channel A Control Register
|
||||
SIO_B_C: EQU $43 ; Channel B Control Register
|
||||
|
||||
|
||||
;-------------------------- CONSTANTS ----------------------------------------
|
||||
RAMTOP: EQU $FFFF ; 32Kb RAM 8000H-FFFFH
|
||||
COUNTER: EQU $8000 ; RAM Counter
|
||||
|
||||
;******************************************************************************
|
||||
;* RESET HANDLER *
|
||||
;* Function: Initialize system and start Main Program *
|
||||
;******************************************************************************
|
||||
ORG $0000
|
||||
DI ; Disable interrupt
|
||||
LD SP,RAMTOP ; Set stack pointer
|
||||
JP MAIN ; jump to Main program
|
||||
|
||||
|
||||
;*******************************************************************
|
||||
;* MAIN PROGRAM *
|
||||
;*******************************************************************
|
||||
ORG $100
|
||||
MAIN: LD A,$99 ; Initialize 8255: PA0-PA7=IN (DIP SWITCHES), PB0-PB7=OUT (LEDS),
|
||||
OUT (PIO_CON),A ; PC0-PC7=IN, Mode 0 Selection
|
||||
LD A,$01 ; Initialize RAM Counter
|
||||
LD HL,COUNTER ; Load RAM Counter Address
|
||||
LD (HL),A ; Store Counter in RAM cell
|
||||
AGAIN: LD A,(HL) ; Load RAM Counter
|
||||
OUT (PIO_B),A ; Output RAM Counter to LEDs (PB0-PB7)
|
||||
INC (HL) ; Increment RAM Counter
|
||||
CALL _WAIT ; UP Warteschleife aufrufen
|
||||
JP AGAIN ; Endlos
|
||||
|
||||
|
||||
|
||||
;*******************************************************************
|
||||
;* Warteschleife 0,5s *
|
||||
;*******************************************************************
|
||||
_WAIT: LD D,$FF ;
|
||||
_OUTER: LD E,$FF ;
|
||||
_INNER: DEC E
|
||||
JP NZ,_INNER
|
||||
DEC D
|
||||
JP NZ,_OUTER
|
||||
RET
|
Loading…
Add table
Add a link
Reference in a new issue