Advertisement
Guest User

Untitled

a guest
Jul 9th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. * filename: lab2base.asm
  2.  
  3. * System Addresses
  4.  
  5. RAM equ $0000
  6. REG equ $1000       ;power up register base address
  7. STACK   equ $7FFF       ;put stack at top of ram
  8. EEPROM  equ $8000       ;for 32K EEPROM
  9.  
  10.  INCLUDE "hc11.inc"
  11.  
  12. * Operational Constants
  13.  
  14. LF  equ $A
  15. SP  equ $20
  16.  
  17.     org RAM
  18.  
  19. * System Variables
  20.  
  21. ; none
  22.  
  23. ********************************** Program *******************************
  24.  
  25.     org EEPROM
  26.  
  27. start:
  28.     sei         ;this is where the RESET vector points
  29.  
  30. *NOTE- These instructions must be executed within 64 E-cycles of reset.
  31.  
  32.     ldaa    #%0001000   ;define system options
  33.     staa    option
  34.  
  35.     lds #STACK      ;initialize stack pointer
  36.  
  37.     ldaa    #%00000000  ;setup tmsk2
  38.     staa    tmsk2
  39.  
  40.     ldaa    #%00000000  ;initialize pactl
  41.     staa    pactl
  42.  
  43.     clr sccr1
  44.     ldaa    #%00001100  ;setup serial port
  45.     staa    sccr2
  46.  
  47.     ldaa    #%00000010  ;initialize PORTD
  48.     staa    ddrd
  49.  
  50.     ldaa    #%00110000  ;baud=9600 w/8MHz crystal
  51.     staa    baud
  52.  
  53.     cli         ;enable interrupts
  54.  
  55. begin
  56.     ldaa    #LF     ;print new line
  57.     bsr SendChar
  58.     ldaa    #'O'        ;print "0"
  59.     bsr SendChar
  60.     ldaa    #'K'        ;print "K"
  61.     bsr SendChar
  62.     ldaa    #LF     ;print new line
  63.     bsr SendChar
  64.  
  65. loop:
  66.   largeNum RMW 1
  67.   smallNum RMB 1
  68.   ldd #$1A82
  69.   ldaa #$1C
  70.   std largeNum
  71.   sta smallNum
  72.  
  73.   loop0: dec largeNum
  74.     loop1: dec smallNum
  75.            bne loop1
  76.     bne loop0
  77.  
  78.   ldd #$1645
  79.   std cleanUpMem
  80.   loop2: dec cleanUpMem
  81.          bne loop2
  82.   nop
  83.  
  84.     bra loop
  85.  
  86. SendChar
  87.     tst scsr
  88.     bpl SendChar
  89.     staa    scdr
  90.     rts
  91.  
  92.     org $FFD6
  93.  
  94. * Interrupt and reset vectors.
  95.  
  96. SCI_VECT    FDB start
  97. SPI_VECT    FDB start
  98. PAI_VECT    FDB start
  99. PAO_VECT    FDB start
  100. TOF_VECT    FDB start
  101. TOC5_VECT   FDB start
  102. TOC4_VECT   FDB start
  103. TOC3_VECT   FDB start
  104. TOC2_VECT   FDB start
  105. TOC1_VECT   FDB start
  106. TIC3_VECT   FDB start
  107. TIC2_VECT   FDB start
  108. TIC1_VECT   FDB start
  109. RTI_VECT    FDB start
  110. IRQ_VECT    FDB start
  111. XIRQ_VECT   FDB start
  112. SWI_VECT    FDB start
  113. TRAP_VECT   FDB start
  114. COP_FAIL_VECT   FDB start
  115. COP_CMF_VECT    FDB start
  116. RESET_VECT  FDB start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement