?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1.     DEVICE AMSTRADCPC464
  2.  
  3.     ORG $7FFF
  4.     DB '1'              ; mark page 1 at end
  5.     DB '2'              ; mark page 2 at beginning
  6.     DB "[5ki:"
  7.     OPT push listoff
  8.     DUP 5*1024-7
  9.       DB low(__COUNTER__)
  10.     EDUP
  11.     OPT pop
  12.     DB "]"
  13.  
  14.     ORG 0x10000-4
  15. endStart:
  16.     DB '!end'           ; mark end of RAM at $FFFF (to check saving of last byte)
  17. .sz EQU $-endStart
  18.     ASSERT $10000 == endStart + endStart.sz
  19.  
  20.     MMU $4000, 0        ; map page 0 to slot 1
  21.     MMU $8000, 3, $7FFF ; map page 3 to slot 2
  22. dataStart:
  23.     DB '0'              ; mark page 0 at end
  24.     DB '3'              ; mark page 3 at beginning
  25. .sz EQU $-dataStart
  26.  
  27.     ; create empty CDT file
  28.     SAVECDT EMPTY "savecdt_code.cdt"
  29.  
  30.     ; first block: default start address == dataStart, pages 0+3
  31.     SAVECDT CODE "savecdt_code.cdt","code1",dataStart,dataStart.sz
  32.  
  33.     ; second block: start address + 1, pages 1+2
  34.     MMU $4000 $8000, 1  ; map pages 1,2 to slots 1,2
  35.     SAVECDT CODE "savecdt_code.cdt","code2",dataStart,dataStart.sz,dataStart+1
  36.  
  37.     ; third block, saving last byte of address space
  38.     SAVECDT CODE "savecdt_code.cdt","code3",endStart,endStart.sz
  39.  
  40.     ; fourth block, checking truncation of long name
  41.     SAVECDT CODE "savecdt_code.cdt","long name 123456ccccccccccccccccccccc",dataStart,dataStart.sz
  42.  
  43.     ; fifth block, checking the internal implementation of splitting long chunks into 2048 byte blocks
  44.     SAVECDT CODE "savecdt_code.cdt","code5",$8000,5*1024,$8001
  45.