25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

30 satır
1.3KB

  1. # E06-S06: build the interface lifetime fixture and its D81.
  2. [CmdletBinding()]
  3. param()
  4. $ErrorActionPreference = "Stop"
  5. $project = Split-Path $PSScriptRoot -Parent
  6. Import-Module (Join-Path $PSScriptRoot "lib\Nova128Test.psm1") -Force
  7. $out = Join-Path $project "build\lifetime-test"
  8. New-Item -ItemType Directory -Force -Path $out | Out-Null
  9. $link = Invoke-Nova128Link -Name "lifetime-test" -BuildDir $out `
  10. -Config (Join-Path $project "cfg\compiler.cfg") -Sources @(
  11. (Join-Path $project "src\runtime\print.s"),
  12. (Join-Path $project "src\runtime\frames.s"),
  13. (Join-Path $project "src\runtime\heap.s"),
  14. (Join-Path $project "src\runtime\objects.s"),
  15. (Join-Path $project "src\runtime\construct.s"),
  16. (Join-Path $project "src\runtime\interfaces.s"),
  17. (Join-Path $project "src\runtime\ifelife.s"),
  18. (Join-Path $project "tests\runtime\lifetime-test.s"))
  19. if ((Get-Nova128Label $link.Labels "test_entry") -ne 0x1C0D) { throw "test_entry is not at `$1C0D" }
  20. $end = Get-Nova128Label $link.Labels "test_end"
  21. if ($end -ge 0x4000) {
  22. throw ("lifetime-test ends at `$" + $end.ToString("X4") + "; it must stay below `$4000")
  23. }
  24. New-Nova128Disk -Path (Join-Path $out "lifetime-test.d81") -Files @(
  25. @{ Name = "lifetime-test"; Path = $link.Program; Type = "prg" })
  26. Write-Host ("built {0} (end {1:X4})" -f $link.Program, $end)

Powered by TurnKey Linux.